class Livermore::CFResponse

Public Class Methods

new(response) click to toggle source
# File lib/livermore/cf_response.rb, line 3
def initialize(response)
  @response = response
end

Public Instance Methods

best_ask() click to toggle source
# File lib/livermore/cf_response.rb, line 7
def best_ask
  ask = @response.body['data']['asks'].first

  Order.new(fetch_args(ask).merge(type: Order::ASK))
end
best_bid() click to toggle source
# File lib/livermore/cf_response.rb, line 13
def best_bid
  bid = @response.body['data']['bids'].first

  Order.new(fetch_args(bid).merge(type: Order::BID))
end
body() click to toggle source
# File lib/livermore/cf_response.rb, line 31
def body
  @response.body
end
code() click to toggle source
# File lib/livermore/cf_response.rb, line 27
def code
  @response.code
end
fetch_args(order) click to toggle source
# File lib/livermore/cf_response.rb, line 35
def fetch_args(order)
  {
    market: order['market_name'],
    id: order['id'],
    price: order['price'].to_f,
    amount: order['size'].to_f,
    type: order['order_type']&.to_sym,
    operation: order['operation_type']&.to_sym
  }
end
open_orders() click to toggle source
# File lib/livermore/cf_response.rb, line 19
def open_orders
  open_orders = @response.body['data'].select do |order|
    order['status'] =~ /\Aopen|partially_filled\z/
  end

  open_orders.map { |order| Order.new(fetch_args(order)) }
end