Ruby Weekly #377: 日本語サマリー
職場の Slack の #ruby 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
Highlights
Rails 5.2.0 βリリース。
- ActiveStorage でファイルアップロード
- Redis Cache Store
- HTTP/2 Early Hints 対応
- Bootsnap でブート時間半減
- Content Security Policy 定義用 DSL
- secrets を deprecate、Credentials 新規追加
- Webpacker 3.0
Rails ヘルパー使わずに素 JavaScript でクライアント側 ActionCable を実装してみた Thoughtbot 社。
'String#delete_prefix' and 'delete_suffix' Methods in Ruby 2.5
文末文字削除用 String#chomp
は Ruby 2.5 から #delete_suffix
アライアス追加。さらに文頭の文字削除用 #delete_prefix
が新規追加。
Heroku 上 Rails アプリをゼロダウンタイムでドメイン移行。
- 複数ドメイン
- DNS ホストで ALIAS 設定
heroku domain:add
- 複数 SSL 証明書
- SAN 証明書発行
heroku certs:add
- rack-rewrite gem のミドルウェアで
- 外部 API コールバック用エンドポイント
- callbacks サブドメに移行
- 旧コールバックを rewrite
- Evil Martians 自家製 RackRewriteConfig で環境別設定(原文コード参照)
コントローラテストを deprecate した Rails 5 に備えて、ロジックをモデルなどのオブジェクトに抽出するメリット。例に挙げたのは、パラメータ有無で挙動が変わったコントローラのビジネスロジック。
RubyConf 2017 1 日目の振り返り。
- Matz のキーノート
- 初回参加者が意外と多くて Ruby の未来が有望的
- なるべく互換性を保ちながらリリースしていく
- コミュニティを交えて相談していきたい
- There Are No Rules in Ruby (Max Jacobson)
- Ruby の柔軟性のデメリット
- Finding Beauty in the Mundane (Megan Tiu)
- しんどい仕事でも接し方によって楽しめる方法
- Augmenting Human Decision Making with Data Science (Kelsey Pedersen)
- Stitch Fix 社が活用している機械学習
- Growing Old (Chad Fowler)
- レガシーだからって悪いとは限らない
News
RubyGems 2.7.3 リリース。
最もダウンロードされてる gem トップ 10。
- bundler
- multi_json
- rake
- rack
- json
- mime-types
- activesupport
- thor
- i18n
- diff-lcs
Rails は 22 位。
Tutorial
Heroku の無料 Dyno で Sidekiq を動かすための Puma 設定。
Rails API に OPTIONS の HTTP メソッド対応を追加した Kollegorna 社。結果的に rails_http_options gem も作った。
NewRelic などのメソッド計測コードが散らばらないように prepend
する方法。
- migration で DB コメント追加
- ドキュメンテーション生成などのために DB からコメントを読み込む
- コメントを取得する生 SQL
PostgreSQL の UUID を Rails アプリで採用する手順。
Rails アプリの Docker イメージに Yarn を追加する手順。
Bitcoin を解説した Fabio Akita 先生。
Code
ElasticNotifier: Send Error Notifications to an Elasticsearch Server
エラー通知を ElasticSearch サーバに送ってくれる ElasticNotifier gem。