なるようになるブログ

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

rails commit log流し読み(2018/02/19)

2018/02/19分のコミットです。

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

activesupport/CHANGELOG.md


Add a CHANGELOG entry for #31941 [ci skip]

activerecord/CHANGELOG.mdの修正です。

Relation#pickを追加した対応(Add Relation#pick as short-hand for single-value plucks (#31941))についてCHANGELOGにエントリーを追加しています。


Merge pull request #32045 from eagletmt/skip-csp-header

actionpack/lib/action_dispatch/http/content_security_policy.rbの修正です。

cspが設定されていない場合、CSP headerも生成しないよう修正しています。


Clean up reporter replacement a bit.

railties/lib/minitest/rails_plugin.rbの修正です。

Minitest::SuppressedSummaryReporterクラスのリファクタリングとして、不要なメソッドの削除、不要なreporterのclassチェックの削除等を行っています。


Don't generate empty app/views folder when --api and --skip-action-mailer are used together

railties/lib/rails/generators/rails/app/app_generator.rbの修正です。

rails new--api及び--skip-action-mailerオプションを同時に指定した場合、app/viewsディレクトリを削除するよう修正しています。

API only applicationの場合、mailerのlayoutファイルの為だけにapp/viewsディレクトリを作成していた為、--skip-action-mailerオプションが指定された場合app/viewsディレクトリは不要な為。


Fix test method name

railties/test/generators/api_app_generator_test.rbの修正です。

先の対応で追加されたテストです、テスト名が誤っていたのを修正しています。


Add stimulus to list of supported options for --webpack

railties/lib/rails/generators/rails/app/app_generator.rbの修正です。

--webpackオプションに指定出来るオプションの一覧にstimulusを追加しています。

webpacker 3.2.2でstimulusのサポートが追加された為。

参考:webpacker/CHANGELOG.md


Use the query cache when connection is already connected

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

connectionが既に接続済みの場合に、query cacheが使用出来るよう修正しています。

元々はconfigurationsがある場合のみcacheが使用出来るようになっていたのですが、それだとRailsを使わずActive Recordだけを使用した場合に問題になる場合があった為、connectionが接続済みの場合も使用出来るようにしています。


rubocop single space after assignment

railties/test/minitest/rails_plugin_test.rbの修正です。

Rubocopの規約に違反している箇所があったのを修正しています


Return all mappings for a timezone id in country_zones

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

ActiveSupport::TimeZone.country_zonesメソッドを、指定されたtimezone identifierに紐付いている値をすべて返すよう修正しています。

# Before
ActiveSupport::TimeZone.country_zones("GB") # => ["Edinburgh"]

# After
ActiveSupport::TimeZone.country_zones("GB") # => ["Edinburgh", "London"]

元々は最初にマッチした値のみを返していたのですが、それだと期待通りの値が取得されないケースがある為、すべての値を返すようにしています。


Merge pull request #32054 from rails/fix-generation-of-empty-csp

Action Packの修正です。

Skip generating empty CSP header when no policy is configuredで、Rails.application.config.content_security_policyが定義されているがポリシーの指定が無い場合に、空のCSPヘッダーを生成しないようにしたのですが、空のCSPヘッダーを生成していたのは意図的な挙動だったらしく、先の対応をrevertしています。

Rails.application.config.content_security_policyが定義されていない場合にCSPヘッダーが生成されてしまうのは意図しない挙動だった為、Rails.application.config.content_security_policyが定義されていない場合はヘッダーを生成しないよう修正、及び、生成されるCSPヘッダーに不要なセミコロンが含まれてしまっていたのを修正しています。

因みに、CSPヘッダーが空の場合、ブラウザのデフォルトを使用するようになるとの事です。