Module: LaserLemon::CacheFlow::InstanceMethods

Defined in:
lib/cache_flow.rb

Instance Method Summary collapse

Instance Method Details

#to_json_with_cache_flow(options = {}, &block) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/cache_flow.rb', line 43

def to_json_with_cache_flow(options = {}, &block)
  if cache_json?(options)
    key = json_cache_key(options.merge!(:cache => false))
    value = to_json_without_cache_flow(options, &block)
    Rails.cache.fetch(key){ value.respond_to?(:dup) ? value.dup : value }
  else
    to_json_without_cache_flow(options, &block)
  end
end

#to_xml_with_cache_flow(options = {}, &block) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/cache_flow.rb', line 33

def to_xml_with_cache_flow(options = {}, &block)
  if cache_xml?(options, &block)
    key = xml_cache_key(options.merge!(:cache => false))
    value = to_xml_without_cache_flow(options, &block)
    Rails.cache.fetch(key){ value.respond_to?(:dup) ? value.dup : value }
  else
    to_xml_without_cache_flow(options, &block)
  end
end