2017/07/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Deprecate
set_state
method 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が逆だった)テストを修正しています。