Class: CachedSerializer::AttrSerializer
- Inherits:
-
Object
- Object
- CachedSerializer::AttrSerializer
- Defined in:
- lib/cached_serializer/attr_serializer.rb
Instance Attribute Summary collapse
-
#attr_name ⇒ Object
Returns the value of attribute attr_name.
-
#expires_in ⇒ Object
Returns the value of attribute expires_in.
-
#recompute ⇒ Object
Returns the value of attribute recompute.
-
#recompute_ifs ⇒ Object
Returns the value of attribute recompute_ifs.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(attr_name, recompute_ifs = nil, expires_in = nil, &recompute) ⇒ AttrSerializer
constructor
A new instance of AttrSerializer.
- #serialize_for(subject) ⇒ Object
Constructor Details
#initialize(attr_name, recompute_ifs = nil, expires_in = nil, &recompute) ⇒ AttrSerializer
Returns a new instance of AttrSerializer.
11 12 13 14 15 16 |
# File 'lib/cached_serializer/attr_serializer.rb', line 11 def initialize(attr_name, recompute_ifs = nil, expires_in = nil, &recompute) self.attr_name = attr_name self.recompute_ifs = [recompute_ifs].flatten.compact self.expires_in = expires_in self.recompute = recompute || proc { |subj| subj.send(attr_name.to_sym) } end |
Instance Attribute Details
#attr_name ⇒ Object
Returns the value of attribute attr_name.
3 4 5 |
# File 'lib/cached_serializer/attr_serializer.rb', line 3 def attr_name @attr_name end |
#expires_in ⇒ Object
Returns the value of attribute expires_in.
3 4 5 |
# File 'lib/cached_serializer/attr_serializer.rb', line 3 def expires_in @expires_in end |
#recompute ⇒ Object
Returns the value of attribute recompute.
3 4 5 |
# File 'lib/cached_serializer/attr_serializer.rb', line 3 def recompute @recompute end |
#recompute_ifs ⇒ Object
Returns the value of attribute recompute_ifs.
3 4 5 |
# File 'lib/cached_serializer/attr_serializer.rb', line 3 def recompute_ifs @recompute_ifs end |
Class Method Details
.cache_key(subject, attr_name) ⇒ Object
6 7 8 |
# File 'lib/cached_serializer/attr_serializer.rb', line 6 def cache_key(subject, attr_name) "cached_serializer:#{subject.class.model_name.name.underscore}:#{subject.id}:#{attr_name}" end |
Instance Method Details
#serialize_for(subject) ⇒ Object
18 19 20 |
# File 'lib/cached_serializer/attr_serializer.rb', line 18 def serialize_for(subject) { attr_name.to_sym => serialized_value_for(subject) } end |