rastam’s blog

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

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

rubyweekly.com

Highlights

Artichoke Ruby Playground: A New Ruby Interpreter

Artichoke という mruby ベースのインタープレターのコードをブラウザーで実行してみることができるページ。

Rails 6.0.0 RC2 Released

Rails 6 RC2 がリリースされた。ファイナルリリースは数週後の予定。

Articles & Tutorials

Consider Value Objects

ヘルパーからバリューオブジェクトを抽出する方法。

Infinity: How It Works and Why It Matters in Ruby

Ruby の Infinity オブジェクトいろいろ。

  • 0 で割った挙動いろいろ
  • 無限 Range(+ Ruby 2.6 の新しい表記)

Rails 6 Adds Support for Database Optimizer Hints

Rails 6 の ActiveRecordoptimizer_hints メソッドでクエリ軽量化ヒントを与えれるようになる。

Moving From Tagging with ActsAsTaggableOn to PostgreSQL Arrays

acts-as-taggable-on gem から PostgreSQL 配列カラムに移行した経験談。ネタバレ:migration だけでいけた!

Rails 5: Getting Started with Active Storage

Active Storage 導入手順。

3 Defensive Programming Techniques for Rails

デプロイ失敗の未然防止策。

  • concurrently オプションを指定しなかった add_index がエラーを起こすように prepend することで、DB をロックする migration 防止
  • rails server 起動時の FK チェックで、CASCADE による重大レコード削除防止
  • Net::HTTP への prepend で長い HTTP リクエストをタイムアウトさせる

Using Ruby's Array() and Array.wrap

配列であるかどうかの分岐を省略してくれる ActiveSupportArray.wrap

How Do You Tell Which Areas of a Project's Test Suite Need Attention?

所属していないプロジェクトのテストを重点的改善する方法。

  1. テストスメル特定
    • テストがない
    • 難解テスト
    • テストの重複
  2. チームに辛いところを聞き出す
  3. コード弄ってみる

Code and Tools

Geocoder: A Complete Ruby Geocoding Solution

位置情報用 gem。

Affect: Algebraic Effects for Ruby

関数型 Ruby の副作用を隔離してくれる gem。