Ruby Weekly #405: 日本語サマリー
職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/405rubyweekly.com
Highlights
Ruby 2.2 サポート終了。
Fie: A Rails-Centric Frontend Framework Running over WebSockets
ビューの状態を Rails のサーバ側で管理できるようにしてくれるフロントエンドフレームワーク。
Ruby でのパターンマッチングのデザイン・実装案。
Paperclip から Active Storage への移行をテストで保証した話。
- データ移行のテスト
- ファイルのローカル保存でのテスト
- S3 でのテスト
- データ移行 + ファイルのローカル保存でのテスト
- 本番データ移行のテスト
- staging 環境で外部 API 込みテスト
Ruby's Powerful Method Arguments and How To Use Them Correctly
通常引数、デフォルト引数、キーワード引数、可変引数の使い分け。
Articles & Tutorials
利用規約承諾 validation の実装案 5 つ(DB に承諾フラグを保存しないパターン)
- モデルに virtual attribute 追加
- 作成時のみモデルに virtual attribute 追加
- 特定 context のみモデルに virtual attribute 追加
- フォームオブジェクト
- モデルオブジェクトを
extend
Rails アプリの Stripe 定期支払い実装手順。
Rack::Attack で PHP 狙いボットを弾く方法。
Rails 開発用 Docker コンテナ作成手順。
Forwardable
の使い方と、delegate
マクロの自前実装方法。
Rails フラグメントキャッシング周りのコードリーディング。
Code & Tools
RecentRuby: CLI Tool to Check For A Recent and Secure Ruby Version
使用中 Ruby バージョンには最新セキュリティパッチが入っていないか検知してくれる CLI ツール gem。
dry-monads は安定したバージョン 1.0 がリリースされた。
Ruby で Rust が使える、そして Rust で Ruby が使えるようにしてくれる gem。ruru をフォークした次世代拡張。
BreezyPDFLite: A Ruby Client for a Self Hosted HTML to PDF Converter
Headless Chrome で HTML を PDF に変換してくれるマイクロサービス gem。
Redux らしき状態管理機能を実装した gem。
Ruby コアのメソッドを絵文字でアライアスを定義した gem。コミットメッセージもほとんど絵文字。