Class: DreddHooks::Server
- Inherits:
-
Object
- Object
- DreddHooks::Server
- Defined in:
- lib/dredd_hooks/server.rb
Constant Summary collapse
- HOST =
The hooks worker server
'127.0.0.1'
- PORT =
61321
- MESSAGE_DELIMITER =
"\n"
Instance Method Summary collapse
Instance Method Details
#process_message(message, client) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/dredd_hooks/server.rb', line 16 def , client event = ['event'] data = ['data'] if event == "beforeEach" data = DreddHooks::Runner.run_before_each_hooks_for_transaction data data = DreddHooks::Runner.run_before_hooks_for_transaction data end if event == "beforeEachValidation" data = DreddHooks::Runner.run_before_each_validation_hooks_for_transaction data data = DreddHooks::Runner.run_before_validation_hooks_for_transaction data end if event == "afterEach" data = DreddHooks::Runner.run_after_hooks_for_transaction data data = DreddHooks::Runner.run_after_each_hooks_for_transaction data end if event == "beforeAll" data = DreddHooks::Runner.run_before_all_hooks_for_transactions data end if event == "afterAll" data = DreddHooks::Runner.run_after_all_hooks_for_transactions data end to_send = { "uuid" => ['uuid'], "event" => event, "data" => data }.to_json client.puts to_send + "\n" end |
#run ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/dredd_hooks/server.rb', line 51 def run @server = TCPServer.new HOST, PORT loop do #Thread.abort_on_exception=true client = @server.accept STDERR.puts 'Dredd connected to Ruby Dredd hooks worker' buffer = "" while (data = client.recv(10)) buffer += data if buffer.include? MESSAGE_DELIMITER splitted_buffer = buffer.split(MESSAGE_DELIMITER) buffer = "" = [] splitted_buffer.each do || begin .push JSON.parse() rescue JSON::ParserError # if message aftger delimiter is not parseable json, it's # a chunk of next message, put it back to the buffer buffer += end end .each do || , client end end end client.close end end |