Class: EasySerializer::Cacher::Serializer

Inherits:
Template
  • Object
show all
Defined in:
lib/easy_serializer/cacher/serializer.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



21
22
23
# File 'lib/easy_serializer/cacher/serializer.rb', line 21

def block_to_get_value
  proc { .serialize!(value, serializer) }
end

#executeObject



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

def execute
  fetch
end

#fetchObject



33
34
35
# File 'lib/easy_serializer/cacher/serializer.rb', line 33

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

#keyObject



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

def key
  if 
    [value, , nested_serializer.name]
  else
    [value, nested_serializer.name]
  end.flatten
end

#nested_serializerObject



29
30
31
# File 'lib/easy_serializer/cacher/serializer.rb', line 29

def nested_serializer
  .serializer(serializer.object, serializer)
end

#optionsObject



17
18
19
# File 'lib/easy_serializer/cacher/serializer.rb', line 17

def options
  .cache_options || {}
end

#valueObject



25
26
27
# File 'lib/easy_serializer/cacher/serializer.rb', line 25

def value
  serializer.instance_exec serializer.object, &.get_value
end