Sha256: 4c2a568d5989df311382b296ec57b615c41acd33233f00b02a89662cbc4cd3c8

Contents?: true

Size: 690 Bytes

Versions: 44

Compression:

Stored size: 690 Bytes

Contents

# Participants rate their emotions a name and intensity
class Emotion < ActiveRecord::Base
  belongs_to :creator, class_name: "Participant"
  has_many :emotional_ratings, dependent: :destroy

  validates :creator, presence: true
  validates :name, presence: true
  validates :name, uniqueness: { scope: :creator_id }

  before_validation :normalize_name

  def self.associate(participant, name)
    find_or_create_by(
      creator_id: participant.id,
      name: normalized_name(name)
    )
  end

  private

  def self.normalized_name(n)
    n.strip.downcase
  end

  def normalize_name
    if name.respond_to?(:strip)
      self.name = self.class.normalized_name(name)
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
think_feel_do_engine-3.17.2 app/models/emotion.rb
think_feel_do_engine-3.17.1 app/models/emotion.rb
think_feel_do_engine-3.17.0 app/models/emotion.rb
think_feel_do_engine-3.16.3 app/models/emotion.rb
think_feel_do_engine-3.16.2 app/models/emotion.rb
think_feel_do_engine-3.16.1 app/models/emotion.rb
think_feel_do_engine-3.15.7 app/models/emotion.rb
think_feel_do_engine-3.16.0 app/models/emotion.rb
think_feel_do_engine-3.15.6 app/models/emotion.rb
think_feel_do_engine-3.15.5 app/models/emotion.rb
think_feel_do_engine-3.15.4 app/models/emotion.rb
think_feel_do_engine-3.15.3 app/models/emotion.rb
think_feel_do_engine-3.15.2 app/models/emotion.rb
think_feel_do_engine-3.15.1 app/models/emotion.rb
think_feel_do_engine-3.15.0 app/models/emotion.rb
think_feel_do_engine-3.14.9 app/models/emotion.rb
think_feel_do_engine-3.14.8 app/models/emotion.rb
think_feel_do_engine-3.14.7 app/models/emotion.rb
think_feel_do_engine-3.14.6 app/models/emotion.rb
think_feel_do_engine-3.14.5 app/models/emotion.rb