なるようになるブログ

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

rails commit log流し読み(2015/07/08)

2015/07/08分のコミットです。

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

actionview/CHANGELOG.md


Fix regression caused by a01d164b

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

default_scopeでpreloadしていた場合に、値が正しく取得出来ないバグがあったのを対応しています。

merge_preloadsメソッドでpreload及びincludesした値のマージ処理を行っているのですが、preload!メソッドにpreload valuesを渡す際に、preload valuesはネストした配列なのにも関わらず、splat operator を指定するのが漏れていたのが原因でした。

-          relation.preload! other.preload_values unless other.preload_values.empty?
+          relation.preload!(*other.preload_values) unless other.preload_values.empty?

Revert "Merge pull request #20758 from xijo/action_mailer_message_delivery_respects_i18n_locale"

ActiveJobにi18nのlocaleを指定出来るように対応した、ActionMailer::MessageDelivery respects current I18n.locale · rails/rails@ca2387e をrevertしています。

DeliveryJob#performメソッドに引数を追加して対応していたのですが、それだと既に登録済みのqueueがエラーになってしまい、不味いだろうという事で一旦revertしたようです。

仕切りなおして、Make ActiveJob locale aware by xijo · Pull Request #20800 · rails/rails で対応行われています。ActiveJob自身にlocale設定出来るようにしているようです。


Support explicit defintion of resouce name for collection caching.

ActionViewの修正です。

テンプレートの中でキャッシュ名を明示出来るよう対応しています。キャッシュ名は、Template Collection: xxxで指定出来ます。

例。

<%# Template Collection: notification %>
<% my_helper_that_calls_cache(some_arg, notification) do %>
  <%= notification.name %>
<% end %>

上記例だと、notificationという名前で作成されます。

また、Template Collectionを使用した場合、cacheメソッドを呼びださなくても、collection cachingが行われるようになっています。

ちょっと書き方が特殊な感じがします。


Send cookies with request

ActionPackの修正です。

ActionController::TestCaseに定義されているGET request シミュレート用のメソッド(getメソッド)でcookieの情報も送信するよう修正しています。


pass cookies from the jar in the HTTP_COOKIE header

ActionPackの修正です。

ActionControllerのテスト用クラスで、cookieの情報をインスタンス変数で保持していたのを、HTTP headerから取得出来るよう修正しています。


pass variants in rather than mutating the request.

actionpack/test/controller/mime/respond_to_test.rbの修正です

variantsのテストで、@requestオブジェクトの値を操作してvariantを設定していたのを、getメソッドのパラメータに指定するよう修正しています。実際使われる場合は、当然パラメータとして送信されてくる情報なので、より実際のケースに近い形でテストした方が良いだろう、という事で修正したようです。


marking serialization class

activemodel/README.rdocの修正です。

ActiveModel::Serialization等幅フォントで囲まれるようタグを追加しています。


adding brackets to array in docs

activesupport/lib/active_support/core_ext/module/concerning.rbの修正です。

Concerningのdoc内、ancestorsメソッドの実行結果のArrayをブラケットで囲むよう修正しています。


[ci skip] Add bundle exec to Running a Single Test

rails guideのContributing to Ruby on Railsの修正です。

Contributing to the Rails Codeの項、テストの実行方法について説明している箇所で、ruby -w -Itestとなっている箇所に、bundle execを追加しています。