From be7c871cc96e9b328afe8a754c258e55391d5e4a Mon Sep 17 00:00:00 2001 From: Benjamin Attal Date: Mon, 5 May 2014 17:21:45 -0400 Subject: [PATCH] Add Rakefile task for running ruby parse server. --- parsers/ruby/Rakefile | 5 +++++ parsers/ruby/lib/parse_server.rb | 33 ++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/parsers/ruby/Rakefile b/parsers/ruby/Rakefile index e69de29..e66f695 100644 --- a/parsers/ruby/Rakefile +++ b/parsers/ruby/Rakefile @@ -0,0 +1,5 @@ +require File.expand_path('../lib/parse_server.rb', __FILE__) + +task :start_server do |t| + start_server +end diff --git a/parsers/ruby/lib/parse_server.rb b/parsers/ruby/lib/parse_server.rb index 0dcaebb..916f434 100644 --- a/parsers/ruby/lib/parse_server.rb +++ b/parsers/ruby/lib/parse_server.rb @@ -12,22 +12,25 @@ def pack_int(i) return bytes.pack('cccc') end -server = TCPServer.new 5003 -loop do - # Start a new thread for each client accepted - Thread.start(server.accept) do |client| - begin - # Get the amount of data to be read - size = (client.readline).to_i - p = Bitshift::Parser.new client.read(size) - # Get the parsed result - symbols = p.parse - client.puts pack_int(symbols.length) - client.puts symbols - ensure - # Close the socket - client.close +def start_server + server = TCPServer.new 5003 + + loop do + # Start a new thread for each client accepted + Thread.start(server.accept) do |client| + begin + # Get the amount of data to be read + size = (client.readline).to_i + p = Bitshift::Parser.new client.read(size) + # Get the parsed result + symbols = p.parse + client.puts pack_int(symbols.length) + client.puts symbols + ensure + # Close the socket + client.close + end end end end