Class: Wongi::Engine::Ruleset
- Inherits:
-
Object
- Object
- Wongi::Engine::Ruleset
- Defined in:
- lib/wongi-engine/ruleset.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(name = nil) ⇒ Ruleset
constructor
A new instance of Ruleset.
- #inspect ⇒ Object
- #install(rete) ⇒ Object
- #name(name = nil) ⇒ Object
- #query(name, &definition) ⇒ Object
-
#rule(name, &definition) ⇒ Object
def uri uri = nil @uri = uri if uri @uri end.
Constructor Details
#initialize(name = nil) ⇒ Ruleset
Returns a new instance of Ruleset.
26 27 28 29 |
# File 'lib/wongi-engine/ruleset.rb', line 26 def initialize(name = nil) @rules = [] self.name(name) if name end |
Class Method Details
.[](name) ⇒ Object
5 6 7 8 9 |
# File 'lib/wongi-engine/ruleset.rb', line 5 def [](name) raise Error, "undefined ruleset #{name}" unless rulesets.key?(name) rulesets[name] end |
.register(name, ruleset) ⇒ Object
11 12 13 14 15 |
# 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 ⇒ Object
21 22 23 |
# File 'lib/wongi-engine/ruleset.rb', line 21 def reset @rulesets = {} end |
.rulesets ⇒ Object
17 18 19 |
# File 'lib/wongi-engine/ruleset.rb', line 17 def rulesets @rulesets ||= {} end |
Instance Method Details
#inspect ⇒ Object
31 32 33 |
# File 'lib/wongi-engine/ruleset.rb', line 31 def inspect "<Ruleset #{name}>" end |
#install(rete) ⇒ Object
35 36 37 38 39 40 41 42 |
# 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) ⇒ Object
44 45 46 47 48 49 50 |
# 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 |