なるようになるブログ

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

rails commit log流し読み(2023/08/24)

2023/08/24分のコミットです。

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

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md

activemodel/CHANGELOG.md


Ensure response.parsed_body support for pattern matching

actionpack/lib/action_dispatch/testing/request_encoder.rbactionpack/lib/action_dispatch/testing/test_response.rbの修正です。

ActionDispatch::TestResponseのデフォルトで使用されるJSONのencoderで、encode時にJSONActiveSupport::HashWithIndifferentAccessに変換するよう修正しています。 minitestにpattern matchingのためのasserition(assert_pattern)が追加されており、response.parsed_bodyの値をそのままassert_patternに指定出来るようにする為に対応しています。なお、Nokogiriもpattern matchingをサポートしている為。HTMLに対してもpattern matchingによるチェックが出来るようになっています。

assert_pattern { response.parsed_body => [{ title: /title/i }] }

参考: Introduce `assert_pattern` for pattern matching


Remove deprecation messages from actionpack test suite

actionpack/test/abstract_unit.rbの修正です。

cache formatに関するdeprecateメッセージがテスト実行時に表示されないよう修正しています。


Merge pull request #48999 from higher-pixels/activestorage-transformjob-nomethoderror

activestorage/app/jobs/active_storage/transform_job.rbの修正です。

ActiveStorage::TransformJob#performでvariant処理のメソッド名をタイポしていたのを修正しています。


Keep VariantWithRecord API consistent with Variant

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

VariantWithRecordクラスのprocessed?processメソッドの可視性をprivateに変更しています。Variantクラスの振る舞いと合わせる為。


Document response.parsed_body in 7.1 release notes

rails guideのRuby on Rails 7.1 Release Notesの修正です。

Ensure response.parsed_body support for pattern matchingで対応された、response.parsed_bodyの挙動の変更についてのエントリーを追加しています。


Document the :ignore_date option on time_select (#49017)

actionview/lib/action_view/helpers/date_helper.rbのdocの修正です。

time_selectメソッドのdocに:ignore_dateオプションについての説明を追加しています。


Deprecate read_attribute(:id) returning the primary key

activerecord/lib/active_record/associations/collection_association.rbactiverecord/lib/active_record/attribute_methods/read.rbの修正です。

primary keyがidでない場合にも、read_attribute(:id)がprimary keyの値を返す、という振る舞いになっていたのをdeprecatedにしています。今後は単にid columnの値を返すようになっています。primary keyの値が必要な場合は、#idを使用すれば良いようになっています。


Merge pull request #49012 from skipkayhil/hm-migration-table-def-methods

activerecord/lib/active_record/migration.rbactiverecord/lib/active_record/migration/compatibility.rbの修正です。

全てのversionのmigration用のクラスで、TableDefinitionクラスの処理を実行するよう修正しています。


[Docs] Update undefine_attribute_methods docs

activemodel/lib/active_model/attribute_methods.rbのdocの修正です。

undefine_attribute_methodsメソッドのdocに、alias attribute methodも削除する旨説明を追加しています。


Merge pull request #49020 from Shopify/allow-redefining-to-param-delimiter

Active Model、Active Recordの修正です。

to_paramメソッドで使用するdelimiterが-固定だったのを、ActiveModel::Conversion.param_delimiterで変更出来るよう修正しています。 composite primary keyサポートの一環。


Add some :nodoc: to SyntaxErrorProxy and friends

Action Pack、Active Supportの修正です。

Rails内部用のクラスがAPI docに表示されないよう修正しています。


[skip ci] Moved sh to bash and added missing $

docの修正です。

シェルのexxampleのシンタックスハイライトの指定をshからbashに変更、及び、コマンドの先頭に$の指定を不足していた箇所があったのを修正しています。


Improve performance of AbstractController::Base#action_methods

actionpack/lib/abstract_controller/base.rbの修正です。

AbstractController::Base#action_methodsメソッドでmethods組み合わ時にオブジェクト生成数を減らせるようリファクタリングしています。