rastam’s blog

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

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

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

http://rubyweekly.com/issues/409rubyweekly.com

Highlights

Pundit 2.0 Released: The Pure Ruby Authorization Library

認可用 Pundit gem は v2.0 リリース!

Tweaking Ruby's Global Method Cache

グローバルメソッドキャッシュいろいろ。

  • メソッドの定義元クラス・モジュールをマッピングするキャッシュ。定義元を毎回評価するのにコストがかかるから。
  • RUBY_GLOBAL_METHOD_CACHE_SIZE 環境変数でキャッシュするメソッドの数を指定(デフォ 2048)。
  • メソッド数増やしても高速化は 2%〜3% しかない。

Faker: The Library for Generating Fake Data

ダミーデータ生成用 gem。

Articles & Tutorials

Painlessly Managing Long Running Processes in Your Views

fie フレームワークで ActiveJob の進捗をプログレスバーとして表示。

Adding Authorization to Sinatra with Pundit

Sinatra アプリで pundit gem を使う手順。

Ruby 2.6 Adds Binding#source_location

ファイル名、行番号を返してくれる、Ruby 2.6 の Binding#source_location

Hiding .gemrc Credentials in Dotfiles

コミット対象の .gemrc の中の認証トークンなどを隠す方法。

  1. トークンを dotfile に移す
  2. GEMRC 環境変数で dotfile を指定することで、.gemrc の設定が dotfile の設定とマージされる

Making Ruby Yours with the pretty_ruby Gem

コアメソッドに可読性向上の拡張をしてくれた pretty_ruby gem。拡張はモンキーパッチではなく、安心安全な refinement で。

  • .map { |x| x.join('-') }.map(:join, '-')
  • .map { |x| x.next.upcase }.map(:next >> :upcase)
  • .reduce(['']) { |m, x| m << m.last + x }.drop(1).scan
  • #take #drop のマイナス引数対応

11 Books Every Ruby on Rails Developer Should Read

Rails 開発者必読の書籍 11 冊。

Code & Tools

TTY::Box: Draw Frames and Boxes in Your Terminal Window

CLI で四角い枠を描画してくれる gem。

FastJsonapi: A Super-Fast JSON:API Serializer for Ruby Objects

v1.3 がリリースされた高速 JSON:API シリアライズ用 gem。

Crystalball: Run Only the Specs You Need to Run

カバー率測定で、修正したファイルの関連 RSpec テストを特定してくれる gem。

OpenStreetMap: Ruby Gem for OpenStreetMap API Integration

OpenStreetMap API クライアント gem。

graphql-ruby: A Ruby Implementation of Facebook's GraphQL

GraphQL API フレームワーク用 gem。

Terraforming: Export Existing AWS Resources to Terraform Style

既存の AWS リソースを元に Terraform 用 .tf、.tfstate 設定を生成してくれる gem。