rastam on rails

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

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

rubyweekly.com

Highlights

Ruby Next: Make All Rubies Quack Alike

別バージョンの Ruby にトランスパイルしてくれる Ruby Next gem の紹介。

  • gem の Ruby バージョン間互換性を維持するために作った Vladimir Dementyev 先生
  • メソッドだけなら refinements で簡単・安全にバックポートできるが、シンタックスはトランスパイルするしかない
  • parser gem で生成した AST を unparser gem で対象 Ruby バージョンに書き出す
  • アプリで使う場合は run-time モードで実行中にリアルタイムトランスパイル
  • gem で使う場合は CLI でトランスパイルしたファイルを生成して .gem パッケージに組み込む

Take the 2020 Ruby on Rails Survey

今年の Rails 利用者調査は 7/15 まで実施。

Articles & Tutorials

How to Set Up Factory Bot on a Fresh Rails Project

新規 Rails アプリに FactoryBot を導入する手順。

  1. factory_bot_rails gem インストール
  2. Factory 定義
  3. Faker gem インストール
  4. rails_helper.rb に config.include FactoryBot::Syntax::Methods 追記

5 Uses for 'Splats'

* の使い道例。

  • 配列を配列に挿入 [:foo, *middle, :qux]
  • メソッドの全引数を配列で参照 def foo(*bar)
  • 配列を最初・最後・その他の要素に分解 first, *, last = [1, 2, 3, 4, 5]
  • 単一オブジェクトを配列に変換 *1
  • 配列をハッシュに変換 Hash[*[:foo, 1, :bar, 2, :baz, 3]]

Running Multiple Instances of Webpacker

Webpacker のポート番号は webpacker.yml で設定できるが、環境変数YAML 内 ERB では設定できない。

Performing Asynchronous HTTP requests in Rails

JavaScriptfetch() メソッドで RailsAJAX 機能を実装する話。レスポンスは partial の HTML で、そのまま DOM を置き換える。

How to Use AWS SimpleDB from Ruby

AWS SimpleDB まとめ。

  • DynamoDB よりシンプル・安い
  • Lambda などの一時的永続化に向いてる
  • aws-sdk-simpledb gem で

Code and Tools

Rodauth 2.0: Ruby's 'Most Advanced' Authentication Framework

どんな Rack アプリでも使える認証用 gem。

Business: Business Day Calculations for Ruby

営業日数計算用 gem。祝日自由に定義可能。

Lockbox: Modern Encryption for Rails

ActiveRecord カラムを暗号化してくれる gem。

split: The Rack Based A/B 'Split' Testing Framework

Rack アプリ向け AB テスト用 gem。