class EasySerializer::RootCacher

Attributes

block[R]
serializer[R]

Public Class Methods

call(serializer, &block) click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 5
def self.call(serializer, &block)
  new(serializer, &block).execute
end
new(serializer, &block) click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 10
def initialize(serializer, &block)
  @serializer = serializer
  @block = block
end

Public Instance Methods

cache_key() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 24
def cache_key
  return object.cache_key if object.respond_to?(:cache_key)
  object
end
execute() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 15
def execute
  fetch
end
fetch() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 47
def fetch
  EasySerializer.cache.fetch(key, options, &block)
end
key() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 37
def key
  custom_key = serializer.__cache[:key]
  if custom_key
    k = option_to_value(custom_key, object, serializer)
    [cache_key, k, serializer.class.name]
  else
    [cache_key, serializer.class.name]
  end.flatten
end
object() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 19
def object
  serializer.object
end
Also aliased as: subject
options() click to toggle source
# File lib/easy_serializer/root_cacher.rb, line 29
def options
  h = serializer.__cache.dup
  [:block, :cache_key, :root_call, :serializer, :key].each do |k|
    h.delete(k)
  end
  h
end
subject()
Alias for: object