Class: Btce::API

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

Direct Known Subclasses

PublicAPI, TradeAPI

Constant Summary collapse

BTCE_DOMAIN =
"btc-e.com"
CURRENCIES =
%w(btc
usd
rur
ltc
nmc
eur
nvc)
CURRENCY_PAIRS =
%w(btc_usd
btc_rur
ltc_btc
ltc_usd
ltc_rur
nmc_btc
usd_rur
eur_usd
nvc_btc)
MAX_DIGITS =
{
  "btc_usd" => 3,
  "btc_rur" => 4,
  "ltc_btc" => 5, 
  "ltc_usd" => 6,
  "ltc_rur" => 4,
  "nmc_btc" => 4,
  "usd_rur" => 4,
  "eur_usd" => 4, 
  "nvc_btc" => 4
}
KEY =
YAML::load File.open 'btce-api-key.yml'

Class Method Summary collapse

Class Method Details

.get_https(url, params = nil, sign = nil) ⇒ Object

Raises:

  • (ArgumentError)


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/btce.rb', line 76

def get_https(url, params = nil, sign = nil)
  raise ArgumentError if not url.is_a? String
  uri = URI.parse url
  http = Net::HTTP.new uri.host, uri.port
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  if 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", API::KEY['key']
    request.add_field "Sign", sign
    request.set_form_data params
  end
  response = http.request request
  response.body
end

.get_json(url, params = nil, sign = nil) ⇒ Object



95
96
97
98
99
100
101
# File 'lib/btce.rb', line 95

def get_json(url, params = nil, sign = nil)
  result = get_https(url, params, sign)
  if not result.is_a? String or not result.valid_json?
    raise RuntimeError, "Server returned invalid data."
  end
  JSON.load result
end