Module: PublicApi
- Included in:
- BitX, BitX::Connection
- Defined in:
- lib/public_api.rb
Instance Method Summary collapse
- #get(url, params = nil) ⇒ Object
- #orderbook(pair) ⇒ Object
- #ticker(pair) ⇒ Object
- #tickers ⇒ Object
- #trades(pair) ⇒ Object
Instance Method Details
#get(url, params = nil) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/public_api.rb', line 65 def get(url, params=nil) r = self.conn.get(url, params) if r.status != 200 raise ::BitX::Error.new("BitX error: #{r.status}") end t = JSON.parse r.body if t['error'] raise ::BitX::Error.new('BitX error: ' + t['error']) end t end |
#orderbook(pair) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/public_api.rb', line 30 def orderbook(pair) t = self.get('/api/1/orderbook', {pair: pair}) bids = [] t['bids'].each do |o| bids << { price: BigDecimal(o['price']), volume: BigDecimal(o['volume']) } end asks = [] t['asks'].each do |o| asks << { price: BigDecimal(o['price']), volume: BigDecimal(o['volume']) } end {bids: bids, asks: asks, timestamp: Time.at(t['timestamp'].to_i/1000)} end |
#ticker(pair) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/public_api.rb', line 3 def ticker(pair) t = self.get('/api/1/ticker', {pair: pair}) { pair: pair, timestamp: Time.at(t['timestamp'].to_i/1000), ask: BigDecimal(t['ask']), bid: BigDecimal(t['bid']), last: BigDecimal(t['last_trade']), volume: t['rolling_24_hour_volume'] } end |
#tickers ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/public_api.rb', line 15 def tickers tickers = [] self.get('/api/1/tickers')['tickers'].each do |t| tickers << { pair: t['pair'], timestamp: Time.at(t['timestamp'].to_i/1000), ask: BigDecimal(t['ask']), bid: BigDecimal(t['bid']), last: BigDecimal(t['last_trade']), volume: t['rolling_24_hour_volume'] } end tickers end |
#trades(pair) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/public_api.rb', line 52 def trades(pair) t = self.get('/api/1/trades', {pair: pair}) trades = [] t['trades'].each do |trade| trades << { timestamp: Time.at(trade['timestamp'].to_i/1000), price: BigDecimal(trade['price']), volume: BigDecimal(trade['volume']) } end trades end |