class Tpaga::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/tpaga/models/base_object.rb, line 34
def _deserialize(type, value)
  case type.to_sym
  when :DateTime
    DateTime.parse(value)
  when :string
    value.to_s
  when :int
    value.to_i
  when :number
    value.to_i
  when :double
    value.to_f
  when :boolean
    if (value =~ /^(true|t|yes|y|1)$/i or value)
      true
    else
      false
    end
  else # model
    _model = Tpaga.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/tpaga/models/base_object.rb, line 76
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/tpaga/models/base_object.rb, line 15
def build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  self.class.swagger_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

return the object in the form of hash

# File lib/tpaga/models/base_object.rb, line 6
def to_body
  body = {}
  self.class.attribute_map.each_pair do |key, value|
    body[value] = self.send(key) unless self.send(key).nil?
  end
  body
end
to_hash() click to toggle source

to_body is an alias to to_body (backward compatibility)

# File lib/tpaga/models/base_object.rb, line 59
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