毎日やったことを記録していく(2019/5/19 42日目)

今日やったこと

英語

TOEIC® L&R テスト 文法問題 でる1000問
  • 回答数:9問
iKnow
  • 新規:0個
  • 復習:5個
スタディサプリENGLISH
  • クイックワードクイズ:1サブセクション

開発

danime-nico-tools
  • fixturesの更新

コミュニティ

もくdev
  • 子孫クラスで実装を強制させるJavaのInterfaceのようなものを作ってみる

知ったこと

ActiveSupport::DescendantsTracker.descendants

ActiveSupport::DescendantsTrackerをextendしてやるとdescendantsで実行クラスを継承している子孫クラスがすべて取れる。
ただし、1点注意がありRailsはdevelopment及びtest環境ではeager_loadがfalseである。 そのため、configの設定を変えてやるか事前にRails.application.eager_load!を実行してやるかして全クラスをロードしておかないと子孫クラスがあるクラスでdescendantsを実行しても空配列が返ってくる。

感想等

JavaのInterafaceのようなものを作り始めた

そろそろポリモーフィック関連について一言いっとくか - Qiitaでinterfaceを共通化させるという話があったこと、昨日のKyoto.rbでmethodsを知ったことからmethodsを使えばJavaのInterafaceのようなものが作れるのではないかと思いたち、Gemを作り始めた。
まだGemの形にはしてないけど今日ひとまず動くものを実装してみたらうまくいきそうだったので、このまま開発を続けてみようと思う。(ただ結局methodsは使わなかった・・・)