なるようになるブログ

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

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

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

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

railties/CHANGELOG.md

activejob/CHANGELOG.md


Ensure multiple anonymous modules are not included into Topic in tests

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

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


deprecates autoloading constants during initialization [closes #35745]

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

config.cache_classesがfalseの際に、initialization中のautoloading処理を行うのがdeprecatenになりました。

コードをreloadしてもapplicationは再起動されない為、initialization中の処理に実行されたコードは再実行されません。そのため、initialization中にautoloadされたクラスのコードを変更してもその変更はオブジェクトに正しく反映されない、という仕様になっていました。それらなそもそも、initialization中のautoloadingを許可しない方が挙動としてわかりやすいのでは、という話になりdeprecateになりました。いずれは明確にエラーとする予定との事です。

参考:Autoloading and Initializers


Don't expose add_to_transaction

activerecord/lib/active_record/touch_later.rbactiverecord/lib/active_record/transactions.rbの修正です。

Rails内部でだけ使用する想定のadd_to_transactionメソッドの可視性をprivateに変更しています。


Merge pull request #35956 from mrhead/fix-per-exception-retry-counter

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

Keep executions for each specific exceptionでexception毎にexecution counterを指定出来るようになったのですが、retry delayの計算に使用するcounterがグローバルのcounterを使うようになったままになっていたので、delayの計算に使用するcounterもexception毎のcounterを使用するよう修正しています。


Remove useless update_attributes_from_transaction_state and set_transaction_state

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

不要なupdate_attributes_from_transaction_stateメソッド及びset_transaction_stateメソッドを削除しています。


Ensure acceptance validator is not applied more than once to Person

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

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