Class: Btce::API

Inherits:
Object
  • Object
show all
Defined in:
lib/btce/api.rb

Direct Known Subclasses

PublicAPI, TradeAPI

Constant Summary collapse

BTCE_DOMAIN =
"btc-e.com"
CURRENCY_PAIRS =
%w(btc_eur
btc_rur
btc_usd
dsh_btc
eth_btc
eth_ltc
eth_rur
eth_usd
eur_rur
eur_usd
ltc_btc
ltc_eur
ltc_rur
ltc_usd
nmc_btc
nmc_usd
nvc_btc
nvc_usd
ppc_btc
ppc_usd
usd_rur)
CURRENCIES =
CURRENCY_PAIRS.map {|pair| pair.split("_")}.flatten.uniq.sort
MAX_DIGITS =
{
  'btc_eur' => 5,
  'btc_rur' => 5,
  'btc_usd' => 3,
  'dsh_btc' => 5,
  'eth_btc' => 5,
  'eth_ltc' => 5,
  'eth_rur' => 5,
  'eth_usd' => 5,
  'eur_rur' => 5,
  'eur_usd' => 5,
  'ltc_btc' => 5,
  'ltc_eur' => 3,
  'ltc_rur' => 5,
  'ltc_usd' => 6,
  'nmc_btc' => 5,
  'nmc_usd' => 3,
  'nvc_btc' => 5,
  'nvc_usd' => 3,
  'ppc_btc' => 5,
  'ppc_usd' => 3,
  'usd_rur' => 5
}

Class Method Summary collapse

Class Method Details

.get_https(opts = {}) ⇒ Object

Raises:

  • (ArgumentError)


87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/btce/api.rb', line 87

def get_https(opts={})
  raise ArgumentError if not opts[:url].is_a? String
  uri = URI.parse opts[:url]
  http = Net::HTTP.new uri.host, uri.port
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  if opts[:params].nil?
    request = Net::HTTP::Get.new uri.request_uri
  else
    # If sending params, then we want a post request for authentication.
    request = Net::HTTP::Post.new uri.request_uri
    request.add_field "Key", opts[:key]
    request.add_field "Sign", opts[:signed]
    request.set_form_data opts[:params]
  end
  response = http.request request
  response.body
end

.get_json(opts = {}) ⇒ Object



106
107
108
109
110
111
112
# File 'lib/btce/api.rb', line 106

def get_json(opts={})
  result = get_https(opts)
  if not result.is_a? String or not result.valid_json?
    raise RuntimeError, "Server returned invalid data."
  end
  JSON.load result
end