2019/10/01分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #35915 from bernardoamc/allow-has-secure-token-length-manipulation
activerecord/lib/active_record/secure_token.rb
の修正です。
has_secure_token
メソッドでにtokenの長さを指定出来るよう修正しています。長さは24以上の値が指定出来るようになっています。
has_secure_token :default_token # 24 characters has_secure_token :auth_token, length: 36 # 36 characters has_secure_token :invalid_token, length: 12 # => ActiveRecord::SecureToken::MinimumLengthError
activesupport/lib/active_support/fork_tracker.rb
の修正です。
Introduce a callback for forked childrenでObject#fork
の可視性をpublicに変更してしまったのを、Ruby本体同様にprivateに戻しています。
activesupport/lib/active_support/fork_tracker.rb
の修正です。
fork
実行時にcallbackを実行する為の仕組で、Kernel#fork
に対するオーバーライドが不足していたのを追加しています。
Decrease the precision of the sec_fraction in the tests
activesupport/test/core_ext/time_ext_test.rb
の修正です。
sec fractionのテストでチェックする値の精度を下げるよう修正しています。
元々はピコ秒までチェックしていたのですが、Rubyの実装によってはナノ秒までしかサポートしていない為、ナノ秒までチェックするよう修正しています。
Fix fraction float assertions in time_ext_test
activesupport/test/core_ext/time_ext_test.rb
の修正です。
先の修正で値をチェックするのにRational
を使うよう修正したのですが、Rational
とsec_fraction
だと結果のチェックが正しく行えない(戻り値が異なる)、という問題がある為、to_r
で変換した値でチェックするよう修正しています。
Always use 28 characters for Active Storage keys
activestorage/app/models/active_storage/blob.rb
の修正です。
has_secure_token
メソッドでにtokenの長さを指定出来るようにした対応の影響で、Active Storageのblogで生成するkeyが想定外の値になるようになってしまっていたのを、明示的にlength
を指定するよう修正しています。
Include connection in cached query notifications
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
の修正です。
query cacheから結果を取得した場合のsql.active_record
instrumentationのpayloadにconnection
objectを追加しています。DBから結果を取得した場合には既にconnection
objectを含むようになっており、挙動を合わせる為。
Avoid making query when using where(attr: [])
activerecord/lib/active_record/relation.rb
、
activerecord/lib/active_record/relation/where_clause.rb
の修正です。
where(attr: [])
を実行した場合に、クエリー(WHERE 1=0
になっていた)を実行せずに空の配列を返すよう修正しています。
Use assert_queries
since we are only checking for the count
activerecord/test/cases/relation_test.rb
の修正です。
SQLが何回実行されたかをチェックするのにcapture_sql
を使用していたのを、assert_queries
を使用するよう修正しています。
Remove any precision problem by comparing the float values
activesupport/test/core_ext/time_ext_test.rb
の修正です。
to_r
による結果の比較だとやはり問題になる実行系があるとの事で、Rational
ではなくFloat
の値でチェックするよう修正しています。
Delay ActionDispatch::Response configuration to load-time
actionpack/lib/action_dispatch/http/response.rb
、
actionpack/lib/action_dispatch/railtie.rb
の修正です。
ActionDispatch::Response
の用のload hookを追加し、ActionDispatch::Response
に関するconfigをクラスロード時に行うよう修正しています。
クラスロード時にconfigの指定を行わないと、initializerでActionDispatch::Response
に関するconfigを指定した場合にそれが正しく反映されない為。