Module: Cubits
- Extended by:
- Helpers
- Defined in:
- lib/cubits.rb,
lib/cubits/quote.rb,
lib/cubits/errors.rb,
lib/cubits/account.rb,
lib/cubits/channel.rb,
lib/cubits/helpers.rb,
lib/cubits/invoice.rb,
lib/cubits/version.rb,
lib/cubits/callback.rb,
lib/cubits/resource.rb,
lib/cubits/connection.rb,
lib/cubits/resource_collection.rb
Defined Under Namespace
Modules: Helpers Classes: Account, BadRequest, Callback, Channel, ClientError, Connection, ConnectionError, Forbidden, InsecureCallback, InternalServerError, InvalidSignature, Invoice, NotFound, Quote, Resource, ResourceCollection, ServerError, UnsupportedMediaType
Constant Summary collapse
- DEFAULT_BASE_URL =
URI.parse('https://api.cubits.com/')
- VERSION =
'0.7.0'
Class Method Summary collapse
-
.active_connection_key ⇒ String
Returns current Cubits connection key (Cubits API key).
-
.active_connection_key=(key) ⇒ Object
Sets current Cubits connection to given Cubits API key.
-
.base_url ⇒ Object
Returns current base API URL.
-
.base_url=(new_base_url) ⇒ Object
Sets new base API URL.
-
.configure(params = {}) ⇒ Object
Configure Cubits connection.
-
.connection(key = active_connection_key) ⇒ Connection
Returns configured Connection object.
-
.logger ⇒ Object
Returns current Logger object.
-
.logger=(new_logger) ⇒ Object
Sets new Logger object.
-
.reset ⇒ Object
Resets all internal states.
-
.with_connection_key(key) ⇒ Object
Sets current Cubits connection to given Cubits API key and yields given block.
Methods included from Helpers
available?, buy, sell, send_money
Class Method Details
.active_connection_key ⇒ String
Returns current Cubits connection key (Cubits API key)
51 52 53 |
# File 'lib/cubits.rb', line 51 def self.active_connection_key Thread.current[:cubits_active_connection_key] || @connections&.keys&.last end |
.active_connection_key=(key) ⇒ Object
Sets current Cubits connection to given Cubits API key
59 60 61 62 63 64 |
# File 'lib/cubits.rb', line 59 def self.active_connection_key=(key) if @connections.nil? || @connections[key].nil? fail ConnectionError, "Cubits connection is not configured for key #{key}" end Thread.current[:cubits_active_connection_key] = key end |
.base_url ⇒ Object
Returns current base API URL
92 93 94 |
# File 'lib/cubits.rb', line 92 def self.base_url @base_url ||= DEFAULT_BASE_URL end |
.base_url=(new_base_url) ⇒ Object
Sets new base API URL
100 101 102 103 104 |
# File 'lib/cubits.rb', line 100 def self.base_url=(new_base_url) new_base_url = URI.parse(new_base_url) if new_base_url.is_a?(String) fail ArgumentError, 'URI is expected as new_base_url' unless new_base_url.is_a?(URI) @base_url = new_base_url end |
.configure(params = {}) ⇒ Object
Configure Cubits connection
27 28 29 30 |
# File 'lib/cubits.rb', line 27 def self.configure(params = {}) @connections ||= {} @connections[params[:key]] = Connection.new(params) end |
.connection(key = active_connection_key) ⇒ Connection
Returns configured Connection object
39 40 41 42 43 44 |
# File 'lib/cubits.rb', line 39 def self.connection(key = active_connection_key) if @connections.nil? || @connections[key].nil? fail ConnectionError, "Cubits connection is not configured for key #{key || '(default)'}" end @connections[key] end |
.logger ⇒ Object
Returns current Logger object
80 81 82 |
# File 'lib/cubits.rb', line 80 def self.logger @logger ||= Logger.new(nil) end |
.logger=(new_logger) ⇒ Object
Sets new Logger object
86 87 88 |
# File 'lib/cubits.rb', line 86 def self.logger=(new_logger) @logger = new_logger end |
.reset ⇒ Object
Resets all internal states
108 109 110 111 |
# File 'lib/cubits.rb', line 108 def self.reset @connections = {} @logger = nil end |
.with_connection_key(key) ⇒ Object
Sets current Cubits connection to given Cubits API key and yields given block
70 71 72 73 74 75 76 |
# File 'lib/cubits.rb', line 70 def self.with_connection_key(key) connection_key_was = active_connection_key self.active_connection_key = key yield if block_given? ensure self.active_connection_key = connection_key_was end |