class Del::Tron
Attributes
configuration[R]
robot[R]
Public Class Methods
new(robot, configuration)
click to toggle source
# File lib/del/tron.rb, line 7 def initialize(robot, configuration) @robot = robot @configuration = configuration end
Public Instance Methods
execute(request)
click to toggle source
# File lib/del/tron.rb, line 12 def execute(request) command_for(request)&.call(request) || 'Unknown' rescue StandardError => error error.message end
Private Instance Methods
change_status(request)
click to toggle source
# File lib/del/tron.rb, line 51 def change_status(request) robot.public_send("#{request['status'].downcase}!", request['message']) 'Done!' rescue NoMethodError 'Error: Invalid status' end
command_for(request)
click to toggle source
# File lib/del/tron.rb, line 30 def command_for(request) commands[request['command'].to_sym] end
commands()
click to toggle source
# File lib/del/tron.rb, line 20 def commands { change_status: ->(request) { change_status(request) }, send_message: ->(request) { send_message(request) }, users: ->(request) { users(request) }, whoami: ->(request) { whoami(request) }, whois: ->(request) { JSON.generate(whois(request['q'])) } } end
send_message(request)
click to toggle source
# File lib/del/tron.rb, line 38 def send_message(request) robot.send_message(request['jid'], request['message']) 'Sent!' end
users(_request)
click to toggle source
# File lib/del/tron.rb, line 43 def users(_request) JSON.generate(configuration.users.all.map(&:attributes)) end
whoami(_request)
click to toggle source
# File lib/del/tron.rb, line 47 def whoami(_request) JSON.generate(whois(robot.jid)) end
whois(jid)
click to toggle source
# File lib/del/tron.rb, line 34 def whois(jid) configuration.users[jid]&.attributes || {} end