Module: Rulezilla::DSL::ClassMethods
- Defined in:
- lib/rulezilla/dsl.rb
Instance Method Summary collapse
- #all(record = {}) ⇒ Object
- #apply(record = {}) ⇒ Object
- #include_rule(rule) ⇒ Object
- #mandatory_attributes ⇒ Object
- #results(record = nil) ⇒ Object
- #trace(record = nil) ⇒ Object
- #tree ⇒ Object
Instance Method Details
#all(record = {}) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/rulezilla/dsl.rb', line 57 def all(record = {}) validate_missing_attributes(record) result_node = tree.find_all(record_klass_instance(record)) result_node.nil? ? nil : result_node.map { |node| node.result(record_klass_instance(record)) } end |
#apply(record = {}) ⇒ Object
51 52 53 54 55 |
# File 'lib/rulezilla/dsl.rb', line 51 def apply(record = {}) result_node = trace(record).last result_node.nil? ? nil : result_node.result(record_klass_instance(record)) end |
#include_rule(rule) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/rulezilla/dsl.rb', line 74 def include_rule(rule) if rule.ancestors.include?(Rulezilla::DSL) tree.clone_and_append_children(rule.tree.root_node.children) else raise "#{rule.name} is not a Rulezilla class" end end |
#mandatory_attributes ⇒ Object
47 48 49 |
# File 'lib/rulezilla/dsl.rb', line 47 def mandatory_attributes @mandatory_attributes ||= [] end |
#results(record = nil) ⇒ Object
64 65 66 |
# File 'lib/rulezilla/dsl.rb', line 64 def results(record = nil) tree.all_results(record_klass_instance(record)).uniq end |
#trace(record = nil) ⇒ Object
68 69 70 71 72 |
# File 'lib/rulezilla/dsl.rb', line 68 def trace(record = nil) validate_missing_attributes(record) tree.trace(record_klass_instance(record)) end |