なるようになるブログ

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

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

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

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #48669 from jhawthorn/faster_json_escape

Active Supportの修正です。

JSONのHTML entityのエスケープ処理について、エスケープ対象の文字をRegexp、及び、Hashで管理し、そのオブジェクトをそのままgsub!に指定していたのを、エスケープ処理対象のString毎に個別にgsub!するよう修正しています。後者の方が速かった為。


Merge pull request #48835 from nunosilva800/ns-rack-lint-remote-ip

actionpack/test/dispatch/request_test.rbの修正です。

ActionDispatch::RemoteIp middlewareをRack::Lintでチェックするよう修正しています。middlewareが Rack SPECを満たしているかどうかをCIでチェック出来るようにする為。


Merge pull request #48807 from shouichi/rails-test-line-range

railties/lib/rails/test_unit/runner.rbの修正です。

test runnerでテストを実行する際に、行範囲を指定してのフィルタリングを出来るよう修正しています。

$ bin/rails test test/models/user_test.rb:10-20

Merge pull request #48793 from Shopify/define-attributes-initializer

activerecord/lib/active_record/railtie.rbの修正です。

define_attribute_methodsメソッドを呼び出すinitializerで、check_schema_cache_dump_versionがtrueの場合define_attribute_methodsを実行しないよう修正しています。check_schema_cache_dump_versionがtrueの場合、schema cache load時にDBへのアクセスが発生してしまう(schema versionのチェックの処理の為)のですが、Railsアプリケーションboot時のDBアクセスは極力避けるよう対応が行われており、この処理でDBアクセスが発生するのを避ける為左記チェックが追加されています。


Add Rack::Lint to ActionDispatch::ShowExceptions tests

Action Packの修正です。

ActionDispatch::ShowExceptions middlewareをRack::Lintでチェックするよう修正しています。middlewareが Rack SPECを満たしているかどうかをCIでチェック出来るようにする為。


Merge pull request #48852 from f3ndot/issue-37779-escape-literal-colons-2

activerecord/lib/active_record/sanitization.rbの修正です。

sanitze系のメソッド(sanitize_sql_xx)で、named bind variableが使用されている場合、コロンをエスケープするよう修正しています。

sanitize_sql_array(["TO_TIMESTAMP(:date, 'YYYY/MM/DD HH12\\:MI\\:SS')", date: "foo"])
# => "TO_TIMESTAMP('foo', 'YYYY/MM/DD HH12:MI:SS')"