Open kjtbw opened 7 years ago
DateStore
モジュールRedisCalender
クラス これによりDataStore.create(type)
とすることで,type
ごとのDataStore
を生成できる.
Redisサーバを利用する際は,DataStore.create(:redis)
とすることで,RedisCalender
クラスが.new()
される.
DataStore.create(type)
とする際に,type
ごとに必要な処理をload
, store
,およびdelete
メソッドとして定義することで,データをどこから取ってくるかを意識せずにデータを読み書きできる.
今後の課題
Where is the code?
I add commit in PR #48. The commit ID is b2d6928.
コミットID 1e16877 にて,Redisに保存されているカレンダの一覧をcamomeに読み込み,サイドメニューに表示するようにした.
カレンダの一覧のデータは,APIにより取得したCalendarCollectionクラスのオブジェクトをJSON形式に変換した文字列をRedisにcalendarsというキーで保存してある.
このため,events_controller.rb
のindex
にカレンダの一覧を読み込む処理を追加し,読み込んだデータを_calendar_list.html.erb
に渡す.また,サイドメニューには,カレンダの名前と色を表示する.
コミットID 8f5cdb6 にて,カレンダに表示される予定の色を,カレンダの色に対応させた.
Redisにcalendars
というキーでカレンダの一覧のデータが格納されている.
このため,scan
メソッド内で,redis.load
を呼び出し,カレンダ一覧の情報を取得した.
また,カレンダのイベントはRedisにカレンダID-yyyy-mm
というキーで保存されている.
そこで,キーからイベントのカレンダIDを取り出し,カレンダ一覧の中からカレンダIDが一致するカレンダの情報を探す.
その後,GoogleCalendar::Event
オブジェクトをnew
する際に,カレンダの情報から色を引数として与える.
Created from AI0382 of minute 437.