Class: Rackson::ObjectMapper
- Inherits:
-
Object
- Object
- Rackson::ObjectMapper
- Defined in:
- lib/rackson/object_mapper.rb
Instance Method Summary collapse
- #deserialize(input, klass) ⇒ Object
- #deserialize_from_hash(hash, klass) ⇒ Object
- #deserialize_into_array(array, klass) ⇒ Object
- #serialize(input) ⇒ Object
Instance Method Details
#deserialize(input, klass) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/rackson/object_mapper.rb', line 5 def deserialize(input, klass) case input when String deserialize(JSON.parse(input), klass) when Hash deserialize_from_hash(input, klass) when Array deserialize_into_array(input, klass) end end |
#deserialize_from_hash(hash, klass) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/rackson/object_mapper.rb', line 20 def deserialize_from_hash(hash, klass) klass.new.tap do |instance| klass.instance_variable_get(:@json_properties).each do |property| value = generate_value property, hash instance.instance_variable_set("@#{property.name}", value) end end end |
#deserialize_into_array(array, klass) ⇒ Object
29 30 31 32 33 |
# File 'lib/rackson/object_mapper.rb', line 29 def deserialize_into_array(array, klass) array.map do |value| deserialize(value, klass) end end |
#serialize(input) ⇒ Object
16 17 18 |
# File 'lib/rackson/object_mapper.rb', line 16 def serialize(input) JSON.dump(input.serializable_hash) end |