class Cryptoexchange::Exchanges::Bgogo::Market

Constants

API_URL
NAME

Public Class Methods

pairs_fetch(endpoint) click to toggle source
# File lib/cryptoexchange/exchanges/bgogo/market.rb, line 11
def self.pairs_fetch(endpoint)
  begin
    fetch_response =
      HTTP.timeout(:write => 2, :connect => 15, :read => 18).headers(accept: 'application/json').follow.get(endpoint)
    if fetch_response.code == 200
      fetch_response.parse :json
    elsif fetch_response.code == 400
      raise Cryptoexchange::HttpBadRequestError, { response: fetch_response }
    else
      raise Cryptoexchange::HttpResponseError, { response: fetch_response }
    end
  rescue HTTP::ConnectionError => e
    raise Cryptoexchange::HttpConnectionError, { error: e, response: fetch_response }
  rescue HTTP::TimeoutError => e
    raise Cryptoexchange::HttpTimeoutError, { error: e, response: fetch_response }
  rescue JSON::ParserError => e
    raise Cryptoexchange::JsonParseError, { error: e, response: fetch_response }
  rescue TypeError => e
    raise Cryptoexchange::TypeFormatError, { error: e, response: fetch_response }
  end
end
ticker_fetch(endpoint) click to toggle source
# File lib/cryptoexchange/exchanges/bgogo/market.rb, line 33
def self.ticker_fetch(endpoint)
  LruTtlCache.ticker_cache.getset(endpoint) do
    begin
      response = HTTP.timeout(:write => 2, :connect => 15, :read => 18).headers(accept: 'application/json').follow.get(endpoint)
      if response.code == 200
        response.parse :json
      elsif response.code == 400
        raise Cryptoexchange::HttpBadRequestError, { response: response }
      else
        raise Cryptoexchange::HttpResponseError, { response: response }
      end
    rescue HTTP::ConnectionError => e
      raise Cryptoexchange::HttpConnectionError, { error: e, response: response }
    rescue HTTP::TimeoutError => e
      raise Cryptoexchange::HttpTimeoutError, { error: e, response: response }
    rescue JSON::ParserError => e
      raise Cryptoexchange::JsonParseError, { error: e, response: response }
    rescue TypeError => e
      raise Cryptoexchange::TypeFormatError, { error: e, response: response }
    end
  end
end
trade_page_url(args = {}) click to toggle source
# File lib/cryptoexchange/exchanges/bgogo/market.rb, line 7
def self.trade_page_url(args = {})
  "https://bgogo.com/exchange/#{args[:base]}/#{args[:target]}"
end