rastam’s blog

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

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

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

http://rubyweekly.com/issues/405rubyweekly.com

Highlights

Support of Ruby 2.2 Has Ended

Ruby 2.2 サポート終了。

Fie: A Rails-Centric Frontend Framework Running over WebSockets

ビューの状態を Rails のサーバ側で管理できるようにしてくれるフロントエンドフレームワーク

The Ongoing Quest for Ruby Pattern Matching

Ruby でのパターンマッチングのデザイン・実装案。

Safely Migrating from Paperclip to Active Storage

Paperclip から Active Storage への移行をテストで保証した話。

  • データ移行のテスト
  • ファイルのローカル保存でのテスト
  • S3 でのテスト
  • データ移行 + ファイルのローカル保存でのテスト
  • 本番データ移行のテスト
  • staging 環境で外部 API 込みテスト

Ruby's Powerful Method Arguments and How To Use Them Correctly

通常引数、デフォルト引数、キーワード引数、可変引数の使い分け。

Articles & Tutorials

Rails and Conditional Validations in Models

利用規約承諾 validation の実装案 5 つ(DB に承諾フラグを保存しないパターン)

  1. モデルに virtual attribute 追加
  2. 作成時のみモデルに virtual attribute 追加
  3. 特定 context のみモデルに virtual attribute 追加
  4. フォームオブジェクト
  5. モデルオブジェクトを extend

Managing Stripe Subscription Payments in Rails

Rails アプリの Stripe 定期支払い実装手順。

How to Ignore PHP-Targeting Bots with Rack::Attack

Rack::Attack で PHP 狙いボットを弾く方法。

Docker for Rails Development

Rails 開発用 Docker コンテナ作成手順。

Delegating Methods in Ruby with Forwardable

Forwardable の使い方と、delegate マクロの自前実装方法。

Disassembling Rails: How Fragment Caching Works

Rails フラグメントキャッシング周りのコードリーディング。

Code & Tools

RecentRuby: CLI Tool to Check For A Recent and Secure Ruby Version

使用中 Ruby バージョンには最新セキュリティパッチが入っていないか検知してくれる CLI ツール gem。

dry-monads 1.0 Released

dry-monads は安定したバージョン 1.0 がリリースされた。

Rutie: A Tie Between Ruby and Rust

Ruby で Rust が使える、そして Rust で Ruby が使えるようにしてくれる gem。ruru をフォークした次世代拡張。

BreezyPDFLite: A Ruby Client for a Self Hosted HTML to PDF Converter

Headless Chrome で HTML を PDF に変換してくれるマイクロサービス gem。

Rydux: A Ruby Implementation of Redux

Redux らしき状態管理機能を実装した gem。

ActiveEmoji: Emoji Aliases for Core Ruby Methods

Ruby コアのメソッドを絵文字でアライアスを定義した gem。コミットメッセージもほとんど絵文字。