Split port discovery into its own function for better readability

This commit is contained in:
John Barker 2011-07-05 20:54:49 +08:00
parent a8ad8b9560
commit 9f75414a72
1 changed files with 10 additions and 1 deletions

View File

@ -63,6 +63,11 @@ class Capybara::Driver::Webkit
private
def start_server
read_pipe, write_pipe = fork_server
@server_port = discover_server_port(read_pipe)
end
def fork_server
server_path = File.expand_path("../../../../../bin/webkit_server", __FILE__)
read_pipe, write_pipe = IO.pipe
@ -74,8 +79,12 @@ class Capybara::Driver::Webkit
at_exit { Process.kill("INT", @pid) }
write_pipe.close
[read_pipe, write_pipe]
end
def discover_server_port(read_pipe)
return unless IO.select([read_pipe], nil, nil, 10)
@server_port = ((read_pipe.first || '').match(/listening on port: (\d+)/) || [])[1]
((read_pipe.first || '').match(/listening on port: (\d+)/) || [])[1]
end
def connect