Class: Build::RuleNode

Inherits:
Graph::Node
  • Object
show all
Defined in:
lib/build/rule_node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rule, arguments, &block) ⇒ RuleNode

Returns a new instance of RuleNode.



25
26
27
28
29
30
31
32
33
34
# File 'lib/build/rule_node.rb', line 25

def initialize(rule, arguments, &block)
	@arguments = arguments
	@rule = rule
	
	@callback = block
	
	inputs, outputs = @rule.files(@arguments)
	
	super(inputs, outputs, @rule)
end

Instance Attribute Details

#argumentsObject (readonly)

Returns the value of attribute arguments.



36
37
38
# File 'lib/build/rule_node.rb', line 36

def arguments
  @arguments
end

#callbackObject (readonly)

Returns the value of attribute callback.



38
39
40
# File 'lib/build/rule_node.rb', line 38

def callback
  @callback
end

#ruleObject (readonly)

Returns the value of attribute rule.



37
38
39
# File 'lib/build/rule_node.rb', line 37

def rule
  @rule
end

Instance Method Details

#apply!(scope) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/build/rule_node.rb', line 44

def apply!(scope)
	@rule.apply!(scope, @arguments)
	
	if @callback
		scope.instance_exec(@arguments, &@callback)
	end
end

#inspectObject



52
53
54
# File 'lib/build/rule_node.rb', line 52

def inspect
	@rule.name.inspect
end

#nameObject



40
41
42
# File 'lib/build/rule_node.rb', line 40

def name
	@rule.name
end