diff --git a/lib/httparty.rb b/lib/httparty.rb index 1136a768..e502c96c 100644 --- a/lib/httparty.rb +++ b/lib/httparty.rb @@ -148,7 +148,7 @@ def default_params(h={}) # default_timeout 10 # end def default_timeout(t) - raise ArgumentError, 'Timeout must be an integer' unless t && t.is_a?(Integer) + raise ArgumentError, 'Timeout must be an integer or float' unless t && (t.is_a?(Integer) || t.is_a?(Float)) default_options[:timeout] = t end diff --git a/lib/httparty/request.rb b/lib/httparty/request.rb index 7213480e..0d938c0f 100644 --- a/lib/httparty/request.rb +++ b/lib/httparty/request.rb @@ -101,7 +101,7 @@ def http http = Net::HTTP.new(uri.host, uri.port, options[:http_proxyaddr], options[:http_proxyport]) http.use_ssl = ssl_implied? - if options[:timeout] && options[:timeout].is_a?(Integer) + if options[:timeout] && (options[:timeout].is_a?(Integer) || options[:timeout].is_a?(Float)) http.open_timeout = options[:timeout] http.read_timeout = options[:timeout] end diff --git a/spec/httparty_spec.rb b/spec/httparty_spec.rb index d39dee65..f601d2af 100644 --- a/spec/httparty_spec.rb +++ b/spec/httparty_spec.rb @@ -232,6 +232,11 @@ def second_method @klass.default_timeout 10 @klass.default_options[:timeout].should == 10 end + + it "should support floats" do + @klass.default_timeout 0.5 + @klass.default_options[:timeout].should == 0.5 + end end describe "debug_output" do