なるようになるブログ

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

rails commit log流し読み(2018/02/22)

2018/02/22分のコミットです。

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


Delete default configuration

activerecord/lib/active_record/tasks/database_tasks.rbrailties/lib/rails/application/configuration.rbの修正です。

database configurationをロードした際に、defaultセクションを削除するよう修正しています。

元々はそのまま保持していたのですが、DatabaseTasksでconfigurationを参照する際にdefaultセクションの場合は処理をスキップする、という処理が入っていた為、ロード時に削除し、チェックは行わないすむよう修正しています。


Call YAML.load correctly

activerecord/lib/active_record/railties/databases.rakeactivesupport/lib/active_support/xml_mini.rbの修正です。

クラスメソッドを呼び出すのに::を使用していたのを、.を使用するよう修正しています。

-        if data = YAML::load(ERB.new(IO.read(file)).result)
+        if data = YAML.load(ERB.new(IO.read(file)).result)

Do not add routes when actions are not specified

railties/lib/rails/generators/rails/controller/controller_generator.rbの修正です。

controller generatorでactionが指定されていない場合は、routesにnamespaceを追加しないよう修正しています。Rails 5.1までと挙動を合わせる為。


We should call methods with .method_name not ::method_name.

他にもクラスメソッドを呼び出すのに::を使用している箇所があったのを、.を使用するよう修正しています。


Add cop for preferring 'Foo.method' over 'Foo::method'

.rubocop.ymlStyle/ColonMethodCall copを追加、及び、各ファイルにcopを適応しています。


Reject empty database yamls

railties/lib/rails/application/configuration.rbの修正です。

database configurationをロードした際に、databaseの設定が無いセクションを削除するよう修正しています。

Delete default configurationdefaultセクションを削除するよう修正したのですが、それだとdefaultセクションにdatabaseの設定があった場合に問題になる(YAMLのアンカーを使っている場合)為、databaseの設定が無い箇所を削除する修正しています。


Properly escape column name embedded into regexp

activerecord/test/cases/base_test.rbの修正です。

test_default_values_are_deeply_duppedでqueryにquoted_idが含まれているか確認する際に、quoted_idRegexp.escapeで囲むよう修正しています。

-    assert_match(/SELECT #{quoted_id}.* FROM developers/, query)
+    assert_match(/SELECT #{Regexp.escape(quoted_id)}.* FROM developers/, query)

SQLServerAdapterではカラム名に中括弧を使うようになっており(e.g.[id])、括弧をエスケープしないと正しくマッチしない為。