class Fire::Rule
Rule
class encapsulates a rule definition.
Attributes
logic[R]
Access logic condition.
Returns [Logic]
procedure[R]
Returns [Proc]
Public Class Methods
new(logic, options={}, &procedure)
click to toggle source
Initialize new instanance of Rule
.
logic - Logic condition. [Logic] procedure - Procedure to run if logic condition is met. [Proc]
Options
:todo - Names of prerequisite tasks. [Array<Symbol>]
# File lib/fire/rule.rb, line 14 def initialize(logic, options={}, &procedure) @logic = logic @requisite = options[:todo] @procedure = procedure end
Public Instance Methods
apply(&prepare)
click to toggle source
Apply logic, running the rule’s prcedure if the logic condition is satisfied.
Returns nothing.
# File lib/fire/rule.rb, line 45 def apply(&prepare) case logic when true call when false, nil else result_set = logic.call if result_set && !result_set.empty? prepare.call call(*result_set) end end end
Also aliased as: invoke
name()
click to toggle source
Rules don’t generally have names, but task rules do.
# File lib/fire/rule.rb, line 37 def name nil end
requisite()
click to toggle source
Names of requisite tasks.
# File lib/fire/rule.rb, line 29 def requisite @requisite end
Also aliased as: todo
Protected Instance Methods
call(*result_set)
click to toggle source
Run rule procedure.
result_set - The result set returned by the logic condition.
Returns whatever the procedure returns. [Object]
# File lib/fire/rule.rb, line 69 def call(*result_set) if @procedure.arity == 0 @procedure.call else #@procedure.call(session, *args) @procedure.call(*result_set) end end