なるようになるブログ

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

rails commit log流し読み(2024/08/27)

2024/08/27分のコミットです。

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

activerecord/CHANGELOG.md

actiontext/CHANGELOG.md


Merge pull request #52706 from p8/railties/stats-register_directory

railtiesの修正です。

Rails::CodeStatistics.add_directoryRails::CodeStatistics.register_directoryにリネームしています。既存のAPIRails::SourceAnnotationExtractor::Annotation.register_directoriesのように、register_xxを使用していることが多く、命名規約を合わせるため。


Merge pull request #52703 from jonathanhefner/fix-52607

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

eager_loadがtrueの場合にDBに存在するcolumnに対するenumの存在チェックが正しく行われるよう対応し、Support non-column-backed attributes for enumの対応を再度コミットしています。


Merge pull request #52700 from ngan/fix-db-prepare-schema-dump

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

db:prepare実行時に、pending migrationを実行する度にschemaのdump処理が行われていたのを、最後に一回だけdump処理を行うよう修正しています。dumpは割と重い処理であり、pending migrationが複数ある場合全体の実行が大変遅くなる可能性があるため。


Merge pull request #52354 from zachasme/sqlite-virtual-tables

Active Recordの修正です。

SQLite3 のfull-text-searchのサポート及びvirtual tablesのschemaファイルへのサポートを追加しています。SQLiteでは、デフォルトでFTS5というモジュールを使用してのfull-text-searchがサポートされているのですが、これはvirtual tablesでしか使えないモジュールになっているため、full-text-searchとvirtual tablesの対応が合わせて行われています。

class CreateSearchablesTable < ActiveRecord::Migration[8.0]
  def up
    execute 'CREATE VIRTUAL TABLE searchables USING fts5(content)'
  end
end

Merge pull request #52713 from bopm/patch-1

railties/lib/rails/generators/rails/app/templates/docker-entrypoint.ttの修正です。

jemallocを有効化する処理で、libjemalloc.so.2が何らかの理由で異なるパスに複数存在した場合にも有効化が行われるよう修正しています。


Dispatch direct-upload events on attachment uploads

Action Textの修正です。

Action Textの rich textareaにファイルをアップロードした際に、Active Storageと同様にdirect-upload:startdirect-upload:progressdirect-upload:error、及び、direct-upload:end eventを実行するよう修正しています。ファイルのアップロードに失敗したような場合に任意の処理を実行出来るようにするため。


Merge pull request #52709 from ghiculescu/at-store-if-blank-validation

actiontext/lib/action_text/attribute.rbの修正です。

Add store_if_blank option to has_rich_textで追加されたstore_if_blankオプションが指定されている場合に、対象のattributeがpresence validationでチェック出来るよう修正しています。


[#52698] Add TimeZoneConverter#== method, so objects will be properly...

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

ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter#==メソッドを追加し、同一のオブジェクトかどうかを正しくチェック出来るよう修正しています。duplicateした値との比較が正しく行えるようにする為。


Merge pull request #52717 from Shopify/class-attribute-redefine-once

Active Supportの修正です。

class_attributeメソッドでassignmentの度にメソッドを再定義していたのを、既に再定義済みの場合はlocal variableの更新だけを行うよう修正しています。メソッドの再定義がmethod_addedの実行などにより遅くなってしまうことがあるため、との事です。

が、既存のgemの挙動に影響が出てしまったらしく、後ほどRevertされています。


Fix: #52708 Removed credentials from action mailer config documentation.

rails guideのAction Mailer Basicsの修正です。

Action Mailer Configuration for Gmailセクションにあるconfigの設定例で、user_name / passwordについて直接設定ファイルに値を記載するようになっていたのを、Rails.application.credentialsを使用するよう修正しています。


Add devcontainer to hidden_namespaces

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

devcontainerをhidden_namespacesに追加し、generatorの一覧に表示されないよう修正しています。devcontainerのgeneratorはdevcontainer command経由で実行される事を想定しており、直接generatorを実行する事は無い為。


Revert "class_attribute: reduce reliance on define_method"

class_attributeの改善を行った、class_attribute: reduce reliance on define_methodをRevertしています。、既存のgemの挙動に影響が出てしまったためとの事です。