なるようになるブログ

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

rails commit log流し読み(2016/08/25)

2016/08/25分のコミットです。

CHANGELOGへの追加はありませんでした。


Merge pull request #26235 from samphippen/allow-early-setting-of-integration-session

actionpack/lib/action_dispatch/testing/integration.rbの修正です。

ActionDispatch::Integration::Runner#before_setupで行っていたintegration_sessionの初期化処理を、ActionDispatch::Integration::Runner#initializeで行うよう修正しています。

元々はbefore_setupnilに初期化するようになっていたのですが、それだとRSpecbefore(:all)でsessionに値を設定した場合でも、必ずnilで初期化されてしまう、という問題があった為、initializeを追加し、そちらで初期化処理を行うよう修正したとの事です。


Simplify cache hit logging

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

cache hitしたかどうかの情報を保持するのにpayload用のHashに値を保持していたのを、ActionView::Helpers::CacheHelpercache_hit変数を作成し、そちらを使用するよう修正しています。


remove useless freeze

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

既に他の箇所でfreezeを行っている為に不要なStringのfreeze処理を削除しています。


kick different instrumentation method

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

ActionView::Template#instrumentの中で特定のactionの場合のみ特別な処理があったのを、そのactionについては別途そのaction用のinstrumentメソッド(#instrument_render_template)を追加しそちらを呼ぶ出すようにし、#instrumentメソッドの中では分岐処理行わないよう修正しています。


Add load hooks to all tests classes

コンポーネントのテスト用クラス(ActionMailer::TestCaseActionController::TestCaseActionView::TestCaseActiveJob::TestCase)にそれぞれload hookを追加しています。

module ActiveJob
   class TestCase < ActiveSupport::TestCase
     include ActiveJob::TestHelper
+
+    ActiveSupport.run_load_hooks(:active_job_test_case, self)
   end
 end

当然 hook名はActionMailer::TestCaseの場合はaction_mailer_test_caseActionController::TestCaseの場合はaction_controller_test_case`のようになっています。

各テスト用クラスを拡張したい場合、今まではActionView::TestCase.include MyCustomTestHelpersのようにクラスに対して直接includeを実行する必要があったのですが、これだとActionController::Baseのload hookが実される事なくload処理が実行されてしまう(ActionView::TestCaseのload処理の延長でActionController::Baseのloadも行われる為)ので、それを避ける為に、各テスト用クラスそれぞれにload hookを追加したとの事です。


Fix typo in the hook name

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

hook名をaction_controller_test_caseとすべきところをaction_view_test_caseとタイポしていたのを修正しています。