Class: Configuration

Inherits:
Object
  • Object
show all
Includes:
Coinbase::Advanced::Concerns::FilterParam
Defined in:
lib/coinbase/advanced.rb

Constant Summary collapse

DEFAULT_API_BASE_URL =
"api.coinbase.com"
DEFAULT_API_PREFIX =
"/api/v3/brokerage"
DEFAULT_LOGGER =
Logger.new($stdout)
DEFAULT_LOG_LEVEL =
Logger::INFO
DEFAULT_SENSITIVE_PARAMS =
%i[@api_key @api_secret].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Coinbase::Advanced::Concerns::FilterParam

#formatted_instance_variables, #inspect, #original_inspect, #pretty_print

Constructor Details

#initialize ⇒ Configuration

Returns a new instance of Configuration.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/coinbase/advanced.rb', line 48

def initialize
  @base_url = DEFAULT_API_BASE_URL
  @api_prefix = DEFAULT_API_PREFIX
  @timeout = 30

  @key_file = ENV.fetch("COINBASE_JSON_KEY_FILE", nil)
  @api_key = ENV.fetch("COINBASE_API_KEY", nil)
  @api_secret = ENV.fetch("COINBASE_API_SECRET", nil)&.gsub('\n', "\n")

  @logger = DEFAULT_LOGGER
  @logger.level = DEFAULT_LOG_LEVEL
  @verbose = false
  @filter_params = DEFAULT_SENSITIVE_PARAMS
end

Instance Attribute Details

#api_key ⇒ Object

Returns the value of attribute api_key.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def api_key
  @api_key
end

#api_prefix ⇒ Object

Returns the value of attribute api_prefix.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def api_prefix
  @api_prefix
end

#api_secret ⇒ Object

Returns the value of attribute api_secret.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def api_secret
  @api_secret
end

#base_url ⇒ Object

Returns the value of attribute base_url.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def base_url
  @base_url
end

#filter_params ⇒ Object

Returns the value of attribute filter_params.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def filter_params
  @filter_params
end

#key_file ⇒ Object

Returns the value of attribute key_file.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def key_file
  @key_file
end

#log_level ⇒ Object

Returns the value of attribute log_level.



46
47
48
# File 'lib/coinbase/advanced.rb', line 46

def log_level
  @log_level
end

#logger ⇒ Object

Returns the value of attribute logger.



46
47
48
# File 'lib/coinbase/advanced.rb', line 46

def logger
  @logger
end

#timeout ⇒ Object

Returns the value of attribute timeout.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def timeout
  @timeout
end

#verbose ⇒ Object

Returns the value of attribute verbose.



43
44
45
# File 'lib/coinbase/advanced.rb', line 43

def verbose
  @verbose
end

Instance Method Details

#log(message, level = :info) ⇒ Object



81
82
83
84
85
# File 'lib/coinbase/advanced.rb', line 81

def log(message, level = :info)
  return unless @logger

  @logger.send(level, message)
end

#setup {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Configuration) —

    the object that the method was called on



63
64
65
# File 'lib/coinbase/advanced.rb', line 63

def setup
  yield(self) if block_given?
end