class BaremetricsAPI::Client
Attributes
configuration[R]
Public Class Methods
new(options = nil)
click to toggle source
# File lib/baremetrics_api/client.rb, line 17 def initialize(options = nil) @configuration = nil append_request_methods_to_class return if options.nil? @configuration = Configuration.new(options) ensure_valid_configuration end
Public Instance Methods
configure() { |configuration| ... }
click to toggle source
Configure the API client @yield [Configuration] the configuration @example Basic configuration
BaremetricsAPI.client.configure do |config| config.api_key = 'test123' config.response_limit = '30' end
# File lib/baremetrics_api/client.rb, line 35 def configure raise Error::AlreadyConfigured unless @configuration.nil? @configuration = Configuration.new yield(@configuration) ensure_valid_configuration end
connection()
click to toggle source
Returns the raw Faraday
connection configured using the current configuration
# File lib/baremetrics_api/client.rb, line 45 def connection ensure_valid_configuration host = configuration.sandbox ? Constants::SANDBOX_API_HOST : Constants::API_HOST Faraday.new(host, headers: { authorization: "Bearer #{configuration.api_key}", content_type: 'application/json', accept: 'application/json' }) do |f| f.request :json f.response :logger if configuration.log_traffic f.use Faraday::RateChecker f.adapter :httpclient end end
Private Instance Methods
add_method(instance, method_name)
click to toggle source
# File lib/baremetrics_api/client.rb, line 88 def add_method(instance, method_name) define_singleton_method(method_name) do |*args| instance.public_send(method_name, *args) end end
append_request_methods_to_class()
click to toggle source
The methods below are responsible for appending methods from the endpoint classes onto the client. This allows for simple interaction with the gem. For example: client.retrieve_account instead of BaremetricsAPI::Endpoint::Account.new(client)
.retrieve_account
# File lib/baremetrics_api/client.rb, line 75 def append_request_methods_to_class Constants::ENDPOINT_CLASSES.each do |endpoint_class| endpoint_instance = endpoint_class.new(self) create_methods_from_instance(endpoint_instance) end end
create_methods_from_instance(instance)
click to toggle source
# File lib/baremetrics_api/client.rb, line 82 def create_methods_from_instance(instance) instance.public_methods(false).each do |method_name| add_method(instance, method_name) end end
ensure_valid_configuration()
click to toggle source
# File lib/baremetrics_api/client.rb, line 58 def ensure_valid_configuration if configuration.nil? || !configuration.valid? # nil out the configuration so we can reconfigure @configuration = nil raise Error::MissingConfigurationKeys else # Lock in the configuration so it can't be changed during app usage @configuration.freeze end end