Sha256: 82d8b3af657e37226b5251fda58ff2c76b8a3faccb2223b2241ad45f5ec97cad

Contents?: true

Size: 781 Bytes

Versions: 5

Compression:

Stored size: 781 Bytes

Contents

module Helena
  class SubQuestion
    include Helena::Concerns::ApplicationModel
    include Mongoid::Orderable

    field :text,        type: String
    field :value,       type: String
    field :code,        type: String
    field :preselected, type: Boolean

    embedded_in :question, inverse_of: :sub_questions

    orderable

    validate :uniqueness_of_code
    validates :text, presence: true, uniqueness: true

    def splitted?
      parts.size > 1
    end

    def parts
      text.split '|'
    end

    def uniqueness_of_code
      return unless question
      question_code_occurences = question.question_group.version.question_code_occurences

      return true if question_code_occurences[code] <= 1

      errors.add(:code, :taken, value: code)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
helena-1.3.1 app/models/helena/sub_question.rb
helena-1.3.0 app/models/helena/sub_question.rb
helena-1.1.0 app/models/helena/sub_question.rb
helena-1.0.3 app/models/helena/sub_question.rb
helena-1.0.2 app/models/helena/sub_question.rb