2019/03/28分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #35556 from bdewater/fast-secure-compare
activesupport/lib/active_support/security_utils.rbの修正です。
ActiveSupport::SecurityUtils.secure_compareメソッドで引数を変換するのにDigest::SHA256.hexdigestを使用していたのを、Digest::SHA256.digestを使用するよう修正しています。
16進文字列に変換する必要が無い、かつ、Digest::SHA256.digestの方が高速な為。
Merge pull request #35496 from bogdan/right-preloading
Active Recordの修正です。
既にロード済みのassociationが、associationのpreloadでリセットされてしまうケースがあったのを、利用可能なassociationについてはリセットせず使い回すよう修正しています。
Merge pull request #35236 from renuo/fix-30467
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
resourceのparamオプションに不正なコロン(:)が含まれている場合、ArgumentErrorをraiseするよう修正しています。
Remove :all symbol from Mime::ALL
actionpack/lib/action_dispatch/http/mime_type.rbの修正です。
Mime::ALLから:allというsymbolを削除しています。
.allという拡張子を使用する事もないし、Mime[:all]も動作しなく、含んでおく必要が無いため削除したとの事です。
Fix bug in Range comparisons when comparing to excluded-end Range
activesupport/lib/active_support/core_ext/range/compare_range.rbの修正です。
Rangeの比較処理で、終端を除外したRange(e.g. 1...10)に対するチェック処理が正しく動作しないバグがあったのを修正しています。
# Before (1..10).cover?(1...11) # => false # After (1..10).cover?(1...11) # => true
[ci skip] Fixed testing guides typo fourty -> forty
rails guideのTesting Rails Applicationsの修正です。
fourtyをfortyに修正しています。
Merge pull request #34405 from shugo/safe_buffer_backref_fix
activesupport/lib/active_support/core_ext/string/output_safety.rbの修正です。
ActiveSupport::SafeBufferでsub, sub!, gsub, gsub!を使用した場合にback referencesを設定するようにしています。ActiveSupport::SafeBufferでgsub等のメソッドをブロックでを指定して使用した場合に、ブロック内で$1が参照出来ない、という問題があったのがこの対応により解決されています。
# Before "foo123".html_safe.sub(/([a-z]+)([0-9]+)/) { p $1 } #=> nil # After "foo123".html_safe.sub(/([a-z]+)([0-9]+)/) { p $1 } #=> "foo"
$1はコンテキストが変わってしまうと参照出来なくなる、かつActiveSupport::SafeBufferはStringクラスのメソッドのラッパーをしている為この問題が発生していたのですが、Proc#bindingで呼び出し元のコンテキストを得てback referencesを設定(block.binding.eval("proc { |m| $~ = m }").call(match_data))するようにして対応しています。