2017/07/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Deprecate
set_statemethod inTransactionState - Fix transactions to apply state to child transactions
Merge pull request #29349 from robertomiranda/responsive-images
actionview/lib/action_view/helpers/asset_tag_helper.rbの修正です。
image_tagメソッドにsrcset属性を指定する為のsrcsetオプションを追加しています
image_tag("icon.png", srcset: { "icon_2x.png" => "2x", "icon_4x.png" => "4x" }) # => <img src="/assets/icon.png" srcset="/assets/icon_2x.png 2x, /assets/icon_4x.png 4x"> image_tag("pic.jpg", srcset: [["pic_1024.jpg", "1024w"], ["pic_1980.jpg", "1980w"]], sizes: "100vw") # => <img src="/assets/pic.jpg" srcset="/assets/pic_1024.jpg 1024w, /assets/pic_1980.jpg 1980w" sizes="100vw">
Merge pull request #29506 from pat/frozen-string-literals
Acitve Supportの修正です。
Frozen string literals指定してもエラーにならず動作するよう、Stringを変更する箇所でdupを呼び出すよう修正しています。
Merge pull request #29540 from kirs/rubocop-frozen-string
RubocopのStyle/FrozenStringLiteralCommentを有効にし、各ファイルの先頭にfrozen_string_literal: trueを追加しています。
が、テストが通らなくなってしまった為、revertされています。
Revert “Merge pull request #29540 from kirs/rubocop-frozen-string”
というわけで、直前のStyle/FrozenStringLiteralCommentの対応をrevertしています。
actionview/lib/action_view/helpers/asset_tag_helper.rbの修正です。
ローカル変数と同名の変数を、ブロックパラメータで指定していた箇所があったので、別の変数名を使用するよう修正しています。
Deprecate and replace set_state method
ActiveRecord::ConnectionAdapters::TransactionState#set_stateメソッドがdeprecateになりました。
代わりに、明示的にstateを指定する為のrollback!、commit!、nullify!メソッドが追加されたので、stateを変更したい場合は左記メソッドを使う必要があります。
Transactionのstateを明示的に変更したいのって、どういう時なんだろう。
Apply record state based on parent transaction state
activerecord/lib/active_record/connection_adapters/abstract/transaction.rb、
activerecord/lib/active_record/transactions.rbの修正です。
transactionをネストしている、かつ、親のtransactionでrollbackした際に、子のtransaction内のオブジェクトがpersistedされた状態とみなされていたのを、左記のような場合でもpersistedとみなされないよう修正しています。
Post.transaction do post_one.save # `post_one`の`persisted?`はfalseを返す Post.transaction(requires_new: true) do post_two.save # 元々は、`post_two`の`persisted?`がtrueを返してしまっていたのを、falseを返すよう修正 end raise ActiveRecord::Rollback end
Fix removed version 5.2 to 6.0 in the deprecation message
activerecord/lib/active_record/connection_adapters/abstract/transaction.rbの修正です。
ActiveRecord::ConnectionAdapters::TransactionState#set_stateメソッドのdeprecate message内のメソッドを削除するRailsのバージョンが5.2になっていたのを6.0に修正しています。
Move test related to tmp:clear task to tmp_test.rb
railties/test/application/rake/tmp_test.rb、
railties/test/application/rake_test.rbの修正です。
tmp:clear タスクに関するテストをtest/application/rake/tmp_test.rbに移動しています。
Merge pull request #29566 from eugeneius/wrap_parameters_query
actionpack/lib/action_controller/metal/params_wrapper.rbの修正です。
既に同じkeyがparamsにある場合は、wrap処理を行わないよう修正しています。
:warning: “Use assert_nil if expecting nil. This will fail in Minitest 6.”
activerecord/test/cases/transactions_test.rbの修正です。
assert_equalメソッドのexpected引数にnilを指定していたテストを、assert_nilを使用するよう修正しています。
Minitest 5.10から上記使い方がdeprecateになり、nilを期待する場合はassert_nilが使用する必要がある為。
Action ViewとAcitve Supportのテストの修正です。
assert_equalの引数の順番がおかしかった(expectedとactualが逆だった)テストを修正しています。