rastam on rails

東京在住のマレーシア人 Rubyist

Ruby Weekly #492: 日本語サマリー

rubyweekly.com

Highlights

TableSmith: A Simple Terminal Table Renderer

ActiveRecord や PORO の集合体で CLI 表を描画してくれる gem。

'Fear-Free' Postgres Migrations for Rails

ダウンタイムを起こさない PostgreSQL 向け migration をコンパイルしてくれる Nandi gem。Nandi の DSL で書いた migration に対して rails generate nandi:compile 実行したら、ActiveRecord の migration が生成される。

RailsConf 2020 Cancelled

コロナで RailsConf が中止となった。参加費は全額返金。

Articles & Tutorials

How We Migrated From Timecop to Rails 5.2's Time Helpers

Timecop から ActiveSupport::Testing::TimeHelpers に移行した話。

  • Timecop.return してない Timecop.freeze がいくつかあった。ちゃんと freeze_time ブロックに書き換えた。
  • 終始 freeze_time したい spec は around フックで freeze_time 用メタタグ定義することで DRY にした。

Getting Started with Elasticsearch and Ruby

Elasticsearch 導入チュートリアル

(Make Your Tests) Necessary and Sufficient

テストは必要条件・十分条件を両方満たすべきだという、故 Jim Weirich 先生の名言解説。

  • 今後実装されるだろうという機能の YAGNI なテストや、実装コードで定義されてない分岐のテストがあれば、必要条件が満たされてない。
  • テストが仕様を網羅できてなければ、十分条件が満たされてない。
  • 満たしてない場合は、実装コードの設計に問題があるかもしれない。

Code and Tools

Barcharts: Simple Terminal Barchart Rendering

CLI 棒グラフ描画用 gem。

kt-paperclip: A Maintained Fork of Paperclip

deprecated となった Paperclip gem をフォークして継続メンテされている kt-paperclip

Delivery Boy: A Simple Way to Publish Messages to Kafka

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 といった拡張子で制御。