class Wongi::Engine::Ruleset
Public Class Methods
[](name)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 5 def [](name) raise Error, "undefined ruleset #{name}" unless rulesets.key?(name) rulesets[name] end
new(name = nil)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 26 def initialize(name = nil) @rules = [] self.name(name) if name end
register(name, ruleset)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 11 def register(name, ruleset) raise Error, "ruleset #{name} already exists" if rulesets.key?(name) rulesets[name] = ruleset end
reset()
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 21 def reset @rulesets = {} end
rulesets()
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 17 def rulesets @rulesets ||= {} end
Public Instance Methods
inspect()
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 31 def inspect "<Ruleset #{name}>" end
install(rete)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 35 def install(rete) # puts "Installing ruleset #{name}" @rules.each { |rule| rete << rule } rescue StandardError => e e1 = Error.new "error installing ruleset '#{name || '<unnamed>'}': #{e}" e1.set_backtrace e.backtrace raise e1 end
name(name = nil)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 44 def name(name = nil) if name && !@name self.class.register name, self @name = name end @name end
query(name, &definition)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 64 def query(name, &definition) r = DSL::Query.new name r.instance_eval(&definition) @rules << r r end
rule(name, &definition)
click to toggle source
def uri uri = nil
@uri = uri if uri @uri
end
# File lib/wongi-engine/ruleset.rb, line 57 def rule(name, &definition) r = DSL::Rule.new name r.instance_eval(&definition) @rules << r r end