なるようになるブログ

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

rails commit log流し読み(2020/05/06)

2020/05/06分のコミットです。

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

activesupport/CHANGELOG.md

actionview/CHANGELOG.md


Attributes can be dup-ed

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

ActiveModel::Attributesinitialize_dupメソッドを実装して、attributeをdup出来るよう対応しています。


Demonstrate connecting Active Storage to S3-compatible APIs [ci skip]

rails guideのActive Storage Overviewの修正です。

Digital Ocean SpacesのようなS3とAPIの互換性があるクラウドでActive Storageを使用する場合の説明を追加しています。


Revert "Merge pull request #39022 from kamipo/perf_where_in"

wherevalueのArrayを指定した場合にオブジェクトの生成数を減らせるようリファクタリングした、Merge pull request #39022 from kamipo/perf_where_inをRevertしています。違う性能改善のPRと変更内容がコンフリしてしまい、そちらをMerge出来るようにする為、との事です。


Merge branch 'fix-array-builder-wheres'

Active Recordの修正です。

wherevalueのArrayを指定した場合の性能改善として、同種の値がwhereに指定された場合用のnodeを追加し、既存のnodeで行っていたがスキップ出来る処理を行わないようにして、処理を高速に行えるようにしています。


Add 3rd person aliases of Symbol#start_with? and Symbol#end_with?

Active Supportの修正です。

Symbol#starts_with? / #ends_with?メソッドを追加しています。

それぞれSymbol#start_with? / end_with?のaliasとして定義されており、Symbol#start_with? / ends_with?メソッドが定義されていない場合ようにSymbol#start_with? / ends_with?メソッドの定義も追加しています。


Ensure array passed to preloader has no duplicate records by object_id

activerecord/lib/active_record/associations/preloader/association.rbの修正です。

has_many through associationをpreloadした際に、同じレコードが複数ロードされてしまうバグがあったのを修正しています。


Merge pull request #38999 from zvkemp/action-view-instrument-layout

Action Viewの修正です。

layoutのrendering処理(TemplateRenderer#render_with_layout)対してinstrumentation hookを追加しています。hook名はrender_layout.action_view


Ensure sqlite3_mem transaction tests run in memory

activerecord/test/cases/adapters/sqlite3/transaction_test.rbの修正です。

SQLite3でパスをファイルURIとして認識させる為のフラグ(SQLite3::Constants::Open::URI)の指定が漏れてしまっている箇所があったのを修正しています。


Preserve multiple arguments in Symbol#start_with? and Symbol#end_with?

activesupport/lib/active_support/core_ext/symbol/starts_ends_with.rbの修正です。

Ruby本体と同様に、Symbol#start_with?Symbol#end_with?に引数を複数渡せるよう修正しています。


Ensure type cast is not evaluated at relation build time

Active Recordの修正です。

type cast処理をrelation build時に行わないよう修正しています。query実行時に処理が実行される事を期待しているアプリがある為、との事です。


Remove redundant squish for single line message

activemodel/lib/active_model/attribute_set/builder.rbactiverecord/lib/active_record/connection_adapters/abstract/quoting.rbの修正です。

1行メッセージを出力するのに不要なsquishが指定されていたのを削除しています。


Merge pull request #39068 from jhawthorn/dependency_tracker_interpolation

actionview/lib/action_view/dependency_tracker.rbの修正です。

ActionView::DependencyTrackerでinterpolated stringは無視するよう修正しています。

ActionView::DependencyTracker正規表現でtemplateを検索するのですが、Rubyのコードの解析はしておらず、interpolated stringを使用すると想定と異なるtemplateを取得してしまう可能性がある為。


Removes require_dependency from the AR test suite

Active Recordのテストの修正です。

テスト内でrequire_dependencyを使用していたのを、普通にrequire / loadでファイルをロードするよう修正しています。


update the documentation of require_dependency [ci skip]

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

require_dependencyメソッドのdocにzeitwerk modeの場合require_dependencyはobsoleteである(使用する必要が無い)旨説明を追加しています。


Merge pull request #39162 from kamipo/dogfooding_symbol_starts_ends_with

Symbol#start_with? / #end_with?メソッドをRailsのコード内で使用するよう修正しています。