Sha256: eec2e068e434a57e6121935eab399832d199c0743c87671c932131f46aec24c7

Contents?: true

Size: 1006 Bytes

Versions: 3

Compression:

Stored size: 1006 Bytes

Contents

class Sash < ActiveRecord::Base
  has_many :badges_sashes, :dependent => :destroy
  has_many :scores, :dependent => :destroy, :class_name => 'Merit::Score'

  def badges
    badge_ids.collect { |b_id| Badge.find(b_id) }
  end

  def badge_ids
    badges_sashes.map(&:badge_id)
  end

  def add_badge(badge_id)
    bs = BadgesSash.new
    bs.badge_id = badge_id
    self.badges_sashes << bs
  end

  def rm_badge(badge_id)
    badges_sashes.find_by_badge_id(badge_id).try(:destroy)
  end

  def points(category = 'default')
    scores.where(:category => category).first.points
  end

  def add_points(num_points, log = 'Manually granted through `add_points`', category = 'default')
    point = Merit::Score::Point.new
    point.log = log
    point.num_points = num_points
    self.scores.where(:category => category).first.score_points << point
  end
  def substract_points(num_points, log = 'Manually granted through `add_points`', category = 'default')
    add_points -num_points, log, category
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
merit-1.1.0 lib/merit/models/active_record/sash.rb
merit-1.0.1 lib/merit/models/active_record/sash.rb
merit-1.0.0 lib/merit/models/active_record/sash.rb