なるようになるブログ

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

rails commit log流し読み(2019/02/15)

2019/02/15分のコミットです。

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

actioncable/CHANGELOG.md

activerecord/CHANGELOG.md


Delegated path_for to primary in the MirrorService

activestorage/lib/active_storage/service/mirror_service.rbの修正です。

Service::MirrorService classでprimaryにdelegateするメソッドにpath_forメソッドを追加しています。path_fordelegateしないと、mirrorのprimaryにlocalを指定した場合に、エラーになってしまうため。


Merge pull request #35242 from eileencodes/add-setter-and-deprecation-for-configurations-hashes

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

Rails 6でActiveRecord::Base.configurationsの戻り値がHashからActiveRecord::DatabaseConfigurationsインスタンスに変わったのですが、互換性のためにActiveRecord::DatabaseConfigurationsHashで使いそうなメソッドを(fetchvalues等)を使用出来るようにしていました。

ただ、それらのメソッドは互換性の為に残しておりいずれ削除される予定のため、それらのメソッドを使用した場合にdeprecateメッセージを出力するよう修正しています。また、setter処理については互換ようのメソッドが無かったため、[]=についても使用出来るようにしています(こちらも使用したらdeprecateメッセージが出ます)。


Minor changes to deprecation warning message after 35242

Active Recordの修正です。

各種メッセージのグラマー、フォーマットの修正を行っています。


feat: support channel_prefix in pg subscription adapter

actioncable/lib/action_cable/subscription_adapter/postgresql.rbの修正です。

Action CableのPostgreSQL adapterでchannel_prefix optionを使用出来るよう修正しています。


Address uninitialized constant PostgresqlAdapterTest::ChannelPrefixTest (NameError)

actioncable/test/subscription_adapter/postgresql_test.rbの修正です。

先で追加されたchannel_prefixに関するrequireが不足していたのを追加しています。


Merge pull request #35249 from Edouard-chin/ec-config-for-hash-in-arrau

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

Allow deprecated non-symbol access to nested config_for hashesconfig_forの戻り値に対して、keyがStringでもアクセスが出来るよう対応 + keyがStringの場合deprecatedメッセージを出すよう対応したのですが、配列内にHashがある等のケースでの対応が不足していたので、それらの場合でも正しくdelegateメッセージが出力されるよう修正しています。


Replace autoloader accessors with Rails.autoloaders.{main,once}

railties、Active Supportの修正です。

Rails.autoloadersの名前をmainonceリファクタリングしています。onceActiveSupport::Dependencies.autoload_once_pathsで指定されたpathを管理し、mainでそれ以外を管理するようになっています。


Deprecate using class level querying methods if the receiver scope regarded as leaked

Active Recordの修正です。

receiver scopeがclass level querying methodsに影響を与えている状態でメソッドを実行した場合に、そのscopeを影響を与える、という挙動はdeprecateになった旨メッセージを出力するよう修正しています。

Chaining named scope is no longer leaking to class level querying methodsで対応しようした内容のdeprecate版。