こんにちは、hachi8833です。
おとといの週刊Railsウォッチのあと、Ruby 2.4.0が公開されました。新バージョンリリースをクリスマスに行うというRubyの習慣は今回も守られましたね。
新機能
Ruby 2.4のいくつかの新機能は既に週刊Railsウォッチでお伝えしているので、未紹介の機能からいくつかリストアップします。
もう少し詳しい更新情報についてはruby/Newsをご覧ください。いずれ翻訳されるようです。
2.3から2.4の比較を見ると、コミットが多すぎて最初の250件しか表示されていませんね。
2.4のインストール
rbenvをお使いの方は、以下を参考に2.4をインストールしてください。
今回は以下のコマンドでインストールしました。
cd ~/.rbenv/plugins/ruby-build/
git pull # ruby-buildを更新
rbenv install 2.4.0 # 2.4.0をインストール(バージョン確認は省略)
rbenv global 2.4.0 # デフォルトに設定(お好みで)
Rails 5.0.1 + Ruby 2.4で動かしてみる
Ruby 2.4にアップグレードすると、これまたリリース間もないRails 5.0.1で rails new
したときにActive Support周りで若干deprecationの警告が表示されます。
警告が出ている箇所のコードを見てみましょう。
- ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb
# No need to map these on Ruby 2.4+
TYPE_NAMES["Fixnum"] = "integer" unless Fixnum == Integer
TYPE_NAMES["Bignum"] = "integer" unless Bignum == Integer
- ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb
# Ruby 2.4+ unifies Fixnum & Bignum into Integer.
if Integer == Fixnum
Integer.prepend ActiveSupport::NumericWithFormat
else
Fixnum.prepend ActiveSupport::NumericWithFormat
Bignum.prepend ActiveSupport::NumericWithFormat
end
Float.prepend ActiveSupport::NumericWithFormat
BigDecimal.prepend ActiveSupport::NumericWithFormat
Rails5.0.1側でも2.4の受け入れ準備ができていることがわかります。