class SimplyRetsClient::BaseObject

base class containing fundamental method such as to_hash, build_from_hash and more

Public Instance Methods

_deserialize(type, value) click to toggle source
# File lib/simplyrets/models/base_object.rb, line 27
def _deserialize(type, value)
  case type.to_sym
  when :DateTime
    DateTime.parse(value)
  when :Date
    Date.parse(value)
  when :String
    value.to_s
  when :Integer
    value.to_i
  when :Float
    value.to_f
  when :BOOLEAN
    if value =~ /^(true|t|yes|y|1)$/i
      true
    else
      false
    end
  else # model
    _model = SimplyRetsClient.const_get(type).new
    _model.build_from_hash(value)
  end
end
_to_hash(value) click to toggle source

Method to output non-array value in the form of hash For object, use to_hash. Otherwise, just return the value

# File lib/simplyrets/models/base_object.rb, line 78
def _to_hash(value)
  if value.respond_to? :to_hash
    value.to_hash
  else
    value
  end
end
build_from_hash(attributes) click to toggle source

build the object from hash

# File lib/simplyrets/models/base_object.rb, line 8
def build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  self.class.simplyrets_types.each_pair do |key, type|
    if type =~ /^Array<(.*)>/i
      if attributes[self.class.attribute_map[key]].is_a?(Array)
        self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
      else
        #TODO show warning in debug mode
      end
    elsif !attributes[self.class.attribute_map[key]].nil?
      self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
    else
      # data not found in attributes(hash), not an issue as the data can be optional
    end
  end

  self
end
to_body() click to toggle source

to_body is an alias to to_body (backward compatibility))

# File lib/simplyrets/models/base_object.rb, line 56
def to_body
  to_hash
end
to_hash() click to toggle source

return the object in the form of hash

# File lib/simplyrets/models/base_object.rb, line 61
def to_hash
  hash = {}
  self.class.attribute_map.each_pair do |key, value|
    if self.send(key).is_a?(Array)
      next if self.send(key).empty?
      hash[value] = self.send(key).select{|v| !v.nil?}.map{ |v| _to_hash v} unless self.send(key).nil?
    else
      unless (_tmp_value = _to_hash self.send(key)).nil?
        hash[value] = _tmp_value
      end
    end
  end
  hash
end
to_s() click to toggle source
# File lib/simplyrets/models/base_object.rb, line 51
def to_s
  to_hash.to_s
end