class Grammoire::Rule

Attributes

name[R]
weight[R]

Public Class Methods

new(name, &setup) click to toggle source
# File lib/grammoire/rule.rb, line 5
def initialize(name, &setup)
  @name = name
  weights(1)
  pre_condition { true }
  
  instance_eval &setup if block_given?
end

Public Instance Methods

applies?(context) click to toggle source
# File lib/grammoire/rule.rb, line 21
def applies?(context)
  context.instance_eval &@condition
end
evaluate(context) click to toggle source
# File lib/grammoire/rule.rb, line 29
def evaluate(context)
  context.instance_eval &@action
end
pre_condition(&condition) click to toggle source
# File lib/grammoire/rule.rb, line 17
def pre_condition(&condition)
  @condition = condition 
end
produce(&action) click to toggle source
# File lib/grammoire/rule.rb, line 25
def produce(&action)
  @action = action
end
weights(weight) click to toggle source
# File lib/grammoire/rule.rb, line 13
def weights(weight)
  @weight = weight
end