なるようになるブログ

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

rails commit log流し読み(2019/04/22)

2019/04/22分のコミットです。

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

activestorage/CHANGELOG.md

actionpack/CHANGELOG.md


Allow ActiveStorage to generate variants of BMP images

activestorage/lib/active_storage/engine.rbの修正です。

Active StorageがデフォルトでサポートするフォーマットにBMP(image/bmp)を追加しています。


Merge pull request #36045 from yfxie/fix-normalize-the-hash-of-transformations

activestorage/app/models/active_storage/variation.rbの修正です。

Active Storageのvariant処理で処理を行う前にdeep_symbolize_keysでkeyをSymbolに変換するよう修正しています。keyにStringが指定された場合にも動作するようにする為。


Remove never used database_selector class accessor

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

使用していないdatabase_selector accessorを削除しています。


PERF: 20% faster pk attribute access

Active Recordの修正です。

primary keyにアクセスする際にメソッド(self.class.primary_key)を使用していたのを、初期化時に値を変数に格納し、そちらを参照するようにしてメソッド呼び出しを減らすよう修正しています。高速化の為。


Remove useless set_value / get_value helper methods

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

relationで値を設定 / 取得する際にメソッド(set_valueget_value)を使用していたのを、メソッドを経由せず直接インスタンス変数を参照するよう修正しています。高速化の為。


Merge pull request #36047 from rmacklin/take-screenshot-sooner

actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rbの修正です。

system testで、テスト失敗時のスクリーンショットの取得処理をafter_teardownで行っていたのを、before_teardownで行うよう修正しています。テスト失敗からスクリーンショット取得までの時間を最小にする為(テスト失敗からスクリーンショット取得までにページが動的に変更される可能性を減らす為)。


Merge pull request #36040 from st0012/update-changelog-for-35145

actionview/CHANGELOG.mdの修正です。

collectionをpartial + cacheで繰り返しrenderした際にcollectionが正しくrenderされないバグがあったのを修正した、Fix partial caching ignore repeated items issueの対応についてCHANGELOGにエントリーを追加しています。


Don't table name qualify aggrigate column for virtual attribute

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

virtual attributeの為のaggrigate columnをテーブル名で修飾しないよう修正しています。


ActionCable: don't allowlist keys passed to the Redis initializer

actioncable/lib/action_cable/subscription_adapter/redis.rbn修正です。

Redis.newに指定するconfigの値について、明示的にkeyを指定して渡していたのを、Action Cableで使用するconfig(adapterchannel_prefix)をそのまま渡すよう修正しています。

redis-gem側の変更を意識しないで済むようにする為と、Redis Sentinelを使用出来るようにする為、との事です。


Avoid new string instance creation in InsertAll#execute

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

InsertAll#executeメソッドでString#+@を使用して不要なStringのインスタンスが生成されないよう修正しています。


Make Action Text's rendering helpers more configurable

actiontext/app/helpers/action_text/content_helper.rbの修正です。

ActionText::ContentHelper moduleでsanitizerや許可するtagを定数で管理していたのを、attributeに変更、及び、contentのsanitize処理をメソッドに切り出しています。アプリ側で設定を変更出来るようにする為。