diff --git a/README.rdoc b/README.rdoc index 9e6e0d6993eb68ee9dcffbec865c1eb8265903ce..00e41e27ce72bfb1a4c611f987b561863bd477c0 100644 --- a/README.rdoc +++ b/README.rdoc @@ -97,8 +97,11 @@ If your model has +address+, +city+, +state+, and +country+ attributes you might [address, city, state, country].compact.join(', ') end +Please see the code (<tt>lib/geocoder/active_record.rb</tt>) for more methods and detailed information about arguments (eg, working with kilometers). -Please see the code for more methods and detailed information about arguments (eg, working with kilometers). +You can also set the timeout used for connections to Google's geocoding service. The default is 3 seconds, but if you want to set it to 5 you could put the following in an initializer: + + Geocoder::Configuration.timeout = 5 == Reverse Geocoding diff --git a/lib/geocoder.rb b/lib/geocoder.rb index 0f1d77af50111fe1f0e23594207d1681dafe6890..2cd221ffdf7e758c3a04c6b8610a84d1f5d3951b 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -1,3 +1,4 @@ +require "geocoder/configuration" require "geocoder/calculations" require "geocoder/lookup" require "geocoder/result" diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb new file mode 100644 index 0000000000000000000000000000000000000000..d10e1be85c60e6ff229dd3d4f3b7adc46160db1c --- /dev/null +++ b/lib/geocoder/configuration.rb @@ -0,0 +1,8 @@ +module Geocoder + class Configuration + cattr_accessor :timeout + end +end + +Geocoder::Configuration.timeout = 3 + diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb index 40e0654a66fcfa653f9b4aa4491efcc049efe7dd..443c5cc0d28339c725901bfcaa7ee61b49867819 100644 --- a/lib/geocoder/lookup.rb +++ b/lib/geocoder/lookup.rb @@ -61,7 +61,7 @@ module Geocoder url = query_url(query, reverse) begin resp = nil - timeout(3) do + timeout(Geocoder::Configuration.timeout) do Net::HTTP.get_response(URI.parse(url)).body end rescue SocketError, TimeoutError