class Spooked::Client

Constants

OPTIONS_WITH_CLASS_DEFAULT

Public Class Methods

new(**options) click to toggle source
# File lib/spooked/client.rb, line 55
def initialize(**options)
  unknown_options = options.keys - OPTIONS_WITH_CLASS_DEFAULT
  raise ArgumentError, "Unknown option key(s): #{unknown_options.join(", ")}. Valid options are: #{OPTIONS_WITH_CLASS_DEFAULT.join(", ")}." if unknown_options.any?

  OPTIONS_WITH_CLASS_DEFAULT.each do |option|
    value = options[option].nil? ? self.class.public_send(option) : options[option]
    public_send("#{option}=", value)
  end

  self
end

Protected Class Methods

default_client() click to toggle source
# File lib/spooked/client.rb, line 85
def default_client
  @default_client ||= new
end
default_client=(client) click to toggle source
# File lib/spooked/client.rb, line 89
def default_client=(client)
  @default_client = client
end

Protected Instance Methods

connection() click to toggle source
# File lib/spooked/client.rb, line 69
def connection
  @connection ||= Faraday::Connection.new(
    evaluate_option(url_base),
    params: {
      client_id:      client_id,
      client_secret:  client_secret,
    },
    &connection_builder
  )
end
evaluate_option(option) click to toggle source
# File lib/spooked/client.rb, line 80
def evaluate_option(option)
  option.is_a?(Proc) ? instance_eval(&option) : option
end