Commit 7c892f8

mo <mo.khan@gmail.com>
2018-04-29 20:26:03
move socket processing to robot.
1 parent 5113782
lib/del/cli.rb
@@ -20,7 +20,8 @@ module Del
     desc "message <jid> <message>", "send a message to the Jabber ID"
     def message(jid, message)
       socket = UNIXSocket.new(options[:socket_file])
-      socket.puts(JSON.generate(jid: jid, message: message))
+      socket.puts(JSON.generate(command: :send_message, jid: jid, message: message))
+      say socket.readline, :green
       socket.close
     end
   end
lib/del/robot.rb
@@ -35,6 +35,16 @@ module Del
       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)
lib/del/socket_connection.rb
@@ -8,6 +8,8 @@ module Del
     def on_receive
       socket = @server.accept
       yield socket
+    rescue => error
+      Del.logger.error(error)
     ensure
       socket&.close
     end
lib/del/socket_server.rb
@@ -9,9 +9,7 @@ module Del
         @connection.on_receive do |socket|
           line = socket.readline
           Del.logger.debug(line)
-          json = JSON.parse(line)
-          jid = json['jid']
-          robot.send_message(jid, json['message'])
+          socket.write(robot.execute(JSON.parse(line)))
         end
       end
     end