rastam’s blog

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

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

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

http://rubyweekly.com/issues/408rubyweekly.com

Highlights

Don't Step on a Rake, Use Rake::DSL

Rake タスク群の DRY 化は、メソッド抽出ではなく、Rake::DSL のクラスを抽出しよう。

TruffleRuby Now Easily Installable via RVM, rbenv, and ruby-install

TruffleRuby は rvm、ruby-build、ruby-install でインストールしやすくなった。

Ruby 2.6 Adds String#split with Block

Ruby 2.6 の String#split にブロック引数を渡せるようになった。"hoge".split { }"hoge".split.each { } は挙動的に変わらないが、ブロック引数のほうは Array オブジェクトを作らないためパフォーマンス最適化に使える。

How to Replace wkhtmltopdf for PDF Generation from Ruby

HTML → PDF 変換用 CLI ツール wkhtmltopdf の問題点と別案まとめ。

JavaScript-'Sprinkled' Rails Applications

フラグメントキャッシュを活かしたビューを、turbolinks:load イベント内 Ajax でユーザ毎にカスタマイズした話。

Articles & Tutorials

The Forwardable Module in Ruby

Forwardable#def_delegator#def_delegators#delegate メソッド解説。

Thin and Maintainable Rails Mailers

Rails 5.1 の ActionMailer::Base#params ハッシュで Mailer をリファクターした話。defaultbefore_action から params ハッシュが呼べるようになったおかげで、アクションメソッドの中身をインスタンス変数の代入と #mail 呼び出しのみに減らせた。

Everything You Need to Know About Ruby Operators

Ruby演算子まとめ。

How to Write a Case Expression in Ruby

case 文の使い方。

Code & Tools

SmartEnum: Enums for Ruby That Aren't Just Symbols

メソッドが生やせる enum 定義用 gem。enum のダックタイプまでチェックしてくれる。(未安定)

Pragmatic Segmenter: Rule-Based Sentence Boundary Detection

10 ヶ国語対応のセンテンス単位セグメンテーション用 gem。

XmlMatchers: Validate Your XML API Responses against XSD XML Schemas

XML レスポンスを XSD で検証するための RSpec Matcher を提供してくれる gem。

Easy GraphQL Caching with GraphQL Cache

graphql-ruby gem のフィールド別キャッシュ用プラグイン

InSpec: An Auditing and Testing Framework for Infrastructure

インフラ周りの RSpec 記法テストフレームワーク