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