class TripAdvisor::API

Attributes

api_key[RW]
base_url[RW]
verbose[W]

Public Class Methods

new(options={}) click to toggle source
# File lib/trip_advisor/api.rb, line 6
def initialize(options={})
  require 'rest-client'
  require 'addressable/uri'
  require 'oj'

  self.api_key = options[:api_key]
  self.base_url = options[:base_url] || ENV['TRIPADVISOR_API_BASE_URL'] || 'https://www.tripadvisor.com/api/internal/1.0/'
  raise "API Key cannot be nil" unless api_key
end

Public Instance Methods

base_url=(base_url) click to toggle source
# File lib/trip_advisor/api.rb, line 16
def base_url=(base_url)
  @base_url = base_url.is_a?(String) ? Addressable::URI.parse(base_url) : base_url
end
get(method, params = {}) click to toggle source
# File lib/trip_advisor/api.rb, line 33
def get(method, params = {})    
  query_string = "?%s" % Addressable::URI.form_encode(params.merge('key' => api_key))
  url = Addressable::URI.join(base_url, method.to_s, query_string)
  puts_verbose("GET URL '#{url}'")
  RestClient.get(url.to_s)
end
get_flights_locales() click to toggle source
# File lib/trip_advisor/api.rb, line 25
def get_flights_locales
  get_locales.select { |locale| locale['is_mobile_flights_enabled'] == 'true' }
end
get_locales() click to toggle source
# File lib/trip_advisor/api.rb, line 20
def get_locales
  response = get(:locales)
  Oj.load(response)['data']
end
verbose?() click to toggle source
# File lib/trip_advisor/api.rb, line 29
def verbose?
  @verbose
end

Private Instance Methods

puts_verbose(string) click to toggle source
# File lib/trip_advisor/api.rb, line 41
def puts_verbose(string)
  puts(string) if verbose?
end