なるようになるブログ

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

rails commit log流し読み(2017/09/05)

2017/09/05分のコミットです。

CHANGELOGへの追加はありませんでした。


Don’t merge reflection_scope if reflection.scope isn’t given

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

Association#build_scopeメソッドでreflection.scopeが設定されていない場合、不要なreflection scopeのmerge処理を行わないよう修正しています。


Assigning values is only necessary when reflection_scope.where_clause is not empty

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

Preloader::ThroughAssociation#through_scopeメソッドで、reflection_scope.where_clauseが空の場合に不要なreflection_scope.valuesの呼び出し処理(及びその呼び出しによるHashの生成)を行わないよう修正しています。


Don’t pass unneeded reflection to add_constraints

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

AssociationScope::ReflectionProxy#add_constraintsメソッドの引数からreflectionを削除しています。

scopeを取得する為に使用されていたのですが、別の引数(chain_head)から同じscopeを取得出来、こちらは不要な為削除されています。


Merge pull request #30520 from rails/railties-rails-command

railtiesのテストの修正です。

テスト内でrailsのコマンドを実行するのにバッククォートを使用して外部コマンドとして実行していた(e.g. `./bin/rails generate model user`のように)のを、fork + loadを使用してコマンドを実行するように修正しています。

バッククォートを使用してコマンドを実行すると、shellの引数解析が実行されてしまいコマンドの実行が遅くなってしまいます。それを避けるようにする為に上記方法で行うようにしています。要はテスト実行のスピードアップの為。


Merge pull request #29791 from yui-knk/at_object

Action Viewの修正です。

ActionView::Helpers::Tags::Baseクラスが使用するprivateメソッドの引数にBaseクラスのインスタンス変数(@object)が含まれていたのを、引数から削除し、メソッド内で直接インスタンス変数を参照するよう修正しています。