なるようになるブログ

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

rails commit log流し読み(2021/02/09)

2021/02/09分のコミットです。

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

activerecord/CHANGELOG.md


significant method is not significant anymore

activesupport/lib/active_support/number_helper/rounding_helper.rbの修正です。

一箇所でだけ使われていたオプションチェック用のメソッドを、インラインで行うよう修正しています。


Add ActiveRecord::Base.connection.with_advisory_lock

Active Recordの修正です。

session levelのadvisory lockを取得するActiveRecord::Base.connection.with_advisory_lockメソッドを追加しています。lockは指定されたblockの間のみ有効です。lockが既に取得されている場合、falseがreturnするようになっています。


Allow Adapter#select_all to be performed asynchronously from a background thread pool

Active Recordの修正です。

Active Recordでqueryの実行をthread poolを使用して非同期で実行出来るよう修正しています。このPRではAbstractAdapterへの非同期処理の導入までで、Relationへの対応等はこれから、との事です。


Merge pull request #41363 from ricardotk002/use-enumerator-all-with-classes

Enumerator#all?Enumerator#anyでiterateして特定のクラスかどうかをチェックしていたのを、引数に直接クラスを指定するよう修正しています。

if variant.all? { |v| v.is_a?(Symbol) }
if variant.all?(Symbol)

直接クラスを指定出来るケースでは、直接クラスを指定した方がはやいため。


Merge pull request #41325 from damiann/damiann/autoload_grammar_fix

rails guideのAutoloading and Reloading Constants (Zeitwerk Mode)の修正です。

$LOAD_PATHの項のグラマーの修正を行っています。


Merge pull request #40441 from olivierlacan/doc/update-has-secure-password

rails guideのSecuring Rails Applicationsの修正です。

User Managementの項にあるhas_secure_passwordについての古い説明を削除しています。


Merge pull request #41370 from kamipo/serialized_attribute_on_alias_attribute

activerecord/lib/active_record/attributes.rbactiverecord/lib/active_record/enum.rbの修正です。

alias_attributeserializeで指定したattributeを指定出来るよう修正しています。


Handle nil key for MemCacheStore#normalize_key

activesupport/lib/active_support/cache/mem_cache_store.rbの修正です。

MemCacheStore#normalize_keyで引数のkeynilの場合にエラーになってしまうバグがあったのを修正しています。


Fix the cache key to remove reference to md5

activesupport/lib/active_support/cache/mem_cache_store.rbの修正です。

先のMemCacheStore#normalize_keyの対応が一部コードが古い内容になってしまっていたのを修正しています。


Fix warning with Ruby 2.7 on Time.at with keyword arguments

activesupport/lib/active_support/core_ext/time/calculations.rbの修正です。

Time.atにキーワード引数を指定した場合に、キーワード引数に関するwarningが出てしまっていたのを修正しています。


Merge pull request #41371 from kamipo/allow_build_multiple_records

activerecord/lib/active_record/association_relation.rbactiverecord/lib/active_record/relation.rbの修正です。

association relationでない場合も、buildで複数レコードを指定出来るよう修正しています。

元々は、post.commnets.where(foo: "bar").build([obj1, obj2])が出来るが、Comment.where(foo: "bar").build([obj1, obj2])が出来ない、という状況だったのですが、それは不自然だろうという事で修正されています。


Merge pull request #41319 from kamipo/fix_scoping_to_take_only_equality

activerecord/lib/active_record/relation.rbactiverecord/lib/active_record/relation/where_clause.rbの修正です。

scope_for_createメソッドでEquality nodeのみ受け取るよう修正しています。

元々は、In nodeがEquality nodeのサブクラスのである為に、In nodeも受け取るようになってしまっており、結果、インスタンスのcreate処理で、予想外にInで指定した条件の影響を受けるようになってしまっていた為。


Remove require "active_support/core_ext/symbol/starts_ends_with"

Ruby 2.7以上のみをサポートすることで不要になったactive_support/core_ext/symbol/starts_ends_withのrequireを削除しています。