Commit 0c1ea5c
lib/del/robot.rb
@@ -14,7 +14,10 @@ module Del
def get_funky!(start_server: true)
Del.logger.info('๐ฅ๐ฅ๐ฅ')
xmpp_connection.connect(self)
- socket_server.run(self) if start_server
+ if start_server
+ deltron = Del::Tron.new(self, configuration)
+ socket_server.run(deltron)
+ end
rescue Interrupt
xmpp_connection.disconnect
end
@@ -34,18 +37,6 @@ module Del
end
end
- def execute(request)
- {
- send_message: lambda do
- send_message(request['jid'], request['message'])
- 'Sent!'
- end,
- users: -> { JSON.generate(configuration.users.all.map(&:attributes)) },
- whoami: -> { JSON.generate(whois(jid)) },
- whois: -> { JSON.generate(whois(request['q'])) }
- }[request['command'].to_sym]&.call || 'Unknown'
- end
-
private
attr_reader :configuration
@@ -62,9 +53,5 @@ module Del
def user?(jid)
configuration.users[jid]
end
-
- def whois(jid)
- configuration.users[jid]&.attributes || {}
- end
end
end
lib/del/tron.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+module Del
+ class Tron
+ attr_reader :robot, :configuration
+
+ def initialize(robot, configuration)
+ @robot = robot
+ @configuration = configuration
+ end
+
+ def execute(request)
+ {
+ send_message: -> { send_message(request) },
+ users: -> { users(request) },
+ whoami: -> { whoami(request) },
+ whois: -> { JSON.generate(whois(request['q'])) }
+ }[request['command'].to_sym]&.call || 'Unknown'
+ end
+
+ private
+
+ def whois(jid)
+ configuration.users[jid]&.attributes || {}
+ end
+
+ def send_message(request)
+ robot.send_message(request['jid'], request['message'])
+ 'Sent!'
+ end
+
+ def users(_request)
+ JSON.generate(configuration.users.all.map(&:attributes))
+ end
+
+ def whoami(_request)
+ JSON.generate(whois(jid))
+ end
+ end
+end
lib/del.rb
@@ -23,6 +23,7 @@ require 'del/socket_connection'
require 'del/socket_message'
require 'del/socket_server'
require 'del/source'
+require 'del/tron'
require 'del/user'
require 'del/version'