Class: Cryptoexchange::Exchanges::Ethfinex::Services::OrderBook
- Inherits:
-
Services::Market
- Object
- Services::Market
- Cryptoexchange::Exchanges::Ethfinex::Services::OrderBook
- Defined in:
- lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb
Class Method Summary collapse
Instance Method Summary collapse
- #adapt(output, market_pair) ⇒ Object
- #adapt_orders(orders, timestamp) ⇒ Object
- #fetch(market_pair) ⇒ Object
- #order_book_url(market_pair) ⇒ Object
- #split(pre_output) ⇒ Object
Methods inherited from Services::Market
Class Method Details
.supports_individual_ticker_query? ⇒ Boolean
6 7 8 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 6 def supports_individual_ticker_query? true end |
Instance Method Details
#adapt(output, market_pair) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 28 def adapt(output, market_pair) order_book = Cryptoexchange::Models::OrderBook.new = Time.now.to_i order_book.base = market_pair.base order_book.target = market_pair.target order_book.market = Ethfinex::Market::NAME order_book.asks = adapt_orders(output[1], ) order_book.bids = adapt_orders(output[0], ) order_book. = order_book.payload = output order_book end |
#adapt_orders(orders, timestamp) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 41 def adapt_orders(orders, ) orders.collect do |order_entry| Cryptoexchange::Models::Order.new(price: NumericHelper.to_d(order_entry[0]), amount: NumericHelper.to_d(order_entry[-1].abs), timestamp: ) end end |
#fetch(market_pair) ⇒ Object
10 11 12 13 14 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 10 def fetch(market_pair) pre_output = super(order_book_url(market_pair)) output = split(pre_output) adapt(output, market_pair) end |
#order_book_url(market_pair) ⇒ Object
16 17 18 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 16 def order_book_url(market_pair) "#{Cryptoexchange::Exchanges::Ethfinex::Market::API_URL}/v2/book/t#{market_pair.base}#{market_pair.target}/P0" end |
#split(pre_output) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb', line 20 def split(pre_output) output = [[], []] # output[0] = bids | output[1] = asks pre_output.map do |order| (order[-1].to_f > 0 ? output[0].push(order) : output[1].push(order)) end output end |