Class: GCoder::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/gcoder/resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Resolver

Returns a new instance of Resolver.



4
5
6
7
8
9
10
11
# File 'lib/gcoder/resolver.rb', line 4

def initialize(opts = {})
  @config = GCoder.config.merge(opts)
  if (adapter_name = @config[:storage])
    @conn = Storage[adapter_name].new(@config[:storage_config])
  else
    @conn = nil
  end
end

Instance Method Details

#[](*args) ⇒ Object



13
14
15
# File 'lib/gcoder/resolver.rb', line 13

def [](*args)
  geocode *args
end

#fetch(key) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
# File 'lib/gcoder/resolver.rb', line 23

def fetch(key)
  raise ArgumentError, 'block required' unless block_given?
  Hashie::Mash.new(
    (val = get(key)) ? Yajl::Parser.parse(val) : set(key, yield)
  )
end

#geocode(query, opts = {}) ⇒ Object



17
18
19
20
21
# File 'lib/gcoder/resolver.rb', line 17

def geocode(query, opts = {})
  fetch([query, opts].join) {
    Geocoder::Request.new(query, opts).get.as_mash
  }.results
end