Sha256: bde0896b1e24b5d1347dfc612fb2c82e31c9ec7c65499a61498a6d175577ae76
Contents?: true
Size: 830 Bytes
Versions: 5
Compression:
Stored size: 830 Bytes
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 = Array.wrap(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 def self.find_by_name_and_level(name, level) badges = Badge.by_name(name) badges = badges.by_level(level) unless level.nil? if !(badge = badges.first) raise ::Merit::BadgeNotFound, "No badge '#{name}'#{level.nil? ? '' : " with level #{level}"} found. Define it in 'config/initializers/merit.rb'." end badge end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
merit-1.2.3 | app/models/badge.rb |
merit-1.2.2 | app/models/badge.rb |
merit-1.2.1 | app/models/badge.rb |
merit-1.2.0 | app/models/badge.rb |
merit-1.1.2 | app/models/badge.rb |