class Provide::Services::Tourguide

Public Class Methods

new(scheme = 'http', host, token) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 5
def initialize(scheme = 'http', host, token)
  @scheme = scheme
  @host = host
  @token = token
end

Public Instance Methods

directions(from_latitude, from_longitude, to_latitude, to_longitude, waypoints = nil, departure = 'now', alternatives = 0) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 11
def directions(from_latitude, from_longitude, to_latitude, to_longitude, waypoints = nil, departure = 'now', alternatives = 0)
  parse client.get('directions', {
    :alternatives => alternatives,
    :departure => departure,
    :from_latitude => from_latitude,
    :from_longitude => from_longitude,
    :to_latitude => to_latitude,
    :to_longitude => to_longitude,
    :waypoints => waypoints,
  })
end
eta(from_latitude, from_longitude, to_latitude, to_longitude, waypoints = nil, departure = 'now', alternatives = 0) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 23
def eta(from_latitude, from_longitude, to_latitude, to_longitude, waypoints = nil, departure = 'now', alternatives = 0)
  parse client.get('directions/eta', {
    :alternatives => alternatives,
    :departure => departure,
    :from_latitude => from_latitude,
    :from_longitude => from_longitude,
    :to_latitude => to_latitude,
    :to_longitude => to_longitude,
    :waypoints => waypoints,
  })
end
geocode(street_number = nil, street = nil, city = nil, state = nil, postal_code = nil) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 35
def geocode(street_number = nil, street = nil, city = nil, state = nil, postal_code = nil)
  parse client.get('geocoder', {
    :street_number => street_number,
    :street => street,
    :city => city,
    :state => state,
    :postal_code => postal_code,
  })
end
matrix(origin_coords, destination_coords) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 52
def matrix(origin_coords, destination_coords)
  parse client.get('matrix', {
    :origin_coords => origin_coords,
    :destination_coords => destination_coords,
  })
end
place_details(place_id) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 59
def place_details(place_id)
  parse client.get('places', {
    :place_id => place_id,
  })
end
places_autocomplete(query, latitude, longitude, radius = 15, type = nil, components = nil) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 65
def places_autocomplete(query, latitude, longitude, radius = 15, type = nil, components = nil)
  params = {
    :q => query,
    :latitude => latitude,
    :longitude => longitude,
    :radius => radius,
  }
  params[:type] = type if type
  params[:components] = components = components if components
  parse client.get('places/autocomplete', params)
end
reverse_geocode(latitude, longitude) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 45
def reverse_geocode(latitude, longitude)
  parse client.get('geocoder', {
    :latitude => latitude,
    :longitude => longitude,
  })
end
timezones(latitude, longitude) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 77
def timezones(latitude, longitude)
  parse client.get('timezones', {
    :latitude => latitude,
    :longitude => longitude,
  })
end

Private Instance Methods

client() click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 86
def client
  @client ||= begin
    Provide::ApiClient.new(@scheme, @host, 'api/v1/', @token)
  end
end
parse(response) click to toggle source
# File lib/provide-ruby/services/tourguide.rb, line 92
def parse(response)
  begin
    body = response.code == 204 ? nil : JSON.parse(response.body)
    return response.code, response.headers, body
  rescue
    raise Exception.new({
      :code => response.code,
    })
  end
end