cryptocoin_fanboi 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +3 -1
- data/lib/cryptocoin_fanboi.rb +72 -5
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3929cc439847dc1e4b71b720c45584e323c8e77e
|
4
|
+
data.tar.gz: 513769689ce54d9a4c6e9f640903bea77a81cf3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8584f6c4deb8a788f89635bc3fa491121f9d9a51a827003941f309fec4dba8f41d72bc3fd62deb8b7cbc84e7fad6ebaea140c554e27bb22fc8bfc9b36d4c06b4
|
7
|
+
data.tar.gz: 809145098b26dbcd70ba37d0a77e845ba01595442b8e0ffbd1239b99a88cc5d2c29318fe2a1ab805838b0d1490c060c5f531e652fa2fe72934403497643e2297
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
8A�Hn�B]�����
|
2
|
+
���d�[�{G�mތ����S�G�o��S�F��wՎSO*�и�|uղ��-!Xs�αdq��$���m����������9�����/�+�C ��ʤ��aK�8#���j��є��� �սƘ��s�ZV�K���>��O~���4�=|O�J�G��x ��OI�=�:r��
|
3
|
+
���nU�l$��27v�7M������n*�CH�ʉ}i{�z&uZ�,�Dו�����L���Z�w��
|
data/lib/cryptocoin_fanboi.rb
CHANGED
@@ -118,10 +118,47 @@ class CryptocoinFanboi
|
|
118
118
|
|
119
119
|
end
|
120
120
|
|
121
|
+
# best coin this year so far
|
122
|
+
#
|
123
|
+
def best_coin(default_list=[])
|
124
|
+
|
125
|
+
list = if default_list.empty? then
|
126
|
+
self.coin_names(limit: 5)
|
127
|
+
else
|
128
|
+
default_list
|
129
|
+
end
|
130
|
+
|
131
|
+
a2 = list.map {|x| [x, btc_gain(x)]}
|
132
|
+
a2.max_by {|x| x[1].last}
|
133
|
+
end
|
134
|
+
|
135
|
+
def btc_gain(coin)
|
136
|
+
|
137
|
+
a = prices_this_year(coin)
|
138
|
+
r = a.min_by {|x | x[1][:btc_price]}
|
139
|
+
[r, btc_price(coin) - r[1][:btc_price]]
|
140
|
+
|
141
|
+
end
|
142
|
+
|
143
|
+
|
144
|
+
def btc_price(coin, date=nil)
|
145
|
+
|
146
|
+
usd = self.price(coin, date)
|
147
|
+
puts 'usd: ' + usd.inspect if @debug
|
148
|
+
btc = self.price('bitcoin', date)
|
149
|
+
(usd / btc)
|
150
|
+
end
|
151
|
+
|
121
152
|
def coin_abbreviations()
|
122
153
|
@coins.map {|x| "%s (%s)" % [x['name'], x['symbol']] }
|
123
154
|
end
|
124
155
|
|
156
|
+
alias abbreviations coin_abbreviations
|
157
|
+
|
158
|
+
def coin_names(limit: 10)
|
159
|
+
@coins.take(limit).map {|x| x['name']}
|
160
|
+
end
|
161
|
+
|
125
162
|
def coin(name)
|
126
163
|
self.find(name)
|
127
164
|
end
|
@@ -130,7 +167,21 @@ class CryptocoinFanboi
|
|
130
167
|
@coins.map {|x| OpenStruct.new(x) }
|
131
168
|
end
|
132
169
|
|
133
|
-
|
170
|
+
def date_range(raw_d1, raw_d2)
|
171
|
+
|
172
|
+
d1, d2 = [raw_d1, raw_d2].map do |x|
|
173
|
+
if x.is_a? Date then
|
174
|
+
x
|
175
|
+
else
|
176
|
+
Chronic.parse(x.gsub('-',' '), :context => :past).to_date
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
(d1..d2).each do |date|
|
181
|
+
yield(self, date.strftime("%d %B %Y"))
|
182
|
+
end
|
183
|
+
|
184
|
+
end
|
134
185
|
|
135
186
|
def inspect()
|
136
187
|
|
@@ -163,11 +214,18 @@ class CryptocoinFanboi
|
|
163
214
|
# returns closing price in dollars
|
164
215
|
# e.g. price('tron', '8th September 2017') #=> 0.001427
|
165
216
|
#
|
166
|
-
def price(
|
217
|
+
def price(raw_coin, raw_date=nil)
|
167
218
|
|
219
|
+
coin = raw_coin.downcase.split.map(&:capitalize).join(' ')
|
220
|
+
|
168
221
|
return self.coin(coin).price_usd.to_f if raw_date.nil?
|
169
|
-
|
170
|
-
|
222
|
+
puts 'raw_date: ' + raw_date.inspect if @debug
|
223
|
+
|
224
|
+
date = if raw_date.is_a? Date then
|
225
|
+
raw_date.strftime("%Y%m%d")
|
226
|
+
else
|
227
|
+
Chronic.parse(raw_date.gsub('-',' ')).strftime("%Y%m%d")
|
228
|
+
end
|
171
229
|
puts 'date: ' + date.inspect if @debug
|
172
230
|
|
173
231
|
# if date is today then return today's price
|
@@ -188,7 +246,7 @@ class CryptocoinFanboi
|
|
188
246
|
puts 'date: ' + date.inspect
|
189
247
|
end
|
190
248
|
|
191
|
-
a = Coinmarketcap.get_historical_price(coin, date, date)
|
249
|
+
a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
|
192
250
|
puts 'a: ' + a.inspect if @debug
|
193
251
|
|
194
252
|
r = a.any? ? a.first[:close] : self.coin(coin).price_usd.to_f
|
@@ -206,6 +264,15 @@ class CryptocoinFanboi
|
|
206
264
|
|
207
265
|
end
|
208
266
|
|
267
|
+
def prices_this_year(coin)
|
268
|
+
|
269
|
+
(Date.parse('1 Jan')..Date.today).map do |date|
|
270
|
+
|
271
|
+
[date, btc_price: btc_price(coin,date), usd_price: price(coin,date)]
|
272
|
+
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
209
276
|
# returns an array of the prices of Bitcoin in various currencies
|
210
277
|
#
|
211
278
|
def rates(coin='Bitcoin', currencies: %w(EUR GBP))
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|