class Rspec::Bash::StubServer

Public Class Methods

new(call_log_manager, call_conf_manager, stub_marshaller) click to toggle source
# File lib/rspec/bash/server/stub_server.rb, line 6
def initialize(call_log_manager, call_conf_manager, stub_marshaller)
  @call_log_manager = call_log_manager
  @call_conf_manager = call_conf_manager
  @stub_marshaller = stub_marshaller
end

Public Instance Methods

accept_loop(tcp_server, loop_forever = true) click to toggle source
# File lib/rspec/bash/server/stub_server.rb, line 18
def accept_loop(tcp_server, loop_forever = true)
  loop do
    tcp_socket = tcp_server.accept
    message = process(tcp_socket.read)
    tcp_socket.write(message)
    tcp_socket.close
    break unless loop_forever
  end
end
process(client_message) click to toggle source
# File lib/rspec/bash/server/stub_server.rb, line 28
def process(client_message)
  client_call = @stub_marshaller.unmarshal(client_message)
  server_conf = process_stub_call(client_call)
  @stub_marshaller.marshal(server_conf)
end
process_stub_call(stub_call) click to toggle source
# File lib/rspec/bash/server/stub_server.rb, line 34
def process_stub_call(stub_call)
  @call_log_manager.add_log(
    stub_call[:command],
    stub_call[:stdin],
    stub_call[:args]
  )
  @call_conf_manager.get_best_call_conf(
    stub_call[:command],
    stub_call[:args]
  )
end
start(tcp_server) click to toggle source
# File lib/rspec/bash/server/stub_server.rb, line 12
def start(tcp_server)
  Thread.new do
    accept_loop(tcp_server)
  end
end