Sha256: 67d04ee2c0258dfe04546017042f3f9764f154f8304991353421ef081084afbd

Contents?: true

Size: 1.16 KB

Versions: 55

Compression:

Stored size: 1.16 KB

Contents

# Participants no longer rate their emotions, they rate emotional ratings
# These are objects tied to emotions - giving participants the opportunity
# to rate the same emotion multiple times.
class EmotionalRating < ActiveRecord::Base
  belongs_to :emotion
  belongs_to :participant

  validates :emotion, presence: true
  validates :participant, presence: true
  validates :rating, presence: true, inclusion: { in: 0..10 }
  validates :is_positive, inclusion: { in: [true, false] }

  attr_writer :name

  delegate :name, to: :emotion, prefix: false

  before_validation :associate_emotion

  scope :for_day, lambda { |datetime|
    where(
      arel_table[:created_at].gteq(datetime.beginning_of_day)
      .and(arel_table[:created_at].lteq(datetime.end_of_day))
    )
  }

  scope :positive, -> { where(arel_table[:is_positive].eq(true)) }

  scope :negative, -> { where(arel_table[:is_positive].eq(false)) }

  def rating_value
    Values::EmotionalRating.from_rating(rating).to_s
  end

  def self.attribute_names
    super.concat ["name"]
  end

  private

  def associate_emotion
    if @name.present?
      self.emotion = Emotion.associate(participant, @name)
    end
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
think_feel_do_engine-3.19.9 app/models/emotional_rating.rb
think_feel_do_engine-3.19.8 app/models/emotional_rating.rb
think_feel_do_engine-3.19.7 app/models/emotional_rating.rb
think_feel_do_engine-3.19.6 app/models/emotional_rating.rb
think_feel_do_engine-3.19.5 app/models/emotional_rating.rb
think_feel_do_engine-3.19.4 app/models/emotional_rating.rb
think_feel_do_engine-3.19.3 app/models/emotional_rating.rb
think_feel_do_engine-3.19.2 app/models/emotional_rating.rb
think_feel_do_engine-3.19.1 app/models/emotional_rating.rb
think_feel_do_engine-3.19.0 app/models/emotional_rating.rb
think_feel_do_engine-3.18.0 app/models/emotional_rating.rb
think_feel_do_engine-3.17.2 app/models/emotional_rating.rb
think_feel_do_engine-3.17.1 app/models/emotional_rating.rb
think_feel_do_engine-3.17.0 app/models/emotional_rating.rb
think_feel_do_engine-3.16.3 app/models/emotional_rating.rb
think_feel_do_engine-3.16.2 app/models/emotional_rating.rb
think_feel_do_engine-3.16.1 app/models/emotional_rating.rb
think_feel_do_engine-3.15.7 app/models/emotional_rating.rb
think_feel_do_engine-3.16.0 app/models/emotional_rating.rb
think_feel_do_engine-3.15.6 app/models/emotional_rating.rb