先日の続き。
引き続き以下を cherry-pick で backport した。
- Ruby の breaking change による
key must be 32 bits
エラーの対応を組み込む ... https://github.com/rails/rails/issues/25185 - タイムゾーンまわりの対応を組み込む ... https://github.com/rails/rails/commit/c9c5788a527b70d7f983e2b4b47e3afd863d9f48#diff-3497a506c921a3a3e40fd517e92e4fe3R408
これで手元のアプリケーションはテストをパスするようになった。Ruby 2.4 対応について全て拾えているかは自信はまったくないけれど、概ね動くと思う (動かなかったら backport の PR を) 。
Ruby 2.4.0-devでRails 4.2.zを手元で動かしたかったので、Rails 4.2.7.1をベースにRails 5のRuby 2.4対応をcherry-pickしたfork Railsです(自分がつまづいた箇所限定) https://t.co/5PoYr1XvUm
— Koichi ITO (@koic) 2016年8月18日
先日も書いたけれど、使うときはこんな感じでの Gemfile 指定になる。
gem 'arel', git: 'https://github.com/rails/arel', branch: '6-0-stable' gem 'rails', git: 'https://github.com/koic/rails', branch: 'ruby24_on_rails42' # Rails 4.2.7.1
余談だけど、therubyracer が Ruby 2.4 (dev) で動かないという場合は Gemfile を以下のようにすると動くと思う。
gem 'therubyracer', git: 'https://github.com/koic/therubyracer', branch: 'ruby24_integer_unification'
普段使いの手元で Ruby 2.4 (dev) を使える状態になったので、次はアプリケーションの Rails 5 対応を進めようと思う。