class WsdlMapper::Dom::Directory
Public Class Methods
new(on_nil: nil, &block)
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 8 def initialize(on_nil: nil, &block) if block @data = Hash.new do |h, k| h[k] = Hash.new do |h2, k2| h2[k2] = block[WsdlMapper::Dom::Name.get(k, k2)] end end else @data = {} end @on_nil = on_nil end
Public Instance Methods
clear()
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 21 def clear @data.clear end
each(&block)
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 51 def each(&block) enum = Enumerator.new do |y| @data.each do |ns, data| data.each do |name, value| y << [WsdlMapper::Dom::Name.get(ns, name), value] end end end block_given? ? enum.each(&block) : enum.each end
each_value(&block)
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 62 def each_value(&block) enum = Enumerator.new do |y| @data.each do |_, data| data.each do |_, value| y << value end end end block_given? ? enum.each(&block) : enum.each end
get(name)
click to toggle source
@param [WsdlMapper::Dom::Name] name @return [Object]
# File lib/wsdl_mapper/dom/directory.rb, line 27 def get(name) hsh = @data[name.ns] hsh && hsh[name.name] || on_nil(name) end
Also aliased as: []
has_key?(name)
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 38 def has_key?(name) hsh = @data[name.ns] !!(hsh && hsh[name.name]) end
on_nil(name)
click to toggle source
# File lib/wsdl_mapper/dom/directory.rb, line 34 def on_nil(name) @on_nil && raise(@on_nil.new(name)) end
set(name, value)
click to toggle source
@param [WsdlMapper::Dom::Name] name @param [Object] value
# File lib/wsdl_mapper/dom/directory.rb, line 45 def set(name, value) @data[name.ns] ||= {} @data[name.ns][name.name] = value end
Also aliased as: []=