総合演習1. Basic
今までの知識を総動員して、以下の問題に取り組んでください。
講義中に出てきたメソッド以外も適宜利用可能とします。
「こういうメソッドがあれば楽なのに…」と思ったら、まず調べてみたり詳しい人に聞いてみましょう。
既存のものを活用していくことで無駄な実装をする必要がなくなり、スピーディに新しい機能の開発ができるようになります。
問1
機種名NAME
とOSバージョンOS
を定数として持つSmartPhone
モジュールをlib/smart_phone.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
を実装してください。
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
モジュールに自由に機能を追加してみましょう。
変数、メソッド等は必要に応じて自由に追加して構いません。