なるようになるブログ

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

rails commit log流し読み(2020/09/25)

2020/09/25分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #40280 from rails/no-rg-dep

activesupport/lib/active_support/notifications/instrumenter.rbの修正です。

Process::CLOCK_THREAD_CPUTIME_IDを使えるかどうかをチェックするのにplatformの値をチェックしていたのを、Process.clock_gettime(Process::CLOCK_THREAD_CPUTIME_ID)を呼び出してチェックするよう修正しています。

現在CLOCK_THREAD_CPUTIME_IDをサポートしていないplatformでも、今後使用出来る可能性がある為。


Merge pull request #39661 from hahmed/railties/faster-app-generator-test-for-load-defaults

railties/test/application/configuration_test.rbrailties/test/generators/app_generator_test.rbの修正です。

load_defaultのテストをするのにrailsのコマンドを実行してチェックしていたのを、単純にconfigの値を見るよう修正しています。


Destroy associations in a background job.

Active Recordの修正です。

associationの削除をbackground job(Active Jobを使用)で行えるよう対応しています。background jobでassociationを削除したい場合、dependentオプションにdestroy_asyncを指定すればOKです。

class Account < ActiveRecord::Base
  belongs_to :supplier, dependent: :destroy_async
end

削除用のjobはActiveRecord::DestroyAssociationAsyncJobというこの処理用に作成された新規のjob classが使われてるようになっています。また、queueはデフォルトで:active_record_destroyになっています。これらの値は、それぞれ、config.active_record.destroy_association_async_jobconfig.active_record.queues.destroy で変更可能になっています。


Merge pull request #39254 from gmcgibbon/through_cast_check_attribute_override

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

primary keyにcustom typeを使用している場合に、has_many through associationでのassociationの参照が正しく行えないバグがあったのを修正しています。


Don't make rexml an dependency of activesupport

Active Supportの修正です。

Active Supportのdependencyrexmlを追加するのをやめて、rexmlロード時にロード出来なかったらアプリケーションのGemfieにrexmlを追加する旨メッセージを表示するよう修正しています。rexmlはActive Supportの一部機能でしか使われていない為、ユーザがrexmlを使用するかどうかを選択出来るようにする為。


Improve error when EncryptedFile key length wrong activesupport/lib/active_support/encrypted_file.rbの修正です。

ActiveSupport::EncryptedFileでkeyの長さが誤っていた場合に、それがわかるエラーメッセージを表示するよう修正しています。


Satisfy Rubocop

activesupport/lib/active_support/xml_mini/rexml.rbの修正です。

rubocopの設定に違反している箇所があったのを修正しています