# File lib/rbvmomi/basic_types.rb, line 87 def initialize props={} @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| fail "unexpected property name #{k}" unless self.class.find_prop_desc(k) end end
# File lib/rbvmomi/basic_types.rb, line 114 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
# File lib/rbvmomi/basic_types.rb, line 106 def [] sym _get_property sym end
# File lib/rbvmomi/basic_types.rb, line 102 def _get_property sym @props[sym] end
# File lib/rbvmomi/basic_types.rb, line 110 def _set_property sym, val @props[sym] = val end
# File lib/rbvmomi/basic_types.rb, line 120 def hash props.hash end
# File lib/rbvmomi/basic_types.rb, line 97 def initialize_copy(source) super @props = @props.dup end
# File lib/rbvmomi/basic_types.rb, line 124 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 |k, v| q.group do q.text k.to_s q.text ': ' q.pp v end end end q.breakable q.text ')' end