class Badginator

Constants

ALREADY_WON
DID_NOT_WIN
ERROR
VERSION
WON

Public Class Methods

Status(status_code, badge = nil) click to toggle source
# File lib/badginator.rb, line 51
def self.Status(status_code, badge = nil)
  case status_code
    when DID_NOT_WIN, WON, ALREADY_WON, ERROR
      Badginator::Status.new code: status_code, badge: badge
    else
      rails TypeError, "Cannot convert #{status_code} to Status"
  end
end
badges() click to toggle source
# File lib/badginator.rb, line 27
def self.badges
  self.instance.badges
end
define_badge(*args, &block) click to toggle source
# File lib/badginator.rb, line 43
def self.define_badge(*args, &block)
  self.instance.define_badge(*args, &block)
end
get_badge(badge_code) click to toggle source
# File lib/badginator.rb, line 47
def self.get_badge(badge_code)
  self.instance.get_badge(badge_code)
end
new() click to toggle source
# File lib/badginator.rb, line 15
def initialize
  @badges = {}
end

Public Instance Methods

badges() click to toggle source
# File lib/badginator.rb, line 23
def badges
  @badges.values.select { |badge| ! badge.disabled }
 end
define_badge(*args, &block) click to toggle source
# File lib/badginator.rb, line 31
def define_badge(*args, &block)
  badge = Badge.new
  badge.build_badge &block
  badge.freeze

  if @badges.key?(badge.code)
    raise "badge code '#{badge.code}' already defined."
  end

  @badges[badge.code] = badge
end
get_badge(badge_code) click to toggle source
# File lib/badginator.rb, line 19
def get_badge(badge_code)
  @badges.fetch(badge_code)
end