Ruby Weekly #401: 日本語サマリー
職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/401rubyweekly.com
Highlights
3 ヶ月もの議論の上で yield_self
のアライアス then
が Ruby 2.6 にマージされた。
Ruby 2.5 に対応した JRuby 9.2.0.0 リリース。
テスト最適化ツールキット TestProf gem で Factory 軽量化。
- EventProf で Factory 処理の思いテストを特定。
- FactoryProf で階層の深い Factory、使用率の高い Factory を特定。flame graph でも可視化可能。
- FactoryDefault で階層の深い Factory のアソシエーションを再利用。
- AnyFixture で使用率の高い Factory を fixture に。
夏の Ruby カンファレンスまとめ。
- ウクライナ・キエフの RubyC
- ロシア・サンクトペテルブルクの Saint P Rubyconf
- 米国ニューヨークの GORUCO
- ケニア・ナイロビの RuyConf Kenya
- フランス・パリの Paris.rb
- 英国ブライトンの Brighton Ruby Conference
- 米国ナッシュビルの Southeast Ruby
- ポーランド・ヴロツワフの GrillRB
- オーストリア・ウィーンの EuRuKo
Tutorials
dry-transaction gem で鉄道指向プログラミングを実現。
Rails 4 コントローラテストのリクエスト発行メソッドの引数を Rails 5 のキーワード引数に移行する方法。
- rails-forward_compatible_controller_tests gem でキーワード引数を Rails 4 にバックポート。
rubocop -a --only Rails/HttpPositionalArguments
でキーワード引数に変換。- rails5_xhr_update gem で
xhr
メソッドを変換。
Active Record's .first and .last May Not Mean What You Think
Active Record の .first
.last
は created_at
順ではなく id
順だよー、という注意書き。
Hash のキーを指定する Enumerable#index_by
の次に、Hash の値を指定する Enumerable#index_with
が ActiveSupport に追加された。
Running Chrome Headless, Selenium and Capybara Inside GitLab CI and Docker
Docker コンテナ内に動かなくなった Chrome Headless テストを --no-sandbox
オプションで実行することで動くようにした話。
重くなりがちな Ruby での JSON 生成を、PostgreSQL に委任することで軽量化。
Quick Tip: Content-Type application/json by Default in Rails 5
Rails API の Content-Type
をデフォで application/json
にしてくれるミドルウェア。
Enumerable
Enumerator
で連結リストを実装してみた話。
The Case for 'before_validation' Callback: Complex State Normalization
オブエクトの状態を正規化するなら before_validation
使っていいよ、という主張。
Code & Tools
irb の SQL 出力をフォーマット、シンタックス・ハイライトしてくれる gem。
CLI 開発用 gem まとめ。