Commit 355e5e6
Changed files (4)
lib/del/robot.rb
@@ -1,6 +1,6 @@
module Del
class Robot
- attr_reader :connection, :router
+ attr_reader :connection, :router, :server
attr_reader :users, :rooms
attr_reader :jid, :name
@@ -11,12 +11,13 @@ module Del
@router = configuration.router
@users = configuration.users
@rooms = configuration.rooms
+ @server = SocketServer.new
end
def get_funky!
- connection.connect(self)
Del.logger.info("It's fire! 🔥")
- sleep
+ connection.connect(self)
+ server.run(self)
rescue Interrupt
connection.disconnect
end
lib/del/socket_connection.rb
@@ -0,0 +1,15 @@
+module Del
+ class SocketConnection
+ def initialize(path: '/tmp/del.sock')
+ File.unlink(path) if File.exists?(path)
+ @server = UNIXServer.new(path)
+ end
+
+ def on_receive
+ socket = @server.accept
+ yield socket
+ ensure
+ socket&.close
+ end
+ end
+end
lib/del/socket_server.rb
@@ -0,0 +1,15 @@
+module Del
+ class SocketServer
+ def initialize(connection = SocketConnection.new)
+ @connection = connection
+ end
+
+ def run(robot)
+ loop do
+ @connection.on_receive do |socket|
+ Del.logger.info(socket.readline)
+ end
+ end
+ end
+ end
+end
lib/del.rb
@@ -4,13 +4,16 @@ require "xmpp4r"
require "xmpp4r/muc/helper/mucbrowser"
require "xmpp4r/muc/helper/simplemucclient"
require "xmpp4r/roster/helper/roster"
+require "socket"
-require "del/connection"
require "del/configuration"
+require "del/connection"
require "del/default_router"
require "del/message"
require "del/repository"
require "del/robot"
+require "del/socket_connection"
+require "del/socket_server"
require "del/source"
require "del/user"
require "del/version"