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

[](name)
Alias for: get
[]=(name, value)
Alias for: set
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: []=