Class XSD::NamedElements
In: lib/xsd/namedelements.rb
Parent: Object

Methods

+   <<   []   concat   delete   dup   each   elements   elements=   empty?   find_name   freeze   keys   new   size  

Included Modules

Enumerable

Constants

Empty = NamedElements.new.freeze

Public Class methods

[Source]

    # File lib/xsd/namedelements.rb, line 15
15:   def initialize
16:     @elements = []
17:     @cache = {}
18:   end

Public Instance methods

[Source]

    # File lib/xsd/namedelements.rb, line 71
71:   def +(rhs)
72:     o = NamedElements.new
73:     o.elements = @elements + rhs.elements
74:     o
75:   end

[Source]

    # File lib/xsd/namedelements.rb, line 62
62:   def <<(rhs)
63:     @elements << rhs
64:     self
65:   end

[Source]

    # File lib/xsd/namedelements.rb, line 40
40:   def [](idx)
41:     if idx.is_a?(Numeric)
42:       @elements[idx]
43:     else
44:       @cache[idx] ||= @elements.find { |item| item.name == idx }
45:     end
46:   end

[Source]

    # File lib/xsd/namedelements.rb, line 77
77:   def concat(rhs)
78:     @elements.concat(rhs.elements)
79:     self
80:   end

[Source]

    # File lib/xsd/namedelements.rb, line 67
67:   def delete(rhs)
68:     @elements.delete(rhs)
69:   end

[Source]

    # File lib/xsd/namedelements.rb, line 20
20:   def dup
21:     o = NamedElements.new
22:     o.elements = @elements.dup
23:     o
24:   end

[Source]

    # File lib/xsd/namedelements.rb, line 56
56:   def each
57:     @elements.each do |element|
58:       yield(element)
59:     end
60:   end

[Source]

    # File lib/xsd/namedelements.rb, line 32
32:   def empty?
33:     size == 0
34:   end

[Source]

    # File lib/xsd/namedelements.rb, line 48
48:   def find_name(name)
49:     @elements.find { |item| item.name.name == name }
50:   end

[Source]

    # File lib/xsd/namedelements.rb, line 26
26:   def freeze
27:     super
28:     @elements.freeze
29:     self
30:   end

[Source]

    # File lib/xsd/namedelements.rb, line 52
52:   def keys
53:     collect { |element| element.name }
54:   end

[Source]

    # File lib/xsd/namedelements.rb, line 36
36:   def size
37:     @elements.size
38:   end

Protected Instance methods

[Source]

    # File lib/xsd/namedelements.rb, line 90
90:   def elements
91:     @elements
92:   end

[Source]

    # File lib/xsd/namedelements.rb, line 86
86:   def elements=(rhs)
87:     @elements = rhs
88:   end

[Validate]