なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2017/07/22)

2017/07/22分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


Match destroyed_by_association for has_one to has_many

activerecord/lib/active_record/associations/has_one_association.rbの修正です。

has_one associationをdependent: destroyで削除した際に、destroyed_by_associationをtrueを設定するよう修正しています。has_many associationsと挙動を合わせる為。


Revert “Extract bind_param and bind_attribute into ActiveRecord::TestCase

各テストそれぞれで独自に行っていた、Arel::Nodes::BindParamActiveRecord::Relation::QueryAttributeの生成処理をActiveRecord::TestCaseで行うよう修正した、Extract bind_param and bind_attribute into ActiveRecord::TestCaseをrevertしています。

上記処理が必要なテストは多くなく、TestCaseクラスに含む必要は無い為、というのが理由のようです。


Merge pull request #29732 from kirs/frozen-activerecord

Active Recordの修正です。

各ファイルの先頭にfrozen_string_literal: trueを追加しています。


Merge pull request #29869 from kamipo/make_type_map_to_private

Active Recordの修正です。

AbstractAdapter#type_mapメソッドの可視性をprivateにしています。

type_mapメソッドはconnection adapterでしか使用しておらず、publicである必要は無い為。


Merge pull request #29858 from y-yagi/use_argument_error_instead_of_own_error_class

activejob/lib/active_job/test_helper.rbactivejob/test/cases/test_helper_test.rbの修正です。

Active Jobのテスト用ヘルパーメソッド(assert_enqueued_jobs, assert_performed_jobs等)にonlyexceptオプションを同時に指定した場合にraiseするエラークラスを、独自のエラークラス(InvalidOptionsError)からArgumentErrorに修正しています。

引数エラーの場合にraiseされるエラーなので、独自エラークラスよりArgumentErrorの方が的確な為。


Merge pull request #29870 from kamipo/use_true_false_literals

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql/quoting.rbの修正です。

MySQL adapterのboolean serialization処理を独自に定義していたのを、abstract adapterで定義されているserialization処理を使用するよう修正しています。

Change sqlite3 boolean serialization to use 1 and 0でabstract adapterのboolean serializationでTRUEFALSEリテラルが使われるようになったのですが、MySQLでも左記リテラルをサポートしている為、abstract adapterのserialization処理を使用するようにしています。