なるようになるブログ

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

rails commit log流し読み(2018/11/08)

2018/11/08分のコミットです。

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

activerecord/CHANGELOG.md


Add multi-db support to schema cache dump and clear

activerecord/lib/active_record/railties/databases.rakeactiverecord/lib/active_record/tasks/database_tasks.rbの修正です。

db:schema:cache:dump taskとdb:schema:cache:clearに複数DB向けのサポートを追加しています。


Guard Enums against definitions with blank label names

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

enumsに指定する値にvaluesに空の値(e.g. enum status: { "" => 1, "active" => 2 })を指定した場合にArgumentErrorをraiseするよう修正しています。

valuesに指定された値を元にscope用のメソッド等を定義するのですが、空だと!?というメソッドが定義されてしまい、予期せぬ挙動になってしまう為使用出来ないようにしています。


Fix broken CHANGELOG markup [ci skip]

コンポーネントCHANGELOGの修正です。

CHANGELOGのフォーマットが壊れていた箇所があったのを修正、及び、不要なスペースを削除しています。


Compile packs for test

railties/test/application/rake_test.rbの修正です。

test_scaffold_with_references_columns_tests_pass_by_defaultscaffold生成されたファイルに対してテストを実行する前に、テスト用のassetsファイルをコンパイルするよう修正しています。

元々webpacker:compileは実行されていたのですが、RAILS_ENVが指定されていない為、development用のassetsがコンパイルされており、意味が無かった(webpackerはデフォルトでtest用とdevelopment用のassetsを別に管理すうる)為、RAILS_ENVtestを指定しwebpacker:compileを実行するよう修正しています。


Use RuboCop 0.60.0 and remove exclude files for Style/RedundantFreeze

.codeclimate.yml.rubocop.ymlの修正です

codeclimateで使用するRuboCopのバージョンを0.60.0に更新、及び、RuboCop 0.60.0で修正された、Style/RedundantFreeze copのfalse positiveを避ける為にExcludeを指定していたのを削除しています。


Add an :if_not_exists option to create_table

Active Recordの修正です。

create_tableif_not_existsオプションを追加しています。

create_table :posts, if_not_exists: true do |t|
  t.string :title
end

上記のような指定をした場合、下記のSQLが実行されるようになります。

CREATE TABLE IF NOT EXISTS posts (
  ...
)

Remove unused argument expected_database

railties/test/application/rake/multi_dbs_test.rbの修正です。

db_migrate_namespaceddb_migrate_status_namespacedメソッドから使用していないexpected_database引数を削除しています。