rastam’s blog

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

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

職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。

http://rubyweekly.com/issues/401rubyweekly.com

Highlights

'then' Is Now an Alias for 'yield_self' (in Ruby 2.6)

3 ヶ月もの議論の上で yield_self のアライアス thenRuby 2.6 にマージされた。

JRuby 9.2.0.0 Released

Ruby 2.5 に対応した JRuby 9.2.0.0 リリース。

Spina CMS 1.0: A CMS for Rails Devs

CMSRails Engine。

TestProf: Factory Therapy for Your Ruby Tests

テスト最適化ツールキット TestProf gem で Factory 軽量化。

  1. EventProf で Factory 処理の思いテストを特定。
  2. FactoryProf で階層の深い Factory、使用率の高い Factory を特定。flame graph でも可視化可能。
  3. FactoryDefault で階層の深い Factory のアソシエーションを再利用。
  4. AnyFixture で使用率の高い Factory を fixture に。

9 Ruby Conferences Worth Seeing This Summer

夏の Ruby カンファレンスまとめ。

Tutorials

Railway Oriented Programming in Ruby

dry-transaction gem で鉄道指向プログラミングを実現。

Upgrading Rails 4 Controller Tests to Rails 5

Rails 4 コントローラテストのリクエスト発行メソッドの引数を Rails 5 のキーワード引数に移行する方法。

  1. rails-forward_compatible_controller_tests gem でキーワード引数を Rails 4 にバックポート。
  2. rubocop -a --only Rails/HttpPositionalArguments でキーワード引数に変換。
  3. rails5_xhr_update gem で xhr メソッドを変換。

Active Record's .first and .last May Not Mean What You Think

Active Record の .first .lastcreated_at 順ではなく id 順だよー、という注意書き。

Rails Gaining a Eumerable#index_with Method

Hash のキーを指定する Enumerable#index_by の次に、Hash の値を指定する Enumerable#index_withActiveSupport に追加された。

Running Chrome Headless, Selenium and Capybara Inside GitLab CI and Docker

Docker コンテナ内に動かなくなった Chrome Headless テストを --no-sandbox オプションで実行することで動くようにした話。

Faster JSON Generation using Postgres's JSON Function

重くなりがちな Ruby での JSON 生成を、PostgreSQL に委任することで軽量化。

Quick Tip: Content-Type application/json by Default in Rails 5

Rails APIContent-Type をデフォで application/json にしてくれるミドルウェア

Ruby's Magical 'Enumerable' Module

Enumerable Enumerator で連結リストを実装してみた話。

The Case for 'before_validation' Callback: Complex State Normalization

オブエクトの状態を正規化するなら before_validation 使っていいよ、という主張。

Code & Tools

Stealth: A Framework for Building Conversational Bots

チャットボット用 MVC フレームワーク gem。

Niceql: Colorized SQL Formatting in Ruby

irbSQL 出力をフォーマット、シンタックス・ハイライトしてくれる gem。

29+ Ruby Gems For Building Command Line Programs

CLI 開発用 gem まとめ。