Sha256: 7de453562d2b72c142dcf8b0f3129504cd7574416a9742cc173f3be3759489d3

Contents?: true

Size: 975 Bytes

Versions: 8

Compression:

Stored size: 975 Bytes

Contents

# frozen_string_literal: true

module Mcoin
  module Data
    # :nodoc:
    class Ticker
      attr_reader :market, :type, :currency
      attr_accessor :last, :ask, :bid, :low, :high, :volume, :timestamp

      def initialize(market, type, currency, data = {})
        @market = market
        @type = type
        @currency = currency
        data.each do |key, value|
          send("#{key}=", value)
        end
      end

      def time
        Time.at(timestamp.to_i).to_s
      end

      def to_influx
        tags = { type: @type, currency: @currency, market: @market }
        values = {
          last: @last,
          ask: @ask, bid: @bid,
          low: @low, high: @high,
          volume: @volume
        }
        "prices,#{tags.map { |t| t.join('=') }.join(',')} " \
        "#{values.map { |v| v.join('=') }.join(',')} #{influx_time}"
      end

      private

      def influx_time
        (timestamp.to_f * (10**9)).to_i.to_s
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mcoin-0.6.1 lib/mcoin/data/ticker.rb
mcoin-0.6.0 lib/mcoin/data/ticker.rb
mcoin-0.5.2 lib/mcoin/data/ticker.rb
mcoin-0.5.1 lib/mcoin/data/ticker.rb
mcoin-0.5.0 lib/mcoin/data/ticker.rb
mcoin-0.4.0 lib/mcoin/data/ticker.rb
mcoin-0.3.0 lib/mcoin/data/ticker.rb
mcoin-0.2.1 lib/mcoin/data/ticker.rb