なるようになるブログ

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

rails commit log流し読み(2019/09/24)

2019/09/24分のコミットです。

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

activestorage/CHANGELOG.md


Extract ActiveJob::Instrumentation

Active Jobの修正です。

Active Jobのinstrument処理をActiveJob::Instrumentation moduleに切り出しています。


Resolve Hash with url key as a UrlConfig

activerecord/lib/active_record/connection_adapters/resolver.rbactiverecord/lib/active_record/database_configurations/hash_config.rbの修正です。

Database ConfigurationsがHashでも、urlがkeyが含まれている場合はDatabaseConfigurations::UrlConfigで処理を行うよう修正しています。


Remove UrlConfig#url_config?

Active Recordの修正です。

一箇所でしか使用していないUrlConfig#url_config?メソッドを削除し、使用していた箇所で直接チェックするよう修正しています。


Make UrlConfig a subclass of HashConfig

Active Recordの修正です。

DatabaseConfigurations::UrlConfigDatabaseConfigurations::HashConfigの子クラスにして、共通した処理を使いまわせるよう修正しています。


Move ActiveJob::Exceptions#instrument to ActiveJob::Instrumentation

activejob/lib/active_job/exceptions.rbactivejob/lib/active_job/instrumentation.rbの修正です。

ActiveJob::Exceptions#instrumentメソッドをActiveJob::Instrumentation moduleに移動しています。


Delegate ActiveJob::Base#queue_adapter to class

Active Jobの修正です。

ActiveJob::Base#queue_adapterをclassにdelegateするようにして、レシーバーの指定なしでメソッドを呼べるよう修正しています。

が、delegateの指定先に誤りがあり後ほど修正されています。


Fix typo in actionpack changelog, a HTTP -> an HTTP [ci skip]

actionpack/CHANGELOG.mdの修正です。

a HTTP -> an HTTPに修正しています。


Fix typo /a HTTP/an HTTP/ [ci skip]

activestorage/app/models/active_storage/blob.rbのdocの修正です。

a HTTP -> an HTTPに修正しています。


Fix queue adapter class delegation to point to self.class

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

queue_adapterdelegateの指定先に誤りがあったのを修正しています。


Unify rotate method definitions to take keyword arguments

activesupport/lib/active_support/messages/rotation_configuration.rbの修正です。

rorateメソッドでキーワード引数を受け取れるよう引数の指定を修正しています。


template_exists? takes keyword arguments

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

キーワード引数にdouble splatを指定するよう修正しています


add_foreign_key takes keyword arguments

activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rbactiverecord/lib/active_record/connection_adapters/abstract/schema_statements.rbの修正です。

add_foreign_keyメソッドでキーワード引数を受け取れるよう引数の指定を修正しています。


Unify foreign_key method signatures to take keyword arguments

activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rbの修正です。

add_foreign_keyメソッドの引数指定の修正で、修正漏れがあったのを修正しています。


t.string takes keyword arguments

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

キーワード引数にdouble splatを指定するよう修正しています


form_with takes keyword arguments

actiontext/test/template/form_helper_test.rbの修正です。

form_withメソッドでキーワード引数を受け取れるよう引数の指定を修正しています。


let zeitwerk:check report files outside the root directory with absolute paths

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

zeitwerk:checkで問題があったファイルのパスを表示する際に、アプリケーションの外にある(gem等)ファイルのパスが正しく表示されないバグがあったのを修正しています。


Fixed typo in comment in ActionCable::Connection::TestCase [ci skip]

actioncable/lib/action_cable/connection/test_case.rbの修正です。

ActionCable::Connection::TestCaseのdocのグラマーの修正を行っています。


Always create ActiveStorage::Blob before uploading to service

activestorage/app/models/active_storage/blob.rbの修正です。

Blob.create_after_upload!Blob.build_after_uploadメソッドがdeprecateになり、代わりにBlob.create_and_upload!が追加されました。

Blob.create_after_upload!Blob.build_after_uploadは名前の通り、先にstorageへのアップロード処理を行ない、その後DBへの保存(またはビルド)を行うようになっていました。

しかし、それだと既に使用されているのと同じkeyを別のファイルで使用した場合、アップロードは成功するがDBへの保存はユニーク制約で失敗してしまい、結果処理としては失敗しているのだがアップロードだけ行われてしまう(同じkeyなので後からアップロードしたファイルで内容が更新されてしまう)、という問題が発生していました。

そのため、問題があるメソッドはdeprecateとして、代わりにDBへの保存処理を先に行うBlob.create_and_upload!`メソッドを追加し、そちらを使用するよう各箇所を修正しています。


Shush deprecation warnings in ASt tests

activestorage/test/models/blob_test.rbの修正です。

deprecateメッセージが出力される処理をassert_deprecatedで囲むよう修正しています。


Fix typo: overwrittein → overwritten

activestorage/app/models/active_storage/blob.rbのdocの修正です。

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


Merge pull request #37280 from seejohnrun/use-db-config

Acitve Recordの修正です。

database configurationsの値を参照する際に、configuration_hashを直接参照していたのを、ラッパーメソッド経由で値を取得するよう修正しています。

configuration hashの直接参照はしないようにしたい為、との事です。


Fix typo in changelog entry [ci skip]

activestorage/CHANGELOG.mdの修正です。

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


Instantiate ConnectionPool with a DatabaseConfig rather than a ConnectionSpecification

Active Recordの修正です。

ConnectionPoolインスタンスの生成処理でConnectionSpecificationを渡すようになっていたのを、他のクラスと同様にDatabaseConfigを渡すよう修正しています。