Class: CachedSerializer::AttrSerializerCollection
- Inherits:
-
Object
- Object
- CachedSerializer::AttrSerializerCollection
show all
- Defined in:
- lib/cached_serializer/attr_serializer_collection.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of AttrSerializerCollection.
5
6
7
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 5
def initialize(collection = [])
self.collection = collection
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
32
33
34
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 32
def method_missing(method, *args, &block)
collection.send(method, *args, &block)
end
|
Instance Attribute Details
#collection ⇒ Object
Returns the value of attribute collection.
3
4
5
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 3
def collection
@collection
end
|
Instance Method Details
#<<(item) ⇒ Object
24
25
26
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 24
def <<(item)
add(item)
end
|
#add(*attr_serializers) ⇒ Object
Also known as:
push
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 9
def add(*attr_serializers)
attr_serializers.each do |attr_serializer|
existing = collection.find { |serializer| serializer.attr_name == attr_serializer.attr_name }
if existing
existing.recompute_ifs.concat(attr_serializer.recompute_ifs)
existing.recompute = attr_serializer.recompute existing.expires_in = attr_serializer.expires_in else
collection << attr_serializer
end
end
end
|
#concat(items) ⇒ Object
28
29
30
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 28
def concat(items)
add(*items)
end
|
#respond_to?(method, *args) ⇒ Boolean
36
37
38
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 36
def respond_to?(method, *args)
collection.respond_to?(method, *args)
end
|
#serialize_for(subject) ⇒ Object
40
41
42
43
44
|
# File 'lib/cached_serializer/attr_serializer_collection.rb', line 40
def serialize_for(subject)
collection.reduce({}) do |memo, attr_serializer|
memo.merge(attr_serializer.serialize_for(subject))
end
end
|