Module: BaiduApi::Geocoding

Extended by:
Geocoding
Included in:
Geocoding
Defined in:
lib/baidu_api/geocoding.rb,
lib/baidu_api/geocoding/version.rb,
lib/baidu_api/geocoding/v2/geocoder.rb,
lib/baidu_api/geocoding/configuration.rb

Defined Under Namespace

Modules: V2 Classes: Configuration

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Instance Method Details

#configObject



19
20
21
# File 'lib/baidu_api/geocoding.rb', line 19

def config
  @@config || fail(ArgumentError, 'Please setup API with BaiduApi::Geocoding.setup(options) before starting!')
end

#fetch_option(options, key) ⇒ Object



37
38
39
# File 'lib/baidu_api/geocoding.rb', line 37

def fetch_option(options, key)
  options.fetch(key.intern) { options.fetch(key.to_s, config[key]) }
end

#fetch_options(options) ⇒ Object



30
31
32
33
34
35
# File 'lib/baidu_api/geocoding.rb', line 30

def fetch_options(options)
  %w(ak sk version).inject({}) do |ret, item|
    ret[item.intern] = fetch_option(options, item)
    ret
  end
end

#geocode(address, options = {}) ⇒ Object



23
24
25
26
27
28
# File 'lib/baidu_api/geocoding.rb', line 23

def geocode(address, options = {})
  options = fetch_options(options)
  version = options.delete(:version).upcase
  geocoder = Object.const_get("BaiduApi::Geocoding::#{version}::Geocoder") rescue fail(ArgumentError, "API version #{version} doesn't exist!")
  geocoder.geocode(address, options)
end

#setup(options = {}) {|@@config| ... } ⇒ Object

options:

:ak
:sk
:output    default: json
:version   default: v2

Yields:



14
15
16
17
# File 'lib/baidu_api/geocoding.rb', line 14

def setup(options = {})
  @@config = BaiduApi::Geocoding::Configuration.new(options)
  yield @@config if block_given?
end