なるようになるブログ

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

rails commit log流し読み(2015/01/25)

2015/01/25分のコミットです。

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


Don't duplicate Relation::VALUE_METHODS in Relation::Merger

activerecord/lib/active_record/relation/merger.rbの修正です。

Relation::MergerVALUE_METHODSを定義する際、元々ある定数を使用するよう修正しています。

-      NORMAL_VALUES = Relation::SINGLE_VALUE_METHODS +
-                      Relation::MULTI_VALUE_METHODS -
+      NORMAL_VALUES = Relation::VALUE_METHODS -

MULTI_VALUE_METHODS + SINGLE_VALUE_METHODSVALUE_METHODSが定義されていたので、VALUE_METHODSを使用するようにしたようです。


Don't rely on relation mutability when building through associations

activerecord/lib/active_record/associations/through_association.rbactiverecord/lib/active_record/relation/predicate_builder.rbの修正です。

through associationsを生成する際、scopeの情報を設定する際、merge!でレシーバー自身を更新していたのを、変数に代入するよう修正しています。

また、bind処理を行う際、ドット区切りの文字列のHashへの変換(ex: { "posts.id" => 1 } to { "posts" => { "id" => 1 } })を先に行ってから先に処理を行うよう修正しています。


Don't mutate where_values

activerecord/lib/active_record/relation/query_methods.rbの修正です。

where_unscopingメソッドArel::Nodesの削除を行う際、reject!でレシーバー自身を更新していたのを、結果を別変数に代入するよう修正しています。

コミットログ見る限り、今後リファクタリングする上で、そちらの方が都合が良いからとの事です。


Expand the number of types which can use prepared statements

activerecord/lib/active_record/relation/predicate_builder.rbactiverecord/lib/active_record/relation/query_methods.rbactiverecord/lib/active_record/table_metadata.rbの修正です。

create_binds_for_hashメソッド内のprepared statements生成処理で、値がString, Integer, ActiveRecord::StatementCache::Substituteの場合に分岐していたのを、 分岐処理をなくし、その他のケースでまるめるよう修正しています。

リファクタリングの一環だと思うのですが、良く解らない…。


Add missing options to datetime_select [ci skip]

actionview/lib/action_view/helpers/date_helper.rbのdocの修正です。

time_ago_in_wordsメソッドのdocにtime_separatordatetime_separatorオプションについての説明が不足していたので、追加しています。


Add tip for running binstubs on Windows [ci skip]

rails guideのGetting Started with Railsの修正です。

Windowsでbinstubを使用する際のTIPを追加しています。


remove trailing whitespace. [ci skip]

rails guideのGetting Started with Railsの修正です。

先で追加されたbinstubの説明の終端に不要な空白があったので、削除しています。


fix task description for tmp:create

railties/lib/rails/tasks/tmp.rakeの修正です。

tmp:createタスクの説明にsessionsディレクトリを作成する、と記載されていたのですが、現状sessionsディレクトリは作成されないよう修正されているので、説明も現状に合わせて修正しています。