Tech Racho エンジニアの「?」を「!」に。
  • 開発

Ruby 2.4.0がリリースされました!

こんにちは、hachi8833です。

おとといの週刊Railsウォッチのあと、Ruby 2.4.0が公開されました。新バージョンリリースをクリスマスに行うというRubyの習慣は今回も守られましたね。

Ruby 2.4.0 released

新機能

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.1rails newしたときにActive Support周りで若干deprecationの警告が表示されます。

deprecation warning

警告が出ている箇所のコードを見てみましょう。

  • 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の受け入れ準備ができていることがわかります。

関連記事


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。