なるようになるブログ

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

rails commit log流し読み(2017/01/17)

2017/01/17分のコミットです。

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

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #27692 from y-yagi/make_render_work_with_ac_params

actionview/lib/action_view/rendering.rbの修正です。

renderにpermitted済みのparametterを直接渡した場合にエラーになってしまっていたのを修正しています。


Add CHANGELOG entry for #27701

activerecord/CHANGELOG.mdの修正です。

外部キー制約違反エラーになった場合にSQLite3 adapterでもActiveRecord::InvalidForeignKeyをraiseするよう修正した、Translate Foreign Key violation to the specific exception for SQLite3 adapterの対応についてエントリーを追加しています。


Generate migrations at path set by config.paths["db/migrate"]

activerecord/lib/rails/generators/active_record/migration/migration_generator.rbactiverecord/lib/rails/generators/active_record/model/model_generator.rbの修正です。

migration、及びmodelのgeneratorが生成するmigration fileの生成先がdb/migrate配下固定になっていたのを、Rails.application.config.paths["db/migrate"]の値を使用するよう修正しています。


Missing require for strip_heredoc

activemodel/test/cases/errors_test.rbの修正です。

不足していたactive_support/core_ext/string/stripのrequireを追加しています。


s/perfomed/performed/

activejob/lib/active_job/test_helper.rbの修正です。

performedperfomedにタイポしていたのを修正しています。


Merge pull request #27704 from kmcphillips/transliterate-exception

activesupport/lib/active_support/inflector/transliterate.rbの修正です。

ActiveSupport::Inflector#transliterateメソッドの第一引数にStringクラス以外のオブジェクトを指定した場合に、ArgumentErrorをraiseするよう修正しています。


Should work foreign key in test schema without if supports_foreign_keys? statement

activerecord/test/cases/schema_dumper_test.rbactiverecord/test/schema/schema.rbの修正です。

foreign keyについてのテストで、foreign keyメソッドを呼ぶ際にsupports_foreign_keys?メソッドでforeign keyをサポートしているかどうかチェックしていたのを削除しています。

-        t.foreign_key :dog_owners, column: "owner_id" if supports_foreign_keys?
+        t.foreign_key :dog_owners, column: "owner_id"

テスト対象のadapterがforeign keyをサポートしていなくてもメソッドは呼べるようになっている(呼べた結果何も処理が行われない)ので、チェックは不要な為との事です。


SQLite: Foreign Key Support

Active Recordの修正です。

SQLiteでもforeign keyメソッドが使用出来るよう修正しています。SQLite3.6.19であれば foreign keyが使えるようになっています。

参考:SQLite Foreign Key Support


:golf: else + if = elsif

activesupport/lib/active_support/core_ext/string/output_safety.rbの修正です。

ActiveSupport::SafeBuffer::SafeConcatError#[]内でelseブロックの中で更にifブロックがあったのを、elsifを使用するよう修正しています。


All currently supported rubies already have LoadError#path

activesupport/lib/active_support/core_ext/load_error.rbの修正です。

LoadError#pathメソッドを削除しています。現在のmasterブランチでサポートしているRubyには全てLoadError#pathメソッドはある為。


Don't pollute Object with rubinius_skip and jruby_skip

コンポーネントのテスト用helperファイルで、JRuby、rubinusの場合にテストをスキップするようのメソッド(rubinius_skipjruby_skip)がObjectクラスに定義されてしまっていたのを、各テスト用クラスに定義するよう修正してます。


Make yarn install available as a rake task via yarn:install so we can use that as a dependency for assets:precompile

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

yarnコマンド用のtaskを定義する為のyarn.rakeを追加し、yarn installをrakeタスク経由で実行出来るようにしています。

namespace :yarn do
  desc "Install all JavaScript dependencies as specified via Yarn"
  task :install do
    system('./bin/yarn')
  end
end

# Run Yarn prior to Sprockets assets precompilation, so dependencies are available for use.
Rake::Task['assets:precompile'].enhance [ 'yarn:install' ]

assets:precompileの依存taskとしてyarnインストールを実行出来るようにする為、との事です。


Be a bit more explicit rather than relying on the default task

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

yarn:installタスクでyarnのインストールを実行するコマンドが./bin/yarnだけになっていたのを、./bin/yarn installに修正しています。