Sha256: 6632040cbfb4a51a12ebc09307a7f702e5eea2fdfc9f58677511c9d6898e37ff
Contents?: true
Size: 1.16 KB
Versions: 5
Compression:
Stored size: 1.16 KB
Contents
require 'ambry' require 'ambry/active_model' class Badge extend Ambry::Model extend Ambry::ActiveModel field :id, :name, :level, :image, :description validates_presence_of :id, :name validates_uniqueness_of :id filters do def find_by_id(ids) ids = ids.kind_of?(Array) ? ids : [ids] find{|b| ids.include? b.id } end def by_name(name) find{|b| b.name == name.to_s } end def by_level(level) find{|b| b.level.to_s == level.to_s } end end # Grant badge to sash def grant_to(object_or_sash) object_or_sash.create_sash_if_none unless object_or_sash.kind_of?(Sash) sash = object_or_sash.respond_to?(:sash) ? object_or_sash.sash : object_or_sash if sash.badge_ids.include?(id) return false else sash.add_badge(id) return true end end # Take out badge from sash def delete_from(object_or_sash) object_or_sash.create_sash_if_none unless object_or_sash.kind_of?(Sash) sash = object_or_sash.respond_to?(:sash) ? object_or_sash.sash : object_or_sash if sash.badge_ids.include?(id) sash.rm_badge(id) return true else return false end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
merit-0.6.3 | app/models/badge.rb |
merit-0.6.2 | app/models/badge.rb |
merit-0.6.1 | app/models/badge.rb |
merit-0.6.0 | app/models/badge.rb |
merit-0.5.0 | app/models/badge.rb |