3/15は ginza.rb の33回目のミートアップでした。
Ginza.rb 第33回 もうすぐやってくる!Rails 5を見ておこう - Ginza.rb | Doorkeeper
前回のミートアップ時に、きっと Rails 5.0 がリリースされているだろうと思い Rails 5.0 をテーマとして設定しましたが、見事に期待が外れましたね><
未完成のリリースノートを読みつつ、主にメジャーな機能について内容を確認していきました。ざっとメモ書きを載せます。何か間違っている点などありましたら教えていただけると嬉しいです!
Ruby on Rails 5.0 Release Notes — Ruby on Rails Guides
ActionCable
- ご存知 websocket 用
- pubsubサーバとして postgres と redis に対応している
- Basecamp のチャットサーバとして使われているので、一応実績がある
- しかしどれくらいのサーバ台数でどのくらいのクライアント数をさばいているのだろう。気になる
- puma, unicorn, passenger などのサーバで使える
- 厳密には Rack hijack api に対応していれば使える
- WEBrick はダメ
- 内部で thread 使っているので、仮に unicorn を使っていても ActionCable を使うのであれば thread safe なコードが求められる
Rails API
Rails::API について発表した - おもしろwebサービス開発日記
Active Record Attributes API
Rails 5のActive Record attributes APIについて | 日々雑記
- default 便利そう
- と思ってたらなんかバグってたので Issue 投げておいた
- text_field doesn't display correctly with attribute default value of Proc · Issue #24249 · rails/rails
Test Runner
Rails 標準の test ツールが便利になりました
- 結果に色がつく
- ファイル、行を指定して実行、fail-fast や defer-output など、RSpec の便利機能の取り込み
Exclusive use of rails CLI over Rake
- これまで rails で何か実行する時は、rails コマンドもしくは rake コマンドでしたが、rails に統一されました
rails db:migrate
みたいな- 実態は rake コマンドを叩いているだけ
- rake も引き続き使える
Sprockets 3
- リリースノートには 3 って書いてあるけど多分 4
- source map
- development で assets 結合しないと、ファイル数が多い時に遅いけど、結合するとエラー時にどこがエラーなのかわかりにくいのを解消
- 結合しても、エラー時にどこがエラーなのかわかる
- es6 サポート
- babel が依存関係に入った
- manifest.js
- これまで、最終的にコンパイルされるファイルは Rails の config で指定していたけれど、それを js 上で指定できるようになった
- ちょっと疎になった
Turbolinks 5
- いきなりバージョン 5 になったのは Rails のバージョンに合わせる目的
- 全部書き直された
- 既存のはこっちに移行された
- api が変わったので古いバージョンからアップグレードする際には頑張って既存のコードを変更する必要がある
- ios や android 対応が入った
Ruby 2.2.2+ required
読んで字のごとく。Ruby 2.2.2 以降に対応
Notable Change
時間が余ったので、細かい変更も見ていました。以下気になった変更点
bin/rails restart
コマンドが追加された- 実態は tmp/restart.txt を更新しているだけ
- puma 2 系は tmp/restart.txt に対応してなかった(はず)だけど、3.0 で対応された
bin/rails initializers
コマンドが追加された- initializer を読み込む順番で表示してくれる
- べんりでは
bin/rails dev:cache
コマンドが追加された- development 環境で cache のオンオフができる
- 実態は
tmp/caching-dev.txt
を作ったり消したりしてるだけ - caching-dev.txt の有無で cache の設定を上書きしている
bin/update
スクリプトが追加されたbin/setup
の update 版- セットアップと同様、アップデートもコマンド一発でできるようにするのが Rails Way ってことなのかな
- http_cache_forever というのが controller 用のメソッドとして追加された
- 読んで字のごとく
- config.force_ssl にオプションが追加
- 一回 force_ssl な設定が追加されてしまったブラウザを、リセットするのが楽になった
- HSTS Preload 用の設定も入った
以上
まだまだ読めていない変更点があるので、次回は続きを読んでいく予定です。