From 32ddeffff60374f87339a745a76803836a68d83c Mon Sep 17 00:00:00 2001 From: Anderson Bravalheri <andersonbravalheri@gmail.com> Date: Tue, 19 Jul 2011 02:28:53 -0300 Subject: [PATCH] Improviments in configuration DSL (no argument for block configuration needed). --- lib/geocoder.rb | 16 ++++++++++++++++ lib/geocoder/configuration.rb | 6 +++--- test/configuration_test.rb | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/geocoder.rb b/lib/geocoder.rb index 4e648617..edcd8ad3 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -9,6 +9,17 @@ require "geocoder/models/mongo_mapper" module Geocoder extend self + # This method can be used to change some functional aspects, like, + # the geocoding service provider, or the units of calculations. + # Please see {include:Configuration} + def configure(&block) + if block_given? + module_eval(&block) + else + Configuration.instance + end + end + ## # Search for information about an address or a set of coordinates. # @@ -74,6 +85,10 @@ module Geocoder private # ----------------------------------------------------------------- + def config # :nodoc + Configuration.instance + end + ## # Get a Lookup object (which communicates with the remote geocoding API). # Takes a search query and returns an IP or street address Lookup @@ -139,3 +154,4 @@ if defined?(Rails) require "geocoder/railtie" Geocoder::Railtie.insert end + diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb index 7d1e7cc8..108ba674 100644 --- a/lib/geocoder/configuration.rb +++ b/lib/geocoder/configuration.rb @@ -9,9 +9,9 @@ module Geocoder # == Geocoder Configuration # # The configuration of Geocoder can be done in to ways: - # - using +Geocoder#configure+ method: + # @example Using +Geocoder#configure+ method: # - # Geocoder.configure do |config| + # Geocoder.configure do # config.timeout = 3 # geocoding service timeout (secs) # config.lookup = :google # name of geocoding service (symbol) # config.language = :en # ISO-639 language code @@ -32,7 +32,7 @@ module Geocoder # @method = :spherical # :spherical or :linear # end # - # - or using +Geocoder::Configuration+ class directly, like in: + # @example Using +Geocoder::Configuration+ class directly, like in: # # Geocoder::Configuration.language = 'pt-BR' # diff --git a/test/configuration_test.rb b/test/configuration_test.rb index ae98c9b1..2812fe43 100644 --- a/test/configuration_test.rb +++ b/test/configuration_test.rb @@ -33,7 +33,7 @@ class ConfigurationTest < Test::Unit::TestCase # --- Geocoder#configure method configuration --- def test_geocoder_configuration - Geocoder.configure { |config| config.units = :mi } + Geocoder.configure { config.units = :mi } assert_equal Geocoder::Configuration.units, :mi distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round -- GitLab