class Ruboty::Gamification::Client

Constants

ISSUES_URL

Public Class Methods

new(gamification) click to toggle source
# File lib/ruboty/gamification/client.rb, line 9
def initialize(gamification)
  @gamification = gamification
end

Public Instance Methods

decrement(message) click to toggle source
# File lib/ruboty/gamification/client.rb, line 24
def decrement(message)
  name = message.from_name
  message.reply(reply_message(:decrement ,message))
  message.reply("#{name}--")
end
increment(message) click to toggle source
# File lib/ruboty/gamification/client.rb, line 18
def increment(message)
  name = message.from_name
  message.reply(reply_message(:increment ,message))
  message.reply("#{name}++")
end
reload(message) click to toggle source
# File lib/ruboty/gamification/client.rb, line 30
def reload(message)
  message.reply("reload start")
  @gamification.actions.clear
  load(:increment)
  load(:decrement)
  message.reply("reload done")
end
setup() click to toggle source
# File lib/ruboty/gamification/client.rb, line 13
def setup
  load(:increment)
  load(:decrement)
end

Private Instance Methods

connection() click to toggle source
# File lib/ruboty/gamification/client.rb, line 65
def connection
  Faraday.new do |connection|
    connection.adapter :net_http
    connection.response :json
  end
end
get(params) click to toggle source
# File lib/ruboty/gamification/client.rb, line 61
def get(params)
  connection.get(ISSUES_URL, params)
end
load(label) click to toggle source
# File lib/ruboty/gamification/client.rb, line 39
def load(label)
  get(labels: label).body.each do |data|
    pattern = /#{Regexp.escape(data["title"])}$/
    @gamification.on(
      pattern,
      name: "#{label}",
      description: "#{label} score (https://github.com/yoshiori/ruboty-gamification/issues)",
    )
    reply_messages[label][data["title"]] = data["body"]
  end
end
reply_message(label, message) click to toggle source
# File lib/ruboty/gamification/client.rb, line 51
def reply_message(label, message)
  if /\A@?#{Regexp.escape(message.robot.name)}:?\s*(.*)/ =~ message.body
    reply_messages[label][$1]
  end
end
reply_messages() click to toggle source
# File lib/ruboty/gamification/client.rb, line 57
def reply_messages
  @reply_messages ||= {increment: {}, decrement: {}}
end