Ruby Weekly #411: 日本語サマリー
職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/411rubyweekly.com
Highlights
Ruby コードのロジックをフロー図に変換してくれる VisualizeRuby gem。
.new
メソッドをオーバーライドしてみた話。
#initialize
前にシングルトンクラスに対してモジュールをinclude
。#allocate
で子クラスにもinclude
されるように。
Discourse デバッグ中の Sam Saffron 先生が STDERR
モンキーパッチでエラー発生元を出力させた話。
Rails 5.2.1 リリース!
require 'bundler/inline'
と gemfile
ブロックだけで、単独ファイルの Ruby スクリプトでも Bundler 使えちゃう。
Hanami v1.3.0.beta1 リリース。v1.3.0 は 10 月リリース予定。
- RSpec がデフォになった
Articles & Tutorials
dry-rb でサービスクラス実装。
Dry::Initializer
で注入する依存性定義。Dry::Validation
で注入した依存性のルール定義。Dry::Monads
でSuccess
Failure
オブジェクトを返す。
Ruby 2.5 の Dir.each_child
Dir.children
に該当する Dir#each_child
Dir#children
インスタンスメソッドが Ruby 2.6 で登場。
partial パフォーマンス向上方法 2 つ。
JIT の紹介。
- JIT とは、Ruby 稼働中によく呼ばれるメソッドの特定・コンパイル
- メモリが倍ぐらいかかっちゃう
- コンパイル完了までは重い
- 今までの JIT 実装
- 許容範囲内の保守性・起動速度・メモリを誇る MJIT は、いよいよ Ruby 2.6 で登場。
テストの期待値は、ヘルパーなどの戻り値ではなく、プリミティブにしようという主張。
Code & Tools
RSpec テスト並列実行用 gem。ファイル単位だけではなく spec 単位でも分散できる。
ActiveRecord や Enumerable を年、月、日付、曜日、時間などでグループしてくれる gem。
Xcode::Install: A Ruby Tool to Install and Update Xcode Versions
XCode 最新バージョンをインストールしてくれる CLI 用 gem。
ターミナルのサイズを検知してくれる gem。
capybara-screenshot: Automatically Save Screen Shots When a Capybara Scenario Fails
Capybara テストが落ちたらスクショを保存してくれる gem。