Module: Hari::Entity::Serialization
- Extended by:
- ActiveSupport::Concern
- Included in:
- Hari::Entity
- Defined in:
- lib/hari/entity/serialization.rb,
lib/hari/entity/serialization/date.rb,
lib/hari/entity/serialization/hash.rb,
lib/hari/entity/serialization/time.rb,
lib/hari/entity/serialization/array.rb,
lib/hari/entity/serialization/float.rb,
lib/hari/entity/serialization/string.rb,
lib/hari/entity/serialization/boolean.rb,
lib/hari/entity/serialization/integer.rb,
lib/hari/entity/serialization/datetime.rb
Defined Under Namespace
Modules: Array, Boolean, ClassMethods, Date, DateTime, Float, Hash, Integer, String, Time
Instance Method Summary
collapse
Instance Method Details
#attributes ⇒ Object
32
33
34
35
36
|
# File 'lib/hari/entity/serialization.rb', line 32
def attributes
self.class.properties.inject({}) do |buffer, prop|
buffer.merge prop.name => send(prop.name)
end
end
|
#initialize(attrs = {}) ⇒ Object
22
23
24
25
26
27
28
29
30
|
# File 'lib/hari/entity/serialization.rb', line 22
def initialize(attrs = {})
return if attrs.blank?
attrs = attrs.with_indifferent_access
self.class.properties.each do |prop|
write_attribute(prop.name, attrs[prop.name]) if attrs.key?(prop.name)
end
end
|
47
48
49
50
51
|
# File 'lib/hari/entity/serialization.rb', line 47
def to_hash
self.class.properties.inject({}) do |buffer, prop|
buffer.merge prop.name => prop.serialize(self)
end
end
|
53
54
55
|
# File 'lib/hari/entity/serialization.rb', line 53
def to_json
Yajl::Encoder.encode to_hash
end
|
#write_attribute(name, value) ⇒ Object
43
44
45
|
# File 'lib/hari/entity/serialization.rb', line 43
def write_attribute(name, value)
send "#{name}=", value
end
|