lib/em-http/request.rb in igrigorik-em-http-request-0.1.1 vs lib/em-http/request.rb in igrigorik-em-http-request-0.1.3

- old
+ new

@@ -22,11 +22,10 @@ # } # } # class HttpRequest - attr_reader :response, :headers def initialize(host, headers = {}) @headers = headers @uri = URI::parse(host) end @@ -50,14 +49,21 @@ def send_request(method, options) raise ArgumentError, "invalid request path" unless /^\// === @uri.path method = method.to_s.upcase - - EventMachine.connect(@uri.host, @uri.port, EventMachine::HttpClient) { |c| - c.uri = @uri - c.method = method - c.options = options - } + begin + EventMachine.connect(@uri.host, @uri.port, EventMachine::HttpClient) { |c| + c.uri = @uri + c.method = method + c.options = options + c.comm_inactivity_timeout = options[:timeout] || 5 + } + rescue RuntimeError => e + raise e unless e.message == "no connection" + conn = EventMachine::HttpClient.new("") + conn.on_error("no connection") + conn + end end end end \ No newline at end of file