Class: WsdlMapper::Dom::Directory
- Inherits:
-
Object
- Object
- WsdlMapper::Dom::Directory
- Includes:
- Enumerable
- Defined in:
- lib/wsdl_mapper/dom/directory.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #each(&block) ⇒ Object
- #each_value(&block) ⇒ Object
- #get(name) ⇒ Object (also: #[])
- #has_key?(name) ⇒ Boolean
-
#initialize(on_nil: nil, &block) ⇒ Directory
constructor
A new instance of Directory.
- #on_nil(name) ⇒ Object
- #set(name, value) ⇒ Object (also: #[]=)
Constructor Details
#initialize(on_nil: nil, &block) ⇒ Directory
Returns a new instance of Directory.
8 9 10 11 12 13 14 15 16 17 18 19 |
# 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 |
Instance Method Details
#clear ⇒ Object
21 22 23 |
# File 'lib/wsdl_mapper/dom/directory.rb', line 21 def clear @data.clear end |
#each(&block) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# 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) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# 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) ⇒ Object Also known as: []
27 28 29 30 31 |
# File 'lib/wsdl_mapper/dom/directory.rb', line 27 def get(name) hsh = @data[name.ns] hsh && hsh[name.name] || on_nil(name) end |
#has_key?(name) ⇒ Boolean
38 39 40 41 |
# 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) ⇒ Object
34 35 36 |
# File 'lib/wsdl_mapper/dom/directory.rb', line 34 def on_nil(name) @on_nil && raise(@on_nil.new(name)) end |
#set(name, value) ⇒ Object Also known as: []=
45 46 47 48 |
# File 'lib/wsdl_mapper/dom/directory.rb', line 45 def set(name, value) @data[name.ns] ||= {} @data[name.ns][name.name] = value end |