Sha256: b70b6eb392e77700033ee4cd92946648194dc66018f5735f4f0bea454facccbd

Contents?: true

Size: 978 Bytes

Versions: 2

Compression:

Stored size: 978 Bytes

Contents

# frozen_string_literal: true

module Mcoin
  module Market
    # :nodoc:
    class Kraken < Base
      # rubocop:disable Metrics/LineLength
      ENDPOINT = 'https://api.kraken.com/0/public/Ticker?pair=%<type>s%<currency>s'

      def watch(type, currency)
        type = swap_btc(type.to_s.upcase)
        super
      end

      private

      def build_ticker(pair, response)
        return if response['result'].nil?

        response = response.dig('result', "X#{pair[:type]}Z#{pair[:currency]}")
        Data::Ticker.new(
          :Kraken,
          swap_btc(pair[:type]), pair[:currency],
          last: response['c'][0],
          ask: response['a'][0], bid: response['b'][0],
          low: response['l'][1], high: response['h'][1],
          volume: response['v'][1],
          timestamp: Time.now.to_i
        )
      end

      def swap_btc(type)
        return 'BTC' if type == 'XBT'
        return 'XBT' if type == 'BTC'
        type
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mcoin-0.6.1 lib/mcoin/market/kraken.rb
mcoin-0.6.0 lib/mcoin/market/kraken.rb