Module: Katte::Node::Base

Included in:
Plugins::Node::Debug, Plugins::Node::File, Recipe::Node
Defined in:
lib/katte/node/base.rb

Defined Under Namespace

Classes: AbstractNodeException

Instance Method Summary collapse

Instance Method Details

#_descendants(enum) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/katte/node/base.rb', line 40

def _descendants(enum)
  children.each {|node|
    enum << node
    node._descendants(enum)
  }
  enum
end

#add_child(node, *params) ⇒ Object



25
26
27
# File 'lib/katte/node/base.rb', line 25

def add_child(node, *params)
  children << node
end

#add_parent(node, *params) ⇒ Object



33
34
35
# File 'lib/katte/node/base.rb', line 33

def add_parent(node, *params)
  parents << node
end

#childrenObject

accessor for children



22
23
24
# File 'lib/katte/node/base.rb', line 22

def children
  @children ||= []
end

#descendantsObject



37
38
39
# File 'lib/katte/node/base.rb', line 37

def descendants
  Enumerator.new {|enum| _descendants(enum) }
end

#nameObject



5
6
7
# File 'lib/katte/node/base.rb', line 5

def name
  raise AbstractNodeException, "method #name must be implemented"
end

#parentsObject

accessor for parents



30
31
32
# File 'lib/katte/node/base.rb', line 30

def parents
  @parents ||= []
end

#requiresObject



8
9
10
# File 'lib/katte/node/base.rb', line 8

def requires
  @requires ||= []
end

#run(driver) ⇒ Object



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

def run(driver)
  driver.skip(self)
end

#run?Boolean

execution filter return whether this node to run

Returns:

  • (Boolean)


14
15
16
# File 'lib/katte/node/base.rb', line 14

def run?
  false
end