Class: CachedSerializer::AttrSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/cached_serializer/attr_serializer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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_nameObject

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_inObject

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

#recomputeObject

Returns the value of attribute recompute.



3
4
5
# File 'lib/cached_serializer/attr_serializer.rb', line 3

def recompute
  @recompute
end

#recompute_ifsObject

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