class RbVmomi::BasicTypes::DataObject

Attributes

props[R]

Public Class Methods

kind() click to toggle source
# File lib/rbvmomi/basic_types.rb, line 94
def self.kind; :data end
new(props={}) click to toggle source
# 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

Public Instance Methods

==(o) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 133
def == o
  return false unless o.class == self.class

  keys = (props.keys + o.props.keys).uniq
  keys.all? { |k| props[k] == o.props[k] }
end
Also aliased as: eql?
[](sym) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 121
def [] sym
  _get_property sym
end
[]=(sym, val) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 129
def []= sym, val
  _set_property sym, val
end
_get_property(sym) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 117
def _get_property sym
  @props[sym]
end
_set_property(sym, val) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 125
def _set_property sym, val
  @props[sym] = val
end
as_hash(val) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 165
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
eql?(o)
Alias for: ==
hash() click to toggle source
# File lib/rbvmomi/basic_types.rb, line 142
def hash
  props.hash
end
initialize_copy(source) click to toggle source
Calls superclass method
# File lib/rbvmomi/basic_types.rb, line 112
def initialize_copy(source)
  super
  @props = @props.dup
end
pretty_print(q) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 146
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_hash() click to toggle source
# File lib/rbvmomi/basic_types.rb, line 175
def to_hash
  props.transform_values { |v| as_hash(v) }
end
to_json(options = nil) click to toggle source
# File lib/rbvmomi/basic_types.rb, line 179
def to_json(options = nil)
  to_hash.merge(JSON.create_id => self.class.name).to_json
end