こんにちは、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の受け入れ準備ができていることがわかります。
関連記事
- Ruby 2.0.0リリース! – prependを使ってみよう
- Ruby 2.0.0リリース! – Enumerable#lazyを使ってみよう
- Ruby 2.1.0リリース!注目の新機能を見てみましょう
- 週刊Railsウォッチ(20161224)Float#roundの動作変更を取り消し、Rails 5.0.1/Ruby 2.4.0-rc1リリースほか
- [Rails 5] rbenvでRubyをインストールして新規Rails開発環境を準備する