Class: Ruport::Format::OpenNode
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Ruport::Format::OpenNode
- Includes:
- Enumerable
- Defined in:
- lib/ruport/format/open_node.rb
Instance Method Summary collapse
- #<<(child) ⇒ Object
- #[](child_name) ⇒ Object
- #add_child(klass, name, options = {}) ⇒ Object
- #each(&p) ⇒ Object
-
#initialize(my_name, parent_name, children_name, name, options = {}) ⇒ OpenNode
constructor
A new instance of OpenNode.
Constructor Details
#initialize(my_name, parent_name, children_name, name, options = {}) ⇒ OpenNode
Returns a new instance of OpenNode.
6 7 8 9 10 11 12 13 14 |
# File 'lib/ruport/format/open_node.rb', line 6 def initialize(my_name, parent_name, children_name, name, ={}) @my_children_name = children_name @my_parent_name = parent_name @my_name = my_name super() self.name = name self.send(@my_children_name) || self.send("#{@my_children_name}=".to_sym,{}) end |
Instance Method Details
#<<(child) ⇒ Object
25 26 27 28 |
# File 'lib/ruport/format/open_node.rb', line 25 def <<(child) child.send("#{@my_name}=".to_sym, self) self.send(@my_children_name)[child.name] = child.dup end |
#[](child_name) ⇒ Object
30 31 32 |
# File 'lib/ruport/format/open_node.rb', line 30 def [](child_name) self.send(@my_children_name)[child_name] end |
#add_child(klass, name, options = {}) ⇒ Object
20 21 22 23 |
# File 'lib/ruport/format/open_node.rb', line 20 def add_child(klass,name,={}) [@my_name] = self self << klass.new(name, ) end |
#each(&p) ⇒ Object
16 17 18 |
# File 'lib/ruport/format/open_node.rb', line 16 def each &p self.send(@my_children_name).values.each(&p) end |