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