なるようになるブログ

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

rails commit log流し読み(2023/05/02)

2023/05/02分のコミットです。

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

activesupport/CHANGELOG.md


Merge pull request #47352 from basecamp/ar-freeze-cached

Acitve Record、Active Modelの修正です。

serialize attributeにClassを指定、かつ、その値でqueryを実行した際にエラーになってしまっていたのを、queryが実行出来るよう修正しています。


Revert "Merge pull request #47352 from basecamp/ar-freeze-cached"

直前のMerge pull request #47352 from basecamp/ar-freeze-cachedをRevertしています。テストがfailしてしまった為。後ほど違う方向性で対応が行われています。


Object#deep_dup no longer duplicate named classes and modules.

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

Object#deep_dupで、named classとmoduleは複製しないよう修正しています。

Before:

hash = { class: Object, module: Kernel }
hash.deep_dup # => {:class=>#<Class:0x00000001063ffc80>, :module=>#<Module:0x00000001063ffa00>}

After:

hash = { class: Object, module: Kernel }
hash.deep_dup # => {:class=>Object, :module=>Kernel}

Classを指定したserialize attributeに対するqueryがエラーになってしまっていたのの対応。


Add a test for querying serialized attributes containing Module

activerecord/test/cases/serialized_attribute_test.rbの修正です。

serialize attributeにModuleが含まれている場合に、そのattributeに対するqueryが問題なく実行出来る事を確認するテストを追加しています。


Improve queue adapter name extraction for logs

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

同じqueue adapter nameの抽出処理を違う処理でそれぞれ実装していたのを、共通のメソッドに切り出してそちらを使用するよう修正しています。


Remove AbstractMysqlAdapterTest

Active Record: clear query cache automatically when calling #executeのrefactorにより不要になったactiverecord/test/cases/adapters/abstract_mysql_adapter_test.rbを削除しています。