2011-10-27 23:34:14 +01:00
|
|
|
module Capybara::Poltergeist
|
|
|
|
class Server
|
2012-01-13 13:10:30 +00:00
|
|
|
attr_reader :port, :socket, :timeout
|
2011-10-27 23:34:14 +01:00
|
|
|
|
2012-01-13 13:10:30 +00:00
|
|
|
def initialize(timeout = nil)
|
2012-02-25 12:47:18 +00:00
|
|
|
@port = Util.find_available_port
|
2012-01-13 13:10:30 +00:00
|
|
|
@timeout = timeout
|
2011-10-27 23:34:14 +01:00
|
|
|
start
|
|
|
|
end
|
|
|
|
|
2012-01-13 13:10:30 +00:00
|
|
|
def timeout=(sec)
|
|
|
|
@timeout = @socket.timeout = sec
|
|
|
|
end
|
|
|
|
|
2011-10-27 23:34:14 +01:00
|
|
|
def start
|
2012-01-13 13:10:30 +00:00
|
|
|
@socket = WebSocketServer.new(port, timeout)
|
2011-10-27 23:34:14 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def restart
|
2012-01-13 13:10:30 +00:00
|
|
|
@socket.close
|
|
|
|
@socket = WebSocketServer.new(port, timeout)
|
2011-10-27 23:34:14 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def send(message)
|
2012-01-13 13:10:30 +00:00
|
|
|
@socket.send(message) or raise DeadClient.new(message)
|
2011-10-27 23:34:14 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|