class XSD::NamedElements
Constants
- Empty
Public Class Methods
new()
click to toggle source
# File lib/xsd/namedelements.rb, line 15 def initialize @elements = [] @cache = {} end
Public Instance Methods
+(rhs)
click to toggle source
# File lib/xsd/namedelements.rb, line 73 def +(rhs) o = NamedElements.new o.elements = @elements + rhs.elements @cache.clear o end
<<(rhs)
click to toggle source
# File lib/xsd/namedelements.rb, line 62 def <<(rhs) @elements << rhs self end
[](idx)
click to toggle source
# File lib/xsd/namedelements.rb, line 40 def [](idx) if idx.is_a?(Numeric) @elements[idx] else @cache[idx] ||= @elements.find { |item| item.name == idx } end end
concat(rhs)
click to toggle source
# File lib/xsd/namedelements.rb, line 80 def concat(rhs) @elements.concat(rhs.elements) @cache.clear self end
delete(rhs)
click to toggle source
# File lib/xsd/namedelements.rb, line 67 def delete(rhs) rv = @elements.delete(rhs) @cache.clear rv end
dup()
click to toggle source
# File lib/xsd/namedelements.rb, line 20 def dup o = NamedElements.new o.elements = @elements.dup o end
each() { |element| ... }
click to toggle source
# File lib/xsd/namedelements.rb, line 56 def each @elements.each do |element| yield(element) end end
empty?()
click to toggle source
# File lib/xsd/namedelements.rb, line 32 def empty? size == 0 end
find_all() { |ele| ... }
click to toggle source
# File lib/xsd/namedelements.rb, line 97 def find_all o = NamedElements.new each do |ele| o << ele if yield(ele) end o end
find_name(name)
click to toggle source
# File lib/xsd/namedelements.rb, line 48 def find_name(name) @elements.find { |item| item.name.name == name } end
freeze()
click to toggle source
Calls superclass method
# File lib/xsd/namedelements.rb, line 26 def freeze super @elements.freeze self end
keys()
click to toggle source
# File lib/xsd/namedelements.rb, line 52 def keys collect { |element| element.name } end
size()
click to toggle source
# File lib/xsd/namedelements.rb, line 36 def size @elements.size end
uniq()
click to toggle source
# File lib/xsd/namedelements.rb, line 86 def uniq o = NamedElements.new o.elements = uniq_elements o end
uniq!()
click to toggle source
# File lib/xsd/namedelements.rb, line 92 def uniq! @elements.replace(uniq_elements) @cache.clear end
Protected Instance Methods
elements()
click to toggle source
# File lib/xsd/namedelements.rb, line 113 def elements @elements end
elements=(rhs)
click to toggle source
# File lib/xsd/namedelements.rb, line 109 def elements=(rhs) @elements = rhs end
Private Instance Methods
uniq_elements()
click to toggle source
# File lib/xsd/namedelements.rb, line 119 def uniq_elements dict = {} elements = [] @elements.each do |ele| unless dict.key?(ele.name) dict[ele.name] = ele elements << ele end end elements end