class UberCar::Client

Constants

REQUEST_CLASSES

Attributes

configuration[R]
session[RW]

Public Class Methods

new(options = nil) click to toggle source
# File lib/uber/client.rb, line 14
def initialize(options = nil)
  @configuration = nil
  define_request_methods

  unless options.nil?
    @configuration = Configuration.new(options)
    check_api_keys
  end
end

Public Instance Methods

add_method(instance, method_name) click to toggle source
# File lib/uber/client.rb, line 46
def add_method(instance, method_name)
  define_singleton_method(method_name) do |*args|
    instance.public_send(method_name, *args)
  end
end
check_api_keys() click to toggle source
# File lib/uber/client.rb, line 24
def check_api_keys
  if configuration.nil? || !configuration.valid?
    @configuration = nil
    raise Error::NoApiKeys
  else
    @configuration.freeze
  end
end
create_methods_from_instance(instance) click to toggle source
# File lib/uber/client.rb, line 40
def create_methods_from_instance(instance)
  instance.public_methods(false).each do |method_name|
    add_method(instance, method_name)
  end
end
define_request_methods() click to toggle source
# File lib/uber/client.rb, line 33
def define_request_methods
  REQUEST_CLASSES.each do |request_class|
    operations_instance = request_class.new(self)
    create_methods_from_instance(operations_instance)
  end
end