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