2017/03/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #28412 from benoittgt/add_doc_for_message_encryptor_new
activesupport/lib/active_support/message_encryptor.rb
のdocの修正です。
ActiveSupport::MessageEncryptor#initialize
メソッドのdocに、メソッドの引数にsignature keyを指定した場合のexampleを追加しています。
Merge pull request #28426 from mtsmfm/fix-fragile-test
activerecord/test/cases/scoping/default_scoping_test.rb
の修正です。
default scoping + threadに関するテストを、別クラスに切り出してテストを行うよう修正しています。
Ensure test threads share a DB connectionでdefault scopingのテスト全体に対してuse_transactional_tests = false
を設定していました。が、それにより残ってしまうfixtureの後処理が漏れており、テストの実行順によりテストが壊れてしまっていました。
その対応として、後処理を追加するのではなく、そもそもuse_transactional_tests
をfalseにする必要があるテスト(threadが絡むテスト)だけを別クラスに切り出して、そちらのクラスのuse_transactional_tests
をfalseにするよう修正したようです。
Revert #27850 following test breakage (#28427)
perform_enqueued_jobs
メソッドにonly
オプションを指定した場合に、only
オプションに指定した以外のjobがenqueueされないようになっていたのを、enqueueはされるよう修正した、Feature/active job test helper by apaulyをrevertしています。
元々の挙動(enqueueされない挙動)が意図通りだった為、との事です。
Remove unnecessary params munging
actionpack/lib/action_dispatch/routing/route_set.rb
の修正です。
ActionDispatch::Routing::RouteSet#recognize_path
メソッドで、異なるroutesで設定されたparamsが参照出来るバグがあったのを修正しています。
# routes get "/class/:foo", to: "pages#show", constraints: PageConstraint.new(:foo, /foo/) get "/class/:bar", to: "pages#show", constraints: PageConstraint.new(:bar, /bar/)
# before recognize_path("/class/bar") # => {:controller=>"pages", :action=>"show", :foo=>"bar", :bar=>"bar"} # after recognize_path("/class/bar") # => {:controller=>"pages", :action=>"show", :bar=>"bar"}
before
の方だと、本来存在しない筈の:foo=>"bar"
がいるのですが、これは最初のconstraintのチェックの際に設定されたparamsが使われてしまっていた為でした(paramsのマージ処理が行われてしまっていた)。
activesupport/lib/active_support/message_encryptor.rb
メソッドのdocの修正です。
ActiveSupport::MessageEncryptor#initialize
メソッドのdoc内のsignature keyを指定した場合のexampleの値を、signature_key
からsignature_secret
に変更しています。うーん、元のkeyのままで良さそうな気もするんですけどね。
Merge pull request #28368 from y-yagi/add_test_for_secrets_command
railties/test/commands/secrets_test.rb
の修正です。
secrets:edit
コマンドを実際に使用してファイルの読み込みを行った場合のテストを追加しています。
Merge pull request #28147 from kmcphillips/master-time-freeze
Active Supportの修正です。
freeze済みのTime
クラスのオブジェクトでto_time
メソッドを呼び出した場合に、RuntimeErrorが発生してしまうバグがあったのを修正しています。
source = Time.new(2016, 4, 23, 15, 11, 12, 3600).freeze # => 2016-04-23 15:11:12 +0100 source.to_time # => RuntimeError: can't modify frozen Time
Move to_time
to DateTime
compatibility.rb file
activesupport/lib/active_support/core_ext/date_and_time/compatibility.rb
、
activesupport/lib/active_support/core_ext/date_time/compatibility.rb
の修正です。
Time
、及びActiveSupport::TimeWithZone
クラスで使用する為のto_time
メソッドの実装が、activesupport/lib/active_support/core_ext/date_and_time/compatibility.rb
に定義されていたのをactivesupport/lib/active_support/core_ext/date_time/compatibility.rb
に移動しています。
Time
クラスに関する処理なので、date_time/compatibility.rb
にある方が適切だろうとの事のようです。
activesupport/test/core_ext/duration_test.rb
の修正です。
テストでRubyのwarning(ambiguous first argument; put parentheses or a space even after
-‘ operator`)が出ていたので、括弧を追加し対応しています。