なるようになるブログ

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

rails commit log流し読み(2017/01/06)

2017/01/06分のコミットです。

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

actionmailer/CHANGELOG.md


Update cookies helper on all HTTP requests

actionpack/lib/action_controller/test_case.rbの修正です。

ActionController::TestCaseクラスを使用している場合に、get以外のhttp request用メソッドでcookiesの更新がされないバグがあったのを修正しています。


ensure #compact of HWIDA to return HWIDA

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

ActiveSupport::HashWithIndifferentAccesscompactメソッドを追加しています。

元々は親クラスであるHashcompactメソッドをそのまま使っていたのですが、

  • Ruby 2.4からRuby本体にHash#compactが追加された
  • RailsでもRuby本体にHash#compactが定義されていたらそちらを使うようにした
  • Ruby本体のHash#compactは処理をする際に、Hashインスタンスを使用する(メソッドが定義されているクラスではない)

為、HashWithIndifferentAccess#compactで期待通りの値が取得出来なくなってしまった為、HashWithIndifferentAccess自体に#transform_valuesを追加し対応しています。Hash#transform_valuesと同じパターン。


Merge pull request #27294 from eavgerinos/doc-ar-callbacks-order

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

ActiveRecord::Callbacks moduleのdocに同じcallbackを登録した場合のcallbackの実行順についての説明、及びexampleコードを追加しています。


Remove unneeded Deprecation silence

actionview/test/template/render_test.rbの修正です。

不正なtemplate handlerを指定した場合のテストから、不要なActiveSupport::Deprecation.silenceの呼び出しを削除しています。


Merge pull request #27227 from MQuy/allow-custom-content-type-in-mail-body

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

bodyとattachmentsを指定している場合に、任意のcontent typeを指定出来るよう修正しています。

attachments["free_book.pdf"] = File.read("path/to/file.pdf")
mail(to: recipient,
     subject: "New account information",
     content_type: "text/html",
     body: "<html><body>Hello there</body></html>")

htmlテンプレートに添付をしたい場合に必要なんですねえ。