2022/12/22分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Add
ActiveRecord::Base::normalizes
to declare attribute normalizations. ActiveRecord::Relation
’s#any?
,#none?
, and#one?
methods take an optional pattern argument, more closely matching theirEnumerable
equivalents.
Add ActiveRecord::Base::normalizes
Active Recordの修正です。
attributeのnormalize処理を定義する為のActiveRecord::Base::normalizes
を追加しています。ActiveRecord::Base::normalizes
で定義されたnormalize処理はattributeのassignやupdate時に適応されるようになっています。また、このnormalize処理はfinder methodsにより検索等の際も適応されるようになっています。
class User < ActiveRecord::Base normalizes :email, with: -> email { email.strip.downcase } end user = User.create(email: " CRUISE-CONTROL@EXAMPLE.COM\n") user.email # => "cruise-control@example.com" user = User.find_by(email: "\tCRUISE-CONTROL@EXAMPLE.COM ") user.email # => "cruise-control@example.com" User.exists?(email: "\tCRUISE-CONTROL@EXAMPLE.COM ") # => true
Avoid double JSON parse for metadata-less messages
activesupport/lib/active_support/messages/metadata.rb
の修正です。
ActiveSupport::Message::Metadata#extract_metadata
でデータのdecodeを行うかどうかのチェック処理で、パース対象のデータがJSON形式かどうかだけでなく、パース対象のメタデータが含まれているかどうかをチェックするよう修正しています。
Gemfile.lock
の修正です。
libxmlを最新バージョンに更新しています。元使っていたバージョン(3.2.1)だと特定環境でインストール時にエラーになってしまう為。
ActiveRecord::Relation#none?/#any?/#one?: support pattern arg (#46728)
activerecord/lib/active_record/relation.rb
の修正です。
ActiveRecord::Relation
の#any?
、#none?
及び#one?
にpattern
引数を指定出来るよう修正しています。Enumerable
版の各メソッドの挙動を合わせる為。
Document MySQL numeric quoting behavior in ActiveRecord::Sanitization
activerecord/lib/active_record/sanitization.rb
のdocの修正です。
ActiveRecord::Sanitization
の各メソッドのdocに、MySQLでnumericのquotingがどのように行われるかについての説明を追加しています。
Merge pull request #46790 from lazaronixon/singular-association-refactor
activerecord/lib/active_record/associations/has_one_association.rb
、
activerecord/lib/active_record/associations/singular_association.rb
の修正です。
singular associationのbuild処理で不要なメソッド呼び出しを減らすようリファクタリングしています。
Splat the tag names to avoid passing double arrays
railties/lib/rails/rack/logger.rb
の修正です。
tagging処理でタグ名をsplatし二重配列を渡さないよう修正しています。
Reduce a String object allocation
actionpack/lib/action_controller/log_subscriber.rb
の修正です。
action処理完了時のログ出力処理でStringオブジェクトの生成数を減らすよう修正しています。
Avoid creating an extra Hash object when no options were given
actionpack/lib/action_controller/metal/head.rb
の修正です。
head
メソッドのoptions
が指定されていない場合に不要なHashオブジェクトの生成を行わないよう修正しています。
Support string keys for queries on deterministic attributes
activerecord/lib/active_record/encryption/extended_deterministic_queries.rb
の修正です。
deterministic attributesのquery keyにStringを指定出来るよう修正しています。