cryptocoin_fanboi 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|