diff options
Diffstat (limited to 'lib/vendor/excon/lib/excon/test/plugin/server/webrick.rb')
-rw-r--r-- | lib/vendor/excon/lib/excon/test/plugin/server/webrick.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/vendor/excon/lib/excon/test/plugin/server/webrick.rb b/lib/vendor/excon/lib/excon/test/plugin/server/webrick.rb new file mode 100644 index 0000000..19354d5 --- /dev/null +++ b/lib/vendor/excon/lib/excon/test/plugin/server/webrick.rb @@ -0,0 +1,23 @@ +module Excon + module Test + module Plugin + module Server + module Webrick + def start(app_str = app, bind_uri = bind) + bind_uri = URI.parse(bind_uri) unless bind_uri.is_a? URI::Generic + host = bind_uri.host.gsub(/[\[\]]/, '') + port = bind_uri.port.to_s + open_process('rackup', '-s', 'webrick', '--host', host, '--port', port, app_str) + line = '' + until line =~ /HTTPServer#start/ + line = error.gets + fatal_time = elapsed_time > timeout + raise 'webrick server has taken too long to start' if fatal_time + end + true + end + end + end + end + end +end |