Sha256: 22810c2504b9f786883ed646bcbd9c2a1912d800ab70fe79b3084e5ee3d6734c
Contents?: true
Size: 789 Bytes
Versions: 4
Compression:
Stored size: 789 Bytes
Contents
require 'socket' module JCukeForker class StatusServer include Observable include Celluloid::IO finalizer :shutdown attr_reader :port def initialize(port = '6333') server = ::TCPServer.new 'localhost', port @port = server.connect_address.ip_port @server = TCPServer.from_ruby_server server end def run loop { async.handle_connection @server.accept } end def shutdown @server.close if @server end def handle_connection(socket) until socket.eof? do raw_message = socket.gets json_obj = JSON.parse raw_message fire json_obj.first, *json_obj[1..-1] end socket.close end private def fire(*args) changed notify_observers *args end end end
Version data entries
4 entries across 4 versions & 1 rubygems