Class: SimpleSerializer::Deserializer
- Inherits:
-
Object
- Object
- SimpleSerializer::Deserializer
- Defined in:
- lib/simple_serializer/deserializer.rb
Class Attribute Summary collapse
-
._attributes ⇒ Object
Returns the value of attribute _attributes.
Instance Attribute Summary collapse
-
#object ⇒ Object
Returns the value of attribute object.
Class Method Summary collapse
- .data_attributes(*attrs) ⇒ Object
- .deserialize(object, data) ⇒ Object
- .deserialize_array(objects, data) ⇒ Object
- .inherited(base) ⇒ Object
Instance Method Summary collapse
- #deserialize ⇒ Object
-
#initialize(object, data) ⇒ Deserializer
constructor
A new instance of Deserializer.
Constructor Details
#initialize(object, data) ⇒ Deserializer
Returns a new instance of Deserializer.
56 57 58 59 |
# File 'lib/simple_serializer/deserializer.rb', line 56 def initialize(object, data) @object = object @data = data end |
Class Attribute Details
._attributes ⇒ Object
Returns the value of attribute _attributes.
25 26 27 |
# File 'lib/simple_serializer/deserializer.rb', line 25 def _attributes @_attributes end |
Instance Attribute Details
#object ⇒ Object
Returns the value of attribute object.
54 55 56 |
# File 'lib/simple_serializer/deserializer.rb', line 54 def object @object end |
Class Method Details
.data_attributes(*attrs) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/simple_serializer/deserializer.rb', line 31 def data_attributes(*attrs) @_attributes.concat attrs attrs.each do |attr| define_method attr do |datum| datum end unless method_defined?(attr) define_method "set_#{attr}" do |datum| object.send("#{attr}=", send(attr, datum)) end unless method_defined?("set_#{attr}") end end |
.deserialize(object, data) ⇒ Object
49 50 51 |
# File 'lib/simple_serializer/deserializer.rb', line 49 def deserialize(object, data) self.new(object, data).deserialize end |
.deserialize_array(objects, data) ⇒ Object
45 46 47 |
# File 'lib/simple_serializer/deserializer.rb', line 45 def deserialize_array(objects, data) objects.zip(data).map { |obj, datum| deserialize(obj, datum) } end |
.inherited(base) ⇒ Object
27 28 29 |
# File 'lib/simple_serializer/deserializer.rb', line 27 def inherited(base) base._attributes = [] end |
Instance Method Details
#deserialize ⇒ Object
61 62 63 64 65 66 |
# File 'lib/simple_serializer/deserializer.rb', line 61 def deserialize self.class._attributes.dup.each do |name| send("set_#{name}", @data[name]) end object end |