Ruby Weekly #390: 日本語サマリー
職場の Slack の #ruby 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/390rubyweekly.com
Highlights
bundle update
の謎メッセージ Bundler attempted to update 〇〇〇 but its version stayed the same
を調べて解消した話。gem の古いバージョンに依存している gem があることが原因だが、どの gem なのかは bundler だけでは知り得ない。bundler-stats gem で邪魔な gem を特定し、両 gem 一気に bundle update
することで解決。この機能はこれから bundle show
に入る可能性があるらしい。
Ruby に対応するように、AWS Lambda や Azure Functions などの FaaS への請願。
yield_self
を活かすことで、複雑な ActiveRecord クエリオブジェクトをリファクターした ThoughtBot。
25 年もの Ruby へのコミットを可視化した動画。
News
テストの並列実行を Rails 6.0 に追加したプルリクエスト。デフォールトでは、プロセスのフォークで実現しているが、スレッドでの実行も任意で選べる。
Coinbase OSS 基金は今月 Ruby 関連プロジェクトに献金することになった。補助対象プロジェクトは Ruby Together、RSpec、Rubocop。
Tutorial
Ruby 2.5 の Exception#full_message
でフォーマットされた例外とバックとレースを取得できるようになった。
プロキシデザパタは昔、Ruby では method_missing
で実装されていたが、デメリットとしては:
- プロキシオブジェクトを呼ぶ手間があった
- パフォーマンスのコストがかかった
- クラスメソッドまで対応するには別のプロキシオブジェクトが必要になった
- どんなメソッド呼び出しでも拾ってしまい、責務の範囲が広すぎた
Ruby 2.0 以降は prepend
で上記問題点解消。
Run Capybara Feature Specs with Selenium and Headless Chrome
CircleCI 2.0 で Chrome Headless + Selenium の Capybara feature spec を実行する手順。おまけに並列実行の CircleCI 設定。
TLSv1.0、v1.1 が非対応になったせいで、バージョンアップを迫られてきた Ruby 1.9 ユーザだが、それでもバージョンアップがまだできないというユーザ向け一時しのぎの手順。
Tools
Test Kitchen: An Integration Tool for Testing Infrastructure Code
インフラコードのテスト用のテストフレームワーク(ServerSpec など)や実行先(Vagrant、Docker、EC2、GCE、DigitalOcean など)を管理するツール。
Code
Rust で Pathname を高速化した FasterPath gem が最近更新されている。
OAuth 2 用 Rails Engine。