Class: FastSerializer::ArraySerializer
- Inherits:
-
Object
- Object
- FastSerializer::ArraySerializer
show all
- Includes:
- Serializer
- Defined in:
- lib/fast_serializer/array_serializer.rb
Overview
Serializer implementation for serializing an array of objects. This class allows taking advantage of a single SerializationContext for caching duplicate serializers.
Instance Attribute Summary
Attributes included from Serializer
#object, #options
Instance Method Summary
collapse
Methods included from Serializer
#==, included, #option, #scope, #to_json
Constructor Details
#initialize(object, options = nil) ⇒ ArraySerializer
Returns a new instance of ArraySerializer.
12
13
14
15
|
# File 'lib/fast_serializer/array_serializer.rb', line 12
def initialize(object, options = nil)
@_array = nil
super(Array(object), options)
end
|
Instance Method Details
#as_json(*args) ⇒ Hash
Also known as:
to_a
60
61
62
63
64
65
66
67
68
|
# File 'lib/fast_serializer/array_serializer.rb', line 60
def as_json(*args)
if array.nil?
nil
elsif array.empty?
[]
else
super[:array]
end
end
|
49
50
51
52
53
54
55
56
57
|
# File 'lib/fast_serializer/array_serializer.rb', line 49
def cache
if option(:cache)
true
elsif option(:serializer)
option(:serializer).cache
else
super
end
end
|
#cache_key ⇒ String
18
19
20
21
22
23
24
|
# File 'lib/fast_serializer/array_serializer.rb', line 18
def cache_key
if option(:serializer)
array.collect(&:cache_key)
else
super
end
end
|
#cache_ttl ⇒ Numeric, Boolean
38
39
40
41
42
43
44
45
46
|
# File 'lib/fast_serializer/array_serializer.rb', line 38
def cache_ttl
if option(:cache_ttl)
true
elsif option(:serializer)
option(:serializer).cache_ttl
else
super
end
end
|
#cacheable? ⇒ Boolean
27
28
29
30
31
32
33
34
35
|
# File 'lib/fast_serializer/array_serializer.rb', line 27
def cacheable?
if option(:cacheable) || self.class.cacheable?
true
elsif option(:serializer)
option(:serializer).cacheable?
else
super
end
end
|