Sha256: e4205f12831314dd14fe6383f67116ab7daaac2adfab440cb7de2b8a47b12d08

Contents?: true

Size: 997 Bytes

Versions: 1

Compression:

Stored size: 997 Bytes

Contents

module Helena
  class Version
    include Helena::Concerns::ApplicationModel
    include Mongoid::Orderable # Needed, because the embedded objects needs this, see

    field :version,        type: Integer, default: 0
    field :notes,          type: String
    field :session_report, type: String

    embedded_in :survey

    embeds_many :question_groups, class_name: 'Helena::QuestionGroup'
    embeds_many :sessions, class_name: 'Helena::Session'

    embeds_one :survey_detail, class_name: 'Helena::SurveyDetail'

    accepts_nested_attributes_for :survey_detail
    accepts_nested_attributes_for :question_groups

    scope :without_base, -> { where(:version.gt => 0) }

    validates :version, presence: true
    validates :version, uniqueness: { scope: :survey_id }

    def question_codes
      question_groups.map(&:question_codes).flatten
    end

    def question_code_occurences
      question_codes.each_with_object(Hash.new(0)) { |word, counts| counts[word] += 1 }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
helena-0.3.3 app/models/helena/version.rb