class SoraGeocoding::Query

Attributes

opts[RW]
query[RW]
req[RW]
url[RW]

Public Class Methods

new(query, options = {}) click to toggle source
# File lib/sora_geocoding/query.rb, line 5
def initialize(query, options = {})
  self.query = query
  self.opts = configure(options)
  self.url = SoraGeocoding::Url.new(query)
  self.req = SoraGeocoding::Request.new
end

Public Instance Methods

configure(func_opts) click to toggle source
# File lib/sora_geocoding/query.rb, line 16
def configure(func_opts)
  SoraGeocoding.configure(func_opts)
end
execute() click to toggle source
# File lib/sora_geocoding/query.rb, line 20
def execute
  data = req.fetch_data(url.get)
  SoraGeocoding.log(:error, "The data could not be retrieved from #{url.site}") if data.nil?

  {
    site: url.site,
    data: data.to_s
  }
rescue StandardError
  if url.site == 'yahoo'
    initialize_geocoding
    retry
  end
  SoraGeocoding.log(:warn, 'The information could not be retrieved. Please change your address.')
end
to_s() click to toggle source
# File lib/sora_geocoding/query.rb, line 12
def to_s
  query
end

Private Instance Methods

initialize_geocoding() click to toggle source
# File lib/sora_geocoding/query.rb, line 37
def initialize_geocoding
  opts[:site] = 'geocoding'
  initialize(query, opts)
end