Module: Wood::Node::ClassMethods

Defined in:
lib/wood/node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#node_name_prefixObject

Prefix to be ignored for #node_name



29
30
31
# File 'lib/wood/node.rb', line 29

def node_name_prefix
  @node_name_prefix
end

Instance Method Details

#[](options = {}) ⇒ Object

Instantiates a new instance of ‘self` with `options`.



44
45
46
# File 'lib/wood/node.rb', line 44

def [](options = {})
  new(options)
end

#__child_nodes__Array<Symbol>

Returns List of child node names for a Wood::Node class.

Returns:



17
18
19
# File 'lib/wood/node.rb', line 17

def __child_nodes__
  superclass.__child_nodes__ + (@__child_nodes__ || [])
end

#child_nodes(*child_nodes) ⇒ Object

Parameters:

  • child_nodes (Array<Symbol>)

    Sets the list of child nodes for a Wood::Node class.



23
24
25
26
# File 'lib/wood/node.rb', line 23

def child_nodes(*child_nodes)
  @__child_nodes__ = child_nodes
  attr_accessor *child_nodes
end

#node_name(node_name = nil) ⇒ Object

Overrides the default node name of a Wood::Node class.

Parameters:

  • node_name (Symbol) (defaults to: nil)

    New node name for Wood::Node class.



34
35
36
37
38
39
40
41
# File 'lib/wood/node.rb', line 34

def node_name(node_name = nil)
 @__node_name__ = node_name if node_name
  unless @__node_name__
    camel_cased = (name.split("::") - node_name_prefix.split("::")).join
    @__node_name__ = camel_cased.snake_cased.to_sym
  end
  @__node_name__
end