Class: Qwester::RuleSet
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Qwester::RuleSet
- Defined in:
- app/models/qwester/rule_set.rb
Constant Summary collapse
- DEFAULT_RULE_JOIN =
'or'
- ANSWERS_LIMIT =
10
Class Method Summary collapse
Instance Method Summary collapse
- #blocking_answer_sets ⇒ Object
- #default_rule ⇒ Object
- #logic ⇒ Object
- #match(answers_to_check = nil) ⇒ Object
- #matching_answer_sets ⇒ Object
Class Method Details
.matching(answers) ⇒ Object
32 33 34 |
# File 'app/models/qwester/rule_set.rb', line 32 def self.matching(answers) all.select{|rule_set| rule_set.match(answers)} end |
Instance Method Details
#blocking_answer_sets ⇒ Object
50 51 52 |
# File 'app/models/qwester/rule_set.rb', line 50 def blocking_answer_sets @blocking_answer_set ||= logic.blocking_combinations end |
#default_rule ⇒ Object
54 55 56 |
# File 'app/models/qwester/rule_set.rb', line 54 def default_rule answers.collect(&:rule_label).join(" #{DEFAULT_RULE_JOIN} ") end |
#logic ⇒ Object
42 43 44 |
# File 'app/models/qwester/rule_set.rb', line 42 def logic @logic || get_logic end |
#match(answers_to_check = nil) ⇒ Object
36 37 38 39 40 |
# File 'app/models/qwester/rule_set.rb', line 36 def match(answers_to_check = nil) return unless answers_to_check and !answers_to_check.empty? generate_default_rule && save logic.match(answers_to_check) end |
#matching_answer_sets ⇒ Object
46 47 48 |
# File 'app/models/qwester/rule_set.rb', line 46 def matching_answer_sets @matching_answer_sets ||= logic.matching_combinations end |