なるようになるブログ

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

rails commit log流し読み(2019/04/13)

2019/04/13分のコミットです。

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


Fix test flakyness due to test_truncate_tables

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

truncateのテストで、テストの後処理でfixtureをリセットしてテスト前と同じ状態になるよう修正しています。


Fix presicion -> precision

activerecord/test/cases/ar_schema_test.rbactiverecord/test/cases/migration/compatibility_test.rbの修正です。

precisionpresicionにタイポしている箇所があったのを修正しています。


Do not treat environment_desc as commands

railties/lib/rails/command/environment_argument.rbの修正です。

environmentオプションのdescを管理する為のenvironment_desc attributeがhelpに表示されてしまっていたのを、表示されないよう修正しています。


Rename method_missing_target to target

activemodel/lib/active_model/attribute_methods.rbの修正です。

AttributeMethodMatcher classのmethod_missing_target attributeをtargetにリネームしています。

このtargetは、ハンドラーへのattribute methodの定義と、method_missingでそのmethod呼び出しかのチェック及びハンドラーのmethod呼び出しで使用されています。で、後者だとmethod_missing_targetでも名前として適切あのですが、前者の使い方だとmethod_missing_targetは名前がおかしいだろう、という事でtargetにリネームしています。


Improve wording of comments

Active Modelのdocの修正です。

attribute_xxメソッドのdocのコメントを実際の処理の内容に合わせて修正しています。


Auto-correct Style/StringLiterals cop offences

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

rubocopの設定に違反している箇所があったのを修正しています。


Fix Code Climate exclude patterns config

.codeclimate.ymlの修正です。

Do not exclude paths in the global level of Code ClimateでCode Climateのexclude_pathsの設定を削除したのですが、その影響でCode Clmateのデフォルトのexclude_pathsの設定が使われるようになた、かつ、そのデフォルトの設定ではtestがチェックの対象外になっており、テストファイルがチェックされないという問題がおきていました。

exclude_pathsに空の配列を指定し、Code Climateのデフォルトの設定が使われないよう修正しています。


use PostgreSQL's bulk_alter_table implementation

Active Recordの修正です。

各adapterでbulk_change_tableメソッドの実装を保持していたのを、abstractのSchemaStatementsで実装を保持するよう修正しています。

migrationのbulk処理がadapter間で挙動の違いがあった(migration内で指定されたメソッドが内場合のfallbackの挙動が違う)為、同じ挙動になるように修正をしています。


Add validation to subclass in tests to avoid polluting parent class

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

validates_acceptance_of validationのテストで、modelに直接テスト内でvalidationを追加していたのを、Class.newでサブクラスを作成しそちらにvalidationを追加するようにしています。modelの状態をテスト内で変化させるのを避ける為。