class Wongi::Engine::Ruleset
Public Class Methods
[](name)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 7 def [] name raise Error, "undefined ruleset #{name}" unless rulesets.has_key?( name ) rulesets[ name ] end
new(name = nil)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 27 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 12 def register name, ruleset raise Error, "ruleset #{name} already exists" if rulesets.has_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 32 def inspect "<Ruleset #{name}>" end
install(rete)
click to toggle source
# File lib/wongi-engine/ruleset.rb, line 36 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 45 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 65 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 58 def rule name, &definition r = DSL::Rule.new name r.instance_eval &definition @rules << r r end