Ruby Weekly #492: 日本語サマリー
Highlights
ActiveRecord や PORO の集合体で CLI 表を描画してくれる gem。
ダウンタイムを起こさない PostgreSQL 向け migration をコンパイルしてくれる Nandi gem。Nandi の DSL で書いた migration に対して rails generate nandi:compile
実行したら、ActiveRecord の migration が生成される。
コロナで RailsConf が中止となった。参加費は全額返金。
Articles & Tutorials
Timecop から ActiveSupport::Testing::TimeHelpers
に移行した話。
Timecop.return
してないTimecop.freeze
がいくつかあった。ちゃんとfreeze_time
ブロックに書き換えた。- 終始
freeze_time
したい spec はaround
フックでfreeze_time
用メタタグ定義することで DRY にした。
Elasticsearch 導入チュートリアル。
テストは必要条件・十分条件を両方満たすべきだという、故 Jim Weirich 先生の名言解説。
- 今後実装されるだろうという機能の YAGNI なテストや、実装コードで定義されてない分岐のテストがあれば、必要条件が満たされてない。
- テストが仕様を網羅できてなければ、十分条件が満たされてない。
- 満たしてない場合は、実装コードの設計に問題があるかもしれない。
Code and Tools
CLI 棒グラフ描画用 gem。
deprecated となった Paperclip gem をフォークして継続メンテされている kt-paperclip。
Rails 用 Kafka クライアント gem。
Version Cake 4.0: An Unobtrusive Way to Version APIs in Rails or Rack Apps
Rails API のバージョン指定用 gem。JBuilder などのビューは *.json.v1.jbuilder
といった拡張子で制御。