2014/08/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Use *_transaction methods in TransactionManager
activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
の修正です。
トランザクション処理でTransactionManager
クラスの*_transactionメソッドを使用するよう修正しています。
Fix regression on after_commit in nested transactions.
activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
の修正です。
transaction処理ネストして行った場合に、after_commit
が実行されなかったバグを修正しています。
サンプル。
class Post < ActiveRecord::Base after_commit :do_something def do_something logger.warn "*** IN COMMIT ***" end end ActiveRecord::Base.transaction do ActiveRecord::Base.transaction(requires_new: true) do Post.create end end
3系は動作していたのが4系で動作しなくなった、リグレッション対応です。
activesupport/test/multibyte_chars_test.rb
の修正です。
使用していない変数を削除しています。
Avoid polluting String class globally in a test case
activesupport/test/multibyte_chars_test.rb
の修正です。
テスト用のメソッドをString
クラスに追加しているのですが、テストの為にglobalを汚すのはよくない、という事でsingleton_class
経由でメソッドを定義するよう修正しています。
例。
@chars.wrapped_string.singleton_class.class_eval { def __method_for_multibyte_testing; 'result'; end }
Avoid mutating the constants in a test case
activesupport/test/multibyte_chars_test.rb
、
activesupport/test/multibyte_test_helpers.rb
の修正です。
テストの中で定数を変化させてしまっている箇所があったのを修正しています。
また、事故防止の為に定数に値を設定する際にfreeze
メソッドを呼び出して、凍結状態にしています。