app/models/dependency_condition.rb in surveyor-0.14.4 vs app/models/dependency_condition.rb in surveyor-0.14.5

- old
+ new

@@ -1,44 +1,4 @@ class DependencyCondition < ActiveRecord::Base - - # Constants - OPERATORS = %w(== != < > <= >=) # CONSTANT or @@class_variable when validations listed before class method - - # Associations - belongs_to :answer - belongs_to :dependency - belongs_to :dependent_question, :foreign_key => :question_id, :class_name => :question - belongs_to :question - - # Validations - validates_numericality_of :dependency_id, :question_id, :answer_id - validates_presence_of :operator, :rule_key - validates_inclusion_of :operator, :in => OPERATORS - validates_uniqueness_of :rule_key, :scope => :dependency_id - - acts_as_response # includes "as" instance method - - # Class methods - def self.operators - OPERATORS - end - - # Instance methods - 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 - - # Checks to see if the response passed in meets the dependency condition - 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 - + unloadable + include Surveyor::Models::DependencyConditionMethods end