Class: RbVmomi::BasicTypes::DataObject

Inherits:
ObjectWithProperties show all
Defined in:
lib/rbvmomi/basic_types.rb

Direct Known Subclasses

LocalizedMethodFault, MethodFault

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ObjectWithProperties

find_prop_desc, full_props_desc, full_props_set, init

Methods inherited from Base

init, to_s

Constructor Details

#initialize(props = {}) ⇒ DataObject

Returns a new instance of DataObject.



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/rbvmomi/basic_types.rb', line 96

def initialize props={}
  # Deserialization fast path
  if props == nil
    @props = {}
    return
  end

  @props = Hash[props.map { |k, v| [k.to_sym, v] }]
  #self.class.full_props_desc.each do |desc|
    #fail "missing required property #{desc['name'].inspect} of #{self.class.wsdl_name}" if @props[desc['name'].to_sym].nil? and not desc['is-optional']
  #end
  @props.each do |k, v|
    raise "unexpected property name #{k}" unless self.class.find_prop_desc(k)
  end
end

Instance Attribute Details

#propsObject (readonly)

Returns the value of attribute props.



92
93
94
# File 'lib/rbvmomi/basic_types.rb', line 92

def props
  @props
end

Class Method Details

.kindObject



94
# File 'lib/rbvmomi/basic_types.rb', line 94

def self.kind; :data end

Instance Method Details

#==(o) ⇒ Object Also known as: eql?



133
134
135
136
137
# File 'lib/rbvmomi/basic_types.rb', line 133

def == o
  return false unless o.class == self.class

  hash == o.hash
end

#[](sym) ⇒ Object



121
122
123
# File 'lib/rbvmomi/basic_types.rb', line 121

def [] sym
  _get_property sym
end

#[]=(sym, val) ⇒ Object



129
130
131
# File 'lib/rbvmomi/basic_types.rb', line 129

def []= sym, val
  _set_property sym, val
end

#_get_property(sym) ⇒ Object



117
118
119
# File 'lib/rbvmomi/basic_types.rb', line 117

def _get_property sym
  @props[sym]
end

#_set_property(sym, val) ⇒ Object



125
126
127
# File 'lib/rbvmomi/basic_types.rb', line 125

def _set_property sym, val
  @props[sym] = val
end

#as_hash(val) ⇒ Object



164
165
166
167
168
169
170
171
172
# File 'lib/rbvmomi/basic_types.rb', line 164

def as_hash(val)
  if val.kind_of?(Array)
    val.map { |v| as_hash(v) }
  elsif val.respond_to?(:to_hash)
    val.to_hash
  else
    val
  end
end

#hashObject



141
142
143
# File 'lib/rbvmomi/basic_types.rb', line 141

def hash
  props.hash
end

#initialize_copy(source) ⇒ Object



112
113
114
115
# File 'lib/rbvmomi/basic_types.rb', line 112

def initialize_copy(source)
  super
  @props = @props.dup
end

#pretty_print(q) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/rbvmomi/basic_types.rb', line 145

def pretty_print q
  q.text self.class.wsdl_name
  q.group 2 do
    q.text '('
    q.breakable
    props = @props.sort_by { |k, v| k.to_s }
    q.seplist props, nil, :each do |e|
      k, v = e
      q.group do
        q.text k.to_s
        q.text ': '
        q.pp v
      end
    end
  end
  q.breakable
  q.text ')'
end

#to_hashObject



174
175
176
# File 'lib/rbvmomi/basic_types.rb', line 174

def to_hash
  props.transform_values { |v| as_hash(v) }
end

#to_json(options = nil) ⇒ Object



178
179
180
# File 'lib/rbvmomi/basic_types.rb', line 178

def to_json(options = nil)
  to_hash.merge(JSON.create_id => self.class.name).to_json
end