Sha256: 01cd4dfbab3c2dc78bc47bc53b9faa82d620f9e8f574eed9db1e75f8ed2f1bf9
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
module Del class Robot attr_reader :connection, :router, :server attr_reader :users, :rooms attr_reader :jid, :name def initialize(configuration:) @connection = Connection.new(configuration: configuration) @jid = configuration.jid @name = configuration.name @router = configuration.router @users = configuration.users @rooms = configuration.rooms @server = SocketServer.new(socket_file: configuration.socket_file) end def get_funky!(start_server: true) Del.logger.info("It's fire! 🔥") connection.connect(self) server.run(self) if start_server rescue Interrupt connection.disconnect end def receive(message, source:) return if source.from?(self) router.route(Message.new(message, robot: self, source: source)) end def send_message(jid, message) if user?(jid) connection.deliver(jid, message) else connection.deliver_to_room(jid, message) end end def execute(request) case request['command'] when 'send_message' send_message(request['jid'], request['message']) "Sent!" else "Unknown" end end private def user?(jid) users[jid] end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
del-0.1.9 | lib/del/robot.rb |
del-0.1.8 | lib/del/robot.rb |
del-0.1.7 | lib/del/robot.rb |
del-0.1.6 | lib/del/robot.rb |