Class: Ruboty::Handlers::HugeKarma

Inherits:
Base
  • Object
show all
Defined in:
lib/ruboty/hugekarma.rb

Constant Summary collapse

BRAIN_KEY =
'hugekarma'

Instance Method Summary collapse

Instance Method Details

#increment(message) ⇒ Object

on /karma set (?<name>.+) [d万億兆京]$/, name: ‘set_karma’, description: “Set <name>‘s karma to specified value”



15
16
17
18
19
20
21
22
23
# File 'lib/ruboty/hugekarma.rb', line 15

def increment(message)
  brain = message.robot.brain
  data = brain.data[BRAIN_KEY] || {}
  data[message[:name]] ||= 0
  data[message[:name]] += 1
  brain.data[BRAIN_KEY] = data

  message.reply("Incremented #{message[:name]}'s karma (current: #{data[message[:name]]})")
end

#list_karma(message) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/ruboty/hugekarma.rb', line 37

def list_karma(message)
  brain = message.robot.brain
  data = brain.data[BRAIN_KEY] || {}
  sorted = data.sort_by {|name, karma| karma}.reverse

  reply = sorted.map {|d| "#{d[0]}: #{d[1]}"}
  message.reply(reply.join("\n"))
end

#super_increment(message) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ruboty/hugekarma.rb', line 25

def super_increment(message)
  incr_value = JapaneseNumbers::Parser.parse(message[:value])

  brain = message.robot.brain
  data = brain.data[BRAIN_KEY] || {}
  data[message[:name]] ||= 0
  data[message[:name]] += incr_value
  brain.data[BRAIN_KEY] = data

  message.reply("Incremented #{message[:name]}'s karma by #{incr_value} (current: #{data[message[:name]]})")
end