Class: DependencyCondition
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- DependencyCondition
- Defined in:
- app/models/dependency_condition.rb
Constant Summary collapse
- OPERATORS =
Constants
%w(== != < > <= >=)
Class Method Summary collapse
-
.operators ⇒ Object
Class methods.
Instance Method Summary collapse
-
#is_met?(response) ⇒ Boolean
Checks to see if the response passed in meets the dependency condition.
-
#to_hash(response_set) ⇒ Object
Instance methods.
Class Method Details
.operators ⇒ Object
Class methods
24 25 26 |
# File 'app/models/dependency_condition.rb', line 24 def self.operators OPERATORS end |
Instance Method Details
#is_met?(response) ⇒ Boolean
Checks to see if the response passed in meets the dependency condition
35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/dependency_condition.rb', line 35 def is_met?(response) klass = response.answer.response_class return case self.operator when "==", "<", ">", "<=", ">=" response.as(klass).send(self.operator, self.as(klass)) when "!=" !(response.as(klass) == self.as(klass)) else false end end |
#to_hash(response_set) ⇒ Object
Instance methods
29 30 31 32 |
# File 'app/models/dependency_condition.rb', line 29 def to_hash(response_set) response = response_set.responses.detect{|r| r.answer_id.to_i == self.answer_id.to_i} || false # eval("nil and false") => nil so return false if no response is found {rule_key.to_sym => (response and self.is_met?(response))} end |