Sha256: 507661cee5b6616ab80265dcbb712cb1cff3e1aadaf564dcb4e7d8c86405823c

Contents?: true

Size: 877 Bytes

Versions: 3

Compression:

Stored size: 877 Bytes

Contents

require 'active_support/inflector'
require 'base64'
require 'securerandom'
require 'addressabler'
require 'httparty'
require 'hashie'

module KrakenClient
  class Application

    def initialize(params)
      set_config(params)
    end

    def public(options = {})
      ::KrakenClient::Endpoints::Public.new(config, options)
    end

    def private(options = {})
      requires_api_keys

      ::KrakenClient::Endpoints::Private.new(config, options)
    end

    def config
      @config ||= ::KrakenClient.config.dup
    end

    private

    def requires_api_keys
      return unless api_keys_missing?

      fail KrakenClient::MissingApiKeys, 'This feature requires API credentials.'
    end

    def api_keys_missing?
      !(config.api_key && config.api_secret)
    end

    def set_config(params)
      params.each { |k, v| config.send("#{k}=", v) }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kraken_client-1.1.5 lib/kraken_client/application.rb
kraken_client-1.1.4 lib/kraken_client/application.rb
kraken_client-1.1.3 lib/kraken_client/application.rb