aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/cache_helper.rb
diff options
context:
space:
mode:
authorStan Lo <a22301613@yahoo.com.tw>2016-07-14 18:38:16 +0800
committerStan Lo <a22301613@yahoo.com.tw>2016-08-08 00:24:39 +0800
commitab2af4dfcb61b568a9753b97dc55f1b45e3a824e (patch)
tree2e94a186941b1b890492828cefcaba1144b70836 /actionview/lib/action_view/helpers/cache_helper.rb
parentc4f8c45ba57e97e8dfc99f8bf6c2fbfd39abd58b (diff)
downloadrails-ab2af4dfcb61b568a9753b97dc55f1b45e3a824e.tar.gz
rails-ab2af4dfcb61b568a9753b97dc55f1b45e3a824e.tar.bz2
rails-ab2af4dfcb61b568a9753b97dc55f1b45e3a824e.zip
Modify LogSubscriber for single partial's cache message.
Implement naive partial caching mechanism. Add test for LogSubscriber Use ActionView::Base#log_payload to store log_subscriber's payload, so we can pass cache result into it. Fixed tests Remove useless settings Check if #log_payload exists before calling it. Because other classes also includes CacheHelper but don't have is attribute Use @log_payload_for_partial_reder instead of #log_payload to carry ActionView's payload. Update test's hash syntax Add configuration to enable/disable fragment caching logging Remove unless test and add new test to ensure cache info won't effect next rendering's log Move :enable_fragment_cache_logging config from ActionView to ActionPack Apply new config to tests Update actionview's changelog Update configuration guide Improve actionview's changelog Refactor PartialRenderer#render and log tests Mute subscriber's log instead of disabling instrumentation. Fix typo, remove useless comment and use new hash syntax Improve actionpack's log_subscriber test Fix rebase mistake Apply new config to all caching intstrument actions
Diffstat (limited to 'actionview/lib/action_view/helpers/cache_helper.rb')
-rw-r--r--actionview/lib/action_view/helpers/cache_helper.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/actionview/lib/action_view/helpers/cache_helper.rb b/actionview/lib/action_view/helpers/cache_helper.rb
index 6c3092cc46..b598469d01 100644
--- a/actionview/lib/action_view/helpers/cache_helper.rb
+++ b/actionview/lib/action_view/helpers/cache_helper.rb
@@ -226,7 +226,13 @@ module ActionView
# TODO: Create an object that has caching read/write on it
def fragment_for(name = {}, options = nil, &block) #:nodoc:
- read_fragment_for(name, options) || write_fragment_for(name, options, &block)
+ if content = read_fragment_for(name, options)
+ @log_payload_for_partial_render[:cache_hit] = true if defined?(@log_payload_for_partial_render)
+ content
+ else
+ @log_payload_for_partial_render[:cache_hit] = false if defined?(@log_payload_for_partial_render)
+ write_fragment_for(name, options, &block)
+ end
end
def read_fragment_for(name, options) #:nodoc: