class Deserializer::Base
Attributes
object[RW]
params[RW]
Public Class Methods
from_params( params = {} )
click to toggle source
deserializer usage functions
# File lib/deserializer/base.rb, line 13 def from_params( params = {} ) new( params ).deserialize end
new( params = {})
click to toggle source
# File lib/deserializer/base.rb, line 47 def initialize( params = {}) unless params raise DeserializerError, class: self.class, message: "params cannot be nil" end self.params = params self.object = {} end
permitted_params()
click to toggle source
# File lib/deserializer/base.rb, line 17 def permitted_params __attrs.keys end
Public Instance Methods
deserialize()
click to toggle source
# File lib/deserializer/base.rb, line 24 def deserialize object ||= {} # deserialize self.class.__attrs.each do |_, attr| object.merge!( attr.to_hash( params, self ) ) do |key, old_value, new_value| # in the case that 2 has_ones merge into the same key. Not sure i want to support this if old_value.is_a?( Hash ) && new_value.is_a?( Hash ) old_value.merge new_value else new_value end end end object end