読者です 読者をやめる 読者になる 読者になる

なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2016/12/13)

2016/12/13分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

railties/CHANGELOG.md

activesupport/CHANGELOG.md


Keep AS::XmlMini::PARSING["decimal"].call('') returning 0

activesupport/lib/active_support/xml_mini.rbの修正です。

BigDecimalインスタンスを生成する際、引数が不正な値でも引数0インスタンスを生成するよう修正しています。

-        "decimal"      => Proc.new { |number|  BigDecimal(number) },
+        "decimal"      => Proc.new do |number|
+          if String === number
+            begin
+              BigDecimal(number)
+            rescue ArgumentError
+              BigDecimal('0')
+            end
+          else
+            BigDecimal(number)
+          end
+        end,

元々はコンストラクタに不正な値を指定してもエラーにならないようになっていたのですが、bigdecimal 1.3.0からArgumentErrorエラーをraiseするようになっていた為、テストが通るようにする為に上記のような対応を行ったとの事です。

参考:Bug #10286: BigDecimal - inconsistency with other numeric classes


nil, true, 1, etc. don't raise on #dup since Ruby 2.4

activesupport/test/core_ext/object/duplicable_test.rbの修正です。

dupメソッドがraiseする値のリストからnil, true, false, Symbol, Numericを削除しています。

Ruby 2.4から上記のクラスはdupしてもエラーにならなくなった為。

参考:Feature #12979: Avoid exception for #dup on Integer (and similar cases)


:nail_care:

activesupport/test/core_ext/object/duplicable_test.rbの修正です。

dupが出来る値のリストで、BigDecimalだけ別に定義されていたので、定義処理をマージしています。


Add option to trigger JS framework-specific installation as part of webpack setup

railties/lib/rails/generators/app_base.rbの修正です。

rails newコマンドのwebpackオプションでWebpack dependencies configureの指定が出来るよう修正しています。

例えば、Webpack + React configuredを行いたい場合は、rails new myapp --webpack=reactとすればOKなようになっています。


Don't assign a default to webpack.

railties/lib/rails/generators/app_base.rbの修正です。

先の対応でwebpackオプションにデフォルトの値を設定していたのを、設定しないよう修正しています。デフォルトの値を設定してしまうと、rails newコマンド実行時にwebpackオプションを指定していなくても、webpackオプションが指定した場合と同じ挙動になってしまう為。


change return value of duplicable? with Ruby 2.4+

activesupport/lib/active_support/core_ext/object/duplicable.rbの修正です。

Ruby 2.4で、NilClass#duplicable?FalseClass#duplicable?TrueClass#duplicable?Symbol#duplicable? 及び Numeric#duplicable?がtrueを返すようになりました。それぞれRuby 2.4ではdup出来るようになっている為。