なるようになるブログ

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

rails commit log流し読み(2018/09/12)

2018/09/12分のコミットです。

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

activerecord/CHANGELOG.md

actionmailer/CHANGELOG.md


Use utf8mb4 character set by default for MySQL database (#33608)

Active Recordの修正です。

MySQL databaseのdefaultのcharsetがutf8からutf8mb4に変更になりました。

utf8 だと3-Byteなので、4-Byteの値(絵文字等)が扱えない為。なお、collationについては明示的には指定しないようになっています。


Merge pull request #33824 from yskkin/suppress_logging

actionmailer/lib/action_mailer/base.rbactionmailer/lib/action_mailer/log_subscriber.rbの修正です。

perform_deliveriesにfalseが指定されている場合に、mail deliver時のメッセージを変更(perform_deliveriesがfalseの場合、実際のメールの送信処理は行われないので、それがわかるメッセージに変更)、及び、deliver.action_mailer hookのpayloadにperform_deliveriesの値を追加しています。


Merge pull request #33785 from bogdanvlviv/follow-up-33773-33779

railties/CHANGELOG.mdの修正です。

test environmentのdefault cache storeを変更した対応のエントリーのフォーマット等の修正を行っています。


refacto: config_for with ActiveSupport::InheritableOptions and symbolized keys

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

config_forメソッドで、読み込んだファイルの値を、deep_symbolize_keysメソッドでkeyを全てSymbolに変換、及び、InheritableOptionsのオブジェクトに変換して、値をkey名のメソッドで取得出来るよう修正しています。


Move digest path calculation out of loop

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

collection cacheの生成処理で、ループの中で同じdigest pathを毎回生成していたのを、先にdigest pathを生成し、それを使い回すよう修正しています。


Merge pull request #33795 from marceloperini/marceloperini/33450-active-storage

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

Active StorageでserviceにS3を使用している、かつ、0バイトのファイルがアップロードした場合に、Aws::S3::Errors::InvalidRangeのエラーが発生してしまうバグがあったのを修正しています。


use "minitest" consistently

各doc、コード内のMinitestminitestに修正しています。小文字の"minitest"が正式名称な為。


Merge pull request #27792 from tjoyal/sandbox-tagged-logging

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

ActiveSupport::TaggedLogging.newが、引数に指定されたlogger objectの値を返していた(引数のlogger objectの値を直接変更していた)のを、新しいlogger instanceを生成して、そちらを返すよう修正しています。

newメソッドが引数のobjectの状態を変更して返す、newメソッドに期待する挙動と異なるだろう、ということで新しいinstanceを生成するようになりました。


Merge pull request #33483 from DylanReile/master

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

rails 内部のmail preview用controllerで、Content Security Policyを強制的に無効化するよう修正しています。

mailer previewで使用するJSが動作するようにする為。以前似たような対応行った筈だったのですが、対応足りて無かったか。


Merge pull request #33819 from kevindew/yarn-path

railties/lib/rails/tasks/yarn.rakeの修正です。

yarn::install taskで、yarnコマンドを実行する際に、カレントからの相対パスでコマンドを指定したいのを、Rails.rootからのパスを指定するよう修正しています。

rails engineでyarn::install taskが動作するようにする為。


Update action_mailer_basics.md [ci skip]

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

Action Mailer Configurationの項のフォーマットの修正を行っています。


Update test_helper_test.rb

activejob/test/cases/test_helper_test.rbの修正です。

withwihtにタイポしている箇所があったのを修正しています。


Fix query cache to load before first request

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

最初のrequestの実行前にquery cacheがloadされるよう修正しています。

元々はActive Recordがloadされた際にquery cacheのloadを行うhookを実行するようになっていたのですが、それだと最初のrequestの際にquery cacheがloadされない状態になっていました(Acitve Recordのloadが最初のrequestの途中で行われる為)。

そのため、query cacheのloadをActive Recordがloadされた際にではなく、initializerで直接実行するようにして対応しています。