lib/bitcoin/candle.rb in bitcoin-api-0.1.0 vs lib/bitcoin/candle.rb in bitcoin-api-0.1.1

- old
+ new

@@ -1,14 +1,17 @@ class Bitcoin::Candle - attr_accessor :timestamp, :open, :close, :min, :max, :volume, :volumeQuote + attr_accessor :timestamp, :open, :close, :min, :max, :volume, :volumeQuote, :interval - def self.all(symbol) - data = JSON.parse(RestClient.get("#{Bitcoin::BASE}/public/candles/#{symbol}?limit=1000")) - data.map{ |candle| - Bitcoin::Candle.new_from_object(candle) - } + def display_details + puts <<-DOC + #{@timestamp} + Open: #{@open} || Close: #{@close} + Min: #{@min} || Max: #{@max} + Volume: #{@volume} || Volume Quote: #{@volumeQuote} + + DOC end def self.new_from_object(object) c = Bitcoin::Candle.new c.timestamp = Time.parse(object['timestamp']) @@ -16,20 +19,25 @@ c.close = object['close'] c.min = object['min'] c.max = object['max'] c.volume = object['volume'] c.volumeQuote = object['volumeQuote'] + #puts "candle retreived ()" c end - def display_details - puts <<-DOC - #{@timestamp} - Open: #{@open} || Close: #{@close} - Min: #{@min} || Max: #{@max} - Volume: #{@volume} || Volume Quote: #{@volumeQuote} - - DOC + def self.all(symbol) + data = JSON.parse(RestClient.get("#{Bitcoin::BASE}/public/candles/#{symbol}?limit=1000")) + data.map{ |candle| + Bitcoin::Candle.new_from_object(candle) + } end - + # returns array of candles between two datetimes + def self.new_from_range(symbol_name, timestamps, interval = '30M') + url = "#{Bitcoin::BASE}/public/candles/#{symbol_name}?limit=1000&sort=DESC" + params = "&from=#{timestamps[0]}&till=#{timestamps[1]}&period=#{interval}" + params = params.gsub(':', '%3A') + data = JSON.parse RestClient.get("#{url}#{params}") + data.map { |e| Bitcoin::Candle.new_from_object(e) } + end end