class SimpleSerializer::Deserializer

Attributes

_object_attributes[RW]
data[R]
object[R]

Public Class Methods

deserialize(object, data) click to toggle source
# File lib/simple_serializer/deserializer.rb, line 50
def deserialize(object, data)
  self.new(object, data).deserialize
end
deserialize_array(objects, data) click to toggle source
# File lib/simple_serializer/deserializer.rb, line 46
def deserialize_array(objects, data)
  objects.zip(data).map { |obj, datum| deserialize(obj, datum) }
end
inherited(base) click to toggle source
# File lib/simple_serializer/deserializer.rb, line 28
def inherited(base)
  base._object_attributes = []
end
new(object, data) click to toggle source
# File lib/simple_serializer/deserializer.rb, line 57
def initialize(object, data)
  @object = object
  @data = data
end
object_attributes(*attrs) click to toggle source
# File lib/simple_serializer/deserializer.rb, line 32
def object_attributes(*attrs)
  @_object_attributes.concat attrs

  attrs.each do |attr|
    define_method attr do
      @data[attr]
    end unless method_defined?(attr)

    define_method "set_#{attr}" do
      object.send("#{attr}=", send(attr)) if @data.has_key?(attr)
    end unless method_defined?("set_#{attr}")
  end
end

Public Instance Methods

deserialize() click to toggle source
# File lib/simple_serializer/deserializer.rb, line 62
def deserialize
  self.class._object_attributes.dup.each do |name|
    send("set_#{name}")
  end
  object
end