class FortyTwo::Client

Constants

API_HOST
REQUEST_CLASSES

Attributes

configuration[R]

Public Class Methods

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

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

Public Instance Methods

check_api_keys() click to toggle source
# File lib/fortytwo/client.rb, line 33
def check_api_keys
  if configuration.nil? || configuration.invalid?
    @configuration = nil
  else
    @configuration.freeze
  end
end
configure() { |configuration| ... } click to toggle source
# File lib/fortytwo/client.rb, line 27
def configure
  @configuration = Configuration.new
  yield(@configuration)
  check_api_keys
end
token() click to toggle source
# File lib/fortytwo/client.rb, line 41
def token
  return @token if instance_variable_defined?(:@token)

  check_api_keys
  api_key = @configuration.api_key
  api_secret = @configuration.api_secret
  client = OAuth2::Client.new(api_key, api_secret, site: API_HOST)
  client.client_credentials.get_token
end

Private Instance Methods

add_method(instance, method_name) click to toggle source
# File lib/fortytwo/client.rb, line 66
def add_method(instance, method_name)
  define_singleton_method(method_name) do |*args|
    instance.public_send(method_name, *args)
  end
end
create_methods_from_instance(instance) click to toggle source
# File lib/fortytwo/client.rb, line 60
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/fortytwo/client.rb, line 53
def define_request_methods
  REQUEST_CLASSES.each do |request_class|
    endpoint_instance = request_class.new(self)
    create_methods_from_instance(endpoint_instance)
  end
end