Sha256: f6722a841b251654117b69dee1cea1adbc1168e05d2c8d093b098edcadb05a04
Contents?: true
Size: 966 Bytes
Versions: 13
Compression:
Stored size: 966 Bytes
Contents
# frozen_string_literal: true # Collected responses from one Participant WAI assessment session. class WaiAssessment < ActiveRecord::Base MIN_QUESTION_SCORE = 1 MAX_QUESTION_SCORE = 5 QUESTION_COUNT = 12 # rubocop:disable Style/MutableConstant QUESTION_ATTRIBUTES = :q1, :q2, :q3, :q4, :q5, :q6, :q7, :q8, :q9, :q10, :q11, :q12 # rubocop:enable Style/MutableConstant belongs_to :participant validates :participant, :release_date, presence: true validates :release_date, uniqueness: { scope: :participant_id } validate :scores_valid private def scores_valid return if remove_nils.empty? if remove_nils.min < MIN_QUESTION_SCORE || remove_nils.max > MAX_QUESTION_SCORE errors.add(:base, "scores must be between #{MIN_QUESTION_SCORE} " \ "and #{MAX_QUESTION_SCORE} inclusive") end end def remove_nils QUESTION_ATTRIBUTES.map { |a| self[a] }.compact end end
Version data entries
13 entries across 13 versions & 1 rubygems