Class: EasySerializer::Cacher::Method

Inherits:
Template
  • Object
show all
Defined in:
lib/easy_serializer/cacher/method.rb

Instance Attribute Summary

Attributes inherited from Template

#metadata, #serializer

Instance Method Summary collapse

Methods inherited from Template

call, #initialize

Methods included from Helpers

#option_to_value

Constructor Details

This class inherits a constructor from EasySerializer::Cacher::Template

Instance Method Details

#block_to_get_valueObject



22
23
24
# File 'lib/easy_serializer/cacher/method.rb', line 22

def block_to_get_value
  proc { serializer.instance_exec serializer.object, &.get_value }
end

#executeObject



5
6
7
# File 'lib/easy_serializer/cacher/method.rb', line 5

def execute
  fetch
end

#fetchObject



26
27
28
# File 'lib/easy_serializer/cacher/method.rb', line 26

def fetch
  EasySerializer.cache.fetch(key, options, &block_to_get_value)
end

#keyObject



9
10
11
12
13
14
15
16
# File 'lib/easy_serializer/cacher/method.rb', line 9

def key
  cache_key = if .cache_key
                option_to_value(.cache_key, serializer.object, serializer)
              else
                .name
              end
  [serializer.object, cache_key, serializer.class.name].flatten
end

#optionsObject



18
19
20
# File 'lib/easy_serializer/cacher/method.rb', line 18

def options
  .cache_options || {}
end