総合演習1. Basic

今までの知識を総動員して、以下の問題に取り組んでください。
講義中に出てきたメソッド以外も適宜利用可能とします。
「こういうメソッドがあれば楽なのに…」と思ったら、まず調べてみたり詳しい人に聞いてみましょう。
既存のものを活用していくことで無駄な実装をする必要がなくなり、スピーディに新しい機能の開発ができるようになります。

問1

機種名NAMEとOSバージョンOSを定数として持つSmartPhoneモジュールをlib/smart_phone.rbに定義してください。
次に、これらの値をmain.rbから以下のように参照できるようにしてください。

main.rb
1
2
puts SmartPhone::NAME #=> iPhone 8 Plus
puts SmartPhone::OS   #=> iOS 11.2.6

問2.

リンクからJSONデータを取得してください。
このJSONファイルには、簡易的な電話帳データが保存されています。
このデータを利用して、 SmartPhoneモジュールに以下の動作をするメソッドshow_phone_bookを実装してください。

main.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
category = "friend"
puts SmartPhone.show_phone_book(category)

__END__
(実行結果)

 【category : friend】
 * 高橋 三郎
  - phone number: 080-1234-5678
  - address: s_takahashi@gmail.com
 * 田中 四郎
  - phone number: 090-9876-5432
  - address: s_tanaka@gmail.com

以降の問題では、メソッド名や結果の表示方法については任意とします
ただし、分かりやすさ・イメージのしやすさを意識したコーディングを心がけてください。

問3

以下の項目を表示するメソッドをSmartPhoneモジュールに追加してください。

項目 表示例
現在の時刻(時:分) 01:05
今日の月日 8月2日
今日の曜日 月曜日

ただし、表示例にあるように、現在時刻は0詰め2桁(例:1時5分なら 01:05)、月日は0詰めなし(例:8月2日)とします。

問4

「年」と「月」を引数で指定すると、該当年月のカレンダーを表示するメソッドをSmartPhoneモジュールに追加してください。

問5(チャレンジ問題)

こちらのページは、ValAPIsで提供している「自治体のオープンデータを元に作成したWiFiスポットAPI(※)」です。
12章 ライブラリで使ったHTTPクライアントライブラリfaradayからこのAPIを呼び出し、「都道府県を入力するとその都道府県のWiFiスポット情報を表示する機能」を実装してください。
(※ ValAPIsで提供中のAPIはβ版です。時期によっては利用できない場合がありますので注意してください。)

機能要件は以下の通りです。

  • faraday を利用するためのモジュールをSmartPhoneモジュールとは別に作成すること。
  • 上記のモジュールがSmartPhoneモジュールから呼び出せること。
  • SmartPhoneモジュールのメソッドに「都道府県」を入力すると、WiFiスポット一覧が表示されること(ただし、表示フォーマットは問いません)。

なお、http://valapis.jp/v1/wifi_spots.json?prefecture={都道府県名}というGETリクエストを実行すると、WiFiスポットの情報が取得できます。

  • 例: http://valapis.jp/v1/wifi_spots.json?prefecture=東京都&{認証用パラメータ(※)}
    • ※認証用パラメータは講義中に提供します

問6(チャレンジ問題)

SmartPhoneモジュールに自由に機能を追加してみましょう。
変数、メソッド等は必要に応じて自由に追加して構いません。