Class: Tpaga::BaseObject

Inherits:
Object show all
Defined in:
lib/tpaga/models/base_object.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#_deserialize(type, value) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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) ⇒ Object

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



76
77
78
79
80
81
82
# 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) ⇒ Object

build the object from hash



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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_bodyObject

return the object in the form of hash



6
7
8
9
10
11
12
# 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_hashObject

to_body is an alias to to_body (backward compatibility)



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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