Simplify cache hit logging

CacheHelper is mixed in to Helpers, Helpers is mixed in to AV::Base.
This means we can count on instances of AV::Base to have the "cache hit"
method on them, and we can stop setting an ivar for cache logging and
just ask the view if it was a cache hit.
上级 ef8315ac
......@@ -211,6 +211,8 @@ def cache_fragment_name(name = {}, skip_digest: nil, virtual_path: nil)
end
end
attr_reader :cache_hit # :nodoc:
private
def fragment_name_with_digest(name, virtual_path) #:nodoc:
......@@ -224,13 +226,12 @@ def fragment_name_with_digest(name, virtual_path) #:nodoc:
end
end
# TODO: Create an object that has caching read/write on it
def fragment_for(name = {}, options = nil, &block) #:nodoc:
if content = read_fragment_for(name, options)
@log_payload_for_partial_render[:cache_hit] = true if defined?(@log_payload_for_partial_render)
@cache_hit = true
content
else
@log_payload_for_partial_render[:cache_hit] = false if defined?(@log_payload_for_partial_render)
@cache_hit = false
write_fragment_for(name, options, &block)
end
end
......
......@@ -333,8 +333,6 @@ def render_partial
view, locals, block = @view, @locals, @block
object, as = @object, @variable
view.instance_variable_set(:@log_payload_for_partial_render, payload)
if !block && (layout = @options[:layout])
layout = find_template(layout.to_s, @template_keys)
end
......@@ -347,6 +345,7 @@ def render_partial
end
content = layout.render(view, locals) { content } if layout
payload[:cache_hit] = view.cache_hit
content
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册