class Ruboty::Handlers::Scorekeeper

Constants

NAMESPACE

Private Instance Methods

decrement(message) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 41
def decrement(message)
  name = normalize_name(message[:name])
  point = scores[name].to_i - 1
  scores[name] = point
  message.reply("decremented #{name} (#{point} pt)")
end
delete(message) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 64
def delete(message)
  name = normalize_name(message[:name])
  if scores.delete(name)
    message.reply("deleted a point of #{name}")
  else
    message.reply("#{name} is not found")
  end
end
ignore_name_matcher() click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 81
def ignore_name_matcher
  /^@|:$/ # IRC, Hipchat, Slack
end
increment(message) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 34
def increment(message)
  name = normalize_name(message[:name])
  point = scores[name].to_i + 1
  scores[name] = point
  message.reply("incremented #{name} (#{point} pt)")
end
normalize_name(name) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 77
def normalize_name(name)
  name.strip.gsub(ignore_name_matcher,"")
end
score(message) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 48
def score(message)
  name = normalize_name(message[:name])
  point = scores[name]
  message.reply("#{name} has #{point} points")
end
scoreboard(message) click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 54
def scoreboard(message)
  message.reply(
    scores.sort_by{|key, value|
      -value
    }.map.with_index(1){|data, index|
      "#{index} : #{data.first} (#{data.last} pt)"
    }.join("\n")
  )
end
scores() click to toggle source
# File lib/ruboty/handlers/scorekeeper.rb, line 73
def scores
  robot.brain.data[NAMESPACE] ||= {}
end