Class: XSD::NamedElements
- Inherits:
-
Object
- Object
- XSD::NamedElements
- Includes:
- Enumerable
- Defined in:
- lib/xsd/namedelements.rb
Constant Summary collapse
Instance Method Summary collapse
- #+(rhs) ⇒ Object
- #<<(rhs) ⇒ Object
- #[](idx) ⇒ Object
- #concat(rhs) ⇒ Object
- #delete(rhs) ⇒ Object
- #dup ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
- #find_name(name) ⇒ Object
- #freeze ⇒ Object
-
#initialize ⇒ NamedElements
constructor
A new instance of NamedElements.
- #keys ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize ⇒ NamedElements
Returns a new instance of NamedElements.
15 16 17 18 |
# File 'lib/xsd/namedelements.rb', line 15 def initialize @elements = [] @cache = {} end |
Instance Method Details
#+(rhs) ⇒ Object
71 72 73 74 75 |
# File 'lib/xsd/namedelements.rb', line 71 def +(rhs) o = NamedElements.new o.elements = @elements + rhs.elements o end |
#<<(rhs) ⇒ Object
62 63 64 65 |
# File 'lib/xsd/namedelements.rb', line 62 def <<(rhs) @elements << rhs self end |
#[](idx) ⇒ Object
40 41 42 43 44 45 46 |
# 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) ⇒ Object
77 78 79 80 |
# File 'lib/xsd/namedelements.rb', line 77 def concat(rhs) @elements.concat(rhs.elements) self end |
#delete(rhs) ⇒ Object
67 68 69 |
# File 'lib/xsd/namedelements.rb', line 67 def delete(rhs) @elements.delete(rhs) end |
#dup ⇒ Object
20 21 22 23 24 |
# File 'lib/xsd/namedelements.rb', line 20 def dup o = NamedElements.new o.elements = @elements.dup o end |
#each ⇒ Object
56 57 58 59 60 |
# File 'lib/xsd/namedelements.rb', line 56 def each @elements.each do |element| yield(element) end end |
#empty? ⇒ Boolean
32 33 34 |
# File 'lib/xsd/namedelements.rb', line 32 def empty? size == 0 end |
#find_name(name) ⇒ Object
48 49 50 |
# File 'lib/xsd/namedelements.rb', line 48 def find_name(name) @elements.find { |item| item.name.name == name } end |
#freeze ⇒ Object
26 27 28 29 30 |
# File 'lib/xsd/namedelements.rb', line 26 def freeze super @elements.freeze self end |
#keys ⇒ Object
52 53 54 |
# File 'lib/xsd/namedelements.rb', line 52 def keys collect { |element| element.name } end |
#size ⇒ Object
36 37 38 |
# File 'lib/xsd/namedelements.rb', line 36 def size @elements.size end |