Class: EasySerializer::Cacher::Serializer
- Inherits:
-
Template
- Object
- Template
- EasySerializer::Cacher::Serializer
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
Instance Method Details
#block_to_get_value ⇒ Object
21
22
23
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 21
def block_to_get_value
proc { metadata.serialize!(value, serializer) }
end
|
#execute ⇒ Object
5
6
7
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 5
def execute
fetch
end
|
#fetch ⇒ Object
33
34
35
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 33
def fetch
EasySerializer.cache.fetch(key, options, &block_to_get_value)
end
|
#key ⇒ Object
9
10
11
12
13
14
15
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 9
def key
if metadata_key
[value, metadata_key, nested_serializer.name]
else
[value, nested_serializer.name]
end.flatten
end
|
#nested_serializer ⇒ Object
29
30
31
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 29
def nested_serializer
metadata.serializer(serializer.object, serializer)
end
|
#options ⇒ Object
17
18
19
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 17
def options
metadata.cache_options || {}
end
|
#value ⇒ Object
25
26
27
|
# File 'lib/easy_serializer/cacher/serializer.rb', line 25
def value
serializer.instance_exec serializer.object, &metadata.get_value
end
|