cryptocoin_fanboi 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/cryptocoin_fanboi.rb +32 -20
- metadata +79 -55
- metadata.gz.sig +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5b9ac014b2f7cc7558b843bf2b7d7361263be34b3436048d574eeb2924fe0f6a
|
4
|
+
data.tar.gz: 6c7353c942ff0e1f52cd505fcdac863101c1cb831c01062ead4d88cf94ac5fb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d8820c768ed1b33ffcfdd54b249c6072d9bc6be4775b1c4d8a707f9a5f7386c13e04d426a183acfe14ecdedf372cd1045411b9fe9e25771426f2804293d875e
|
7
|
+
data.tar.gz: 131381228b4bc43b45acfad712e50eb8a119f3e7d179bbd6478dba70411be294d9d1379afb1c335c28b777b8efd25237d350eb0c949602d9005d5e0329339911
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/cryptocoin_fanboi.rb
CHANGED
@@ -47,7 +47,7 @@ module Colour
|
|
47
47
|
|
48
48
|
return x if x.to_s.strip.empty? or @colored == false
|
49
49
|
|
50
|
-
s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2})
|
50
|
+
s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2.to_f})
|
51
51
|
s = s3.length == x.to_s.length ? s3 : s3.sub(/ /,'')
|
52
52
|
|
53
53
|
s[/^ *-/] ? s.red : s.green
|
@@ -59,25 +59,32 @@ end
|
|
59
59
|
|
60
60
|
class CryptocoinFanboi
|
61
61
|
include Colour
|
62
|
+
using ColouredText
|
62
63
|
|
63
64
|
attr_reader :coins, :all_coins
|
64
65
|
attr_accessor :colored
|
65
66
|
|
66
|
-
def initialize(watch: [], ignore: [], colored: true,
|
67
|
-
|
67
|
+
def initialize(watch: [], ignore: [], colored: true, debug: false,
|
68
|
+
filepath: '.', exchangerate_key: nil, cmc_apikey: nil)
|
68
69
|
|
69
|
-
@colored, @debug, @filepath
|
70
|
-
|
70
|
+
@colored, @debug, @filepath = colored, debug, filepath
|
71
|
+
@exchangerate_key, @cmc_apikey = exchangerate_key, cmc_apikey
|
71
72
|
|
72
73
|
@watch= watch.map(&:upcase)
|
73
74
|
@ignore = ignore.map(&:upcase)
|
74
75
|
|
75
|
-
|
76
|
-
|
76
|
+
|
77
|
+
#@fields = %w(rank name price_usd price_btc percent_change_1h
|
78
|
+
# percent_change_24h percent_change_7d percent_change_year)
|
79
|
+
|
77
80
|
|
81
|
+
@fields = %w(price percent_change_1h percent_change_24h percent_change_7d)
|
82
|
+
|
78
83
|
@year = Time.now.year
|
79
|
-
|
80
|
-
|
84
|
+
#@labels = %w(Rank Name USD BTC) + ['% 1hr:', '% 24hr:',
|
85
|
+
# '% 1 week:', '% ' + @year.to_s + ':']
|
86
|
+
@labels = %w(Rank Name USD) + ['% 1hr:', '% 24hr:',
|
87
|
+
'% 1 week:']
|
81
88
|
coins = fetch_coinlist()
|
82
89
|
|
83
90
|
# check for the local cache file containing a record of currency
|
@@ -203,7 +210,8 @@ class CryptocoinFanboi
|
|
203
210
|
puts 'inside find: name: ' + name.inspect
|
204
211
|
puts 'coins: ' + @coins.inspect
|
205
212
|
end
|
206
|
-
|
213
|
+
|
214
|
+
coins.find {|coin| coin.name =~ /#{name}/i or coin.symbol =~ /#{name}/i}
|
207
215
|
|
208
216
|
end
|
209
217
|
|
@@ -225,7 +233,7 @@ class CryptocoinFanboi
|
|
225
233
|
|
226
234
|
coin = raw_coin.downcase.split.map(&:capitalize).join(' ')
|
227
235
|
|
228
|
-
return self.coin(coin).
|
236
|
+
return self.coin(coin).quote['USD']['price'].to_f if raw_date.nil?
|
229
237
|
puts 'raw_date: ' + raw_date.inspect if @debug
|
230
238
|
|
231
239
|
date = if raw_date.is_a? Date then
|
@@ -239,7 +247,7 @@ class CryptocoinFanboi
|
|
239
247
|
|
240
248
|
if date == Date.today.strftime("%Y%m%d")
|
241
249
|
puts 'same day' if @debug
|
242
|
-
return self.coin(coin).
|
250
|
+
return self.coin(coin).quote['USD']['price'].to_f
|
243
251
|
end
|
244
252
|
|
245
253
|
|
@@ -256,7 +264,7 @@ class CryptocoinFanboi
|
|
256
264
|
a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
|
257
265
|
puts 'a: ' + a.inspect if @debug
|
258
266
|
|
259
|
-
r = a.any? ? a.first[:close] : self.coin(coin).
|
267
|
+
r = a.any? ? a.first[:close] : self.coin(coin).quote['USD']['price'].to_f
|
260
268
|
|
261
269
|
@history_prices[coin] ||= {}
|
262
270
|
@history_prices[coin][date] = r
|
@@ -346,16 +354,19 @@ class CryptocoinFanboi
|
|
346
354
|
|
347
355
|
coins2 = add_year_growth(coins)
|
348
356
|
|
349
|
-
puts 'coins2: ' + coins2.inspect
|
357
|
+
puts ('coins2: ' + coins2.inspect).debug if @debg
|
350
358
|
|
351
359
|
coins3 = coins2.map do |coin|
|
352
360
|
|
353
|
-
puts 'coin: ' + coin.inspect if @debug
|
354
|
-
|
355
|
-
|
361
|
+
puts ('coin: ' + coin.inspect).debug if @debug
|
362
|
+
a2 = %w(cmc_rank name).map {|x| coin[x]}
|
363
|
+
puts 'a2: ' + a2.inspect
|
364
|
+
a3 = @fields.map {|x| coin['quote']['USD'][x] }
|
365
|
+
puts 'a3: ' + a3.inspect
|
366
|
+
a2 + a3
|
356
367
|
end
|
357
368
|
|
358
|
-
puts 'coins3: ' + coins3.inspect if @debug
|
369
|
+
puts ('coins3: ' + coins3.inspect).debug if @debug
|
359
370
|
|
360
371
|
|
361
372
|
build_table coins3, markdown: markdown
|
@@ -422,7 +433,8 @@ class CryptocoinFanboi
|
|
422
433
|
|
423
434
|
def fetch_coinlist(limit: nil)
|
424
435
|
|
425
|
-
|
436
|
+
body = CoinmarketcapLite.new(apikey: @cmc_apikey).coins.body
|
437
|
+
@all_coins = JSON.parse(body)['data']\
|
426
438
|
.map {|x| OpenStruct.new x}
|
427
439
|
|
428
440
|
if @watch.any? then
|
@@ -481,7 +493,7 @@ class CryptocoinFanboi
|
|
481
493
|
|
482
494
|
if year_start_price then
|
483
495
|
|
484
|
-
latest_day = coin.
|
496
|
+
latest_day = coin.quote['USD']['price'].to_f
|
485
497
|
puts "latest_day: %s year_start: %s" % \
|
486
498
|
[latest_day, year_start_price] if @debug
|
487
499
|
r.merge({coin.name => (100.0 / (year_start_price /
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cryptocoin_fanboi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,46 +10,51 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwNTI1MjEwNjMwWhcN
|
15
|
+
MjAwNTI0MjEwNjMwWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCptEQT
|
17
|
+
F4MA5hvbEhJDDpYgoDipAuD9EIB97C8mYQBLM7lZzBN3cmQoWYo0cwHF76/fbTbb
|
18
|
+
YSfr+PzFTyuT94kAp1Ibs1VNDMS3Fw1esjaR7dWSBO5MKrtuM3PsYZjQZlWfqY2z
|
19
|
+
4RwgG1ALNELAiFUxDWsVMYN2RaN4VEIpGnRcPSmpF9D3P3pJG5msdgmOMrExW+vF
|
20
|
+
/rtvXEkXt6yx57rSjT22HipjxWgsNDo705jLhyosoMQAhrPtgfnh3KTAAJP3ZS5+
|
21
|
+
E66fl8PSwMbqrwbEP3Jj1mWwmi3UpcFYi2ytF2MG6M9L2uf5ehzWF3nHjaxwBqCy
|
22
|
+
xf2wj8w0QWs+5Fxpym4EZN6xYm03QtNpA5wta9q1EqN/aNUYCwVPzaOqzWMrVZoe
|
23
|
+
9hv1z2406qeTfh1XgBeJQXobls742f6uVmX+Pl+tTkN5uWR2Ku9iam1rcnFxMhkC
|
24
|
+
XiLF+mK5AGANOQdz1VoY3zR4A4fUiWCKoPxNzEEyOYZhV7FodjYbyaXA2WMCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSNgqznay
|
26
|
+
GBEW3d0mwiyTZ7bYG9YwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAgIVgefTtTs+JAMIfcKVn0elK+zT1cexsvZGFdQRY
|
29
|
+
OZNrBZz3qEbjWzZjHVRqDbVM4SpsyOcUxAVRjEM/YIhcQhCmHdXW7W14/AGnGr3G
|
30
|
+
6gP9cXYrKWr+TWCRd6p/7Oc30SdxIVk1ihpbSVaWdgPItmO1rCrpOkDkXPv+H8Kf
|
31
|
+
5bCWQNNaITnGNz5Pi4JwoG3nrPOJjpKOEav5PPCGzvgFOzdt45EoqDOIOR1B7dDf
|
32
|
+
/HrSUN5Kmkhn2jrJMVThRZ4FqOQqcZYridfVI2+km/s4z+lFSz+m3pFf6jBhUiRz
|
33
|
+
UEzPGr9N97zCJfkpv98rbVTgBjixmOQ8lfL+80t69GRdOVuWgOYSRujMMwHo+V8R
|
34
|
+
JljNbD5oOMfl5PtG9kMRtQdiNAM0Ju37QO8MUcGtLqhChxBY9LnKZQPPyWuuw0t4
|
35
|
+
rf70OqfIBGSc7l8KgCsJdPq9sfGaqkwP5aJtKCMWYTPzHZ26Gl9HxOQDR/bfMZbt
|
36
|
+
jporVuRIHCzaaXjuFOXEPBUx
|
32
37
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
38
|
+
date: 2019-05-25 00:00:00.000000000 Z
|
34
39
|
dependencies:
|
35
40
|
- !ruby/object:Gem::Dependency
|
36
41
|
name: colored
|
37
42
|
requirement: !ruby/object:Gem::Requirement
|
38
43
|
requirements:
|
39
|
-
- - "
|
44
|
+
- - ">="
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: '1.2'
|
42
|
-
- - "
|
47
|
+
- - "~>"
|
43
48
|
- !ruby/object:Gem::Version
|
44
49
|
version: '1.2'
|
45
50
|
type: :runtime
|
46
51
|
prerelease: false
|
47
52
|
version_requirements: !ruby/object:Gem::Requirement
|
48
53
|
requirements:
|
49
|
-
- - "
|
54
|
+
- - ">="
|
50
55
|
- !ruby/object:Gem::Version
|
51
56
|
version: '1.2'
|
52
|
-
- - "
|
57
|
+
- - "~>"
|
53
58
|
- !ruby/object:Gem::Version
|
54
59
|
version: '1.2'
|
55
60
|
- !ruby/object:Gem::Dependency
|
@@ -76,82 +81,102 @@ dependencies:
|
|
76
81
|
name: coinmarketcap
|
77
82
|
requirement: !ruby/object:Gem::Requirement
|
78
83
|
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0.2'
|
82
84
|
- - ">="
|
83
85
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
86
|
+
version: 0.3.0
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.3'
|
85
90
|
type: :runtime
|
86
91
|
prerelease: false
|
87
92
|
version_requirements: !ruby/object:Gem::Requirement
|
88
93
|
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.3.0
|
89
97
|
- - "~>"
|
90
98
|
- !ruby/object:Gem::Version
|
91
|
-
version: '0.
|
99
|
+
version: '0.3'
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: coinmarketcap_lite
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
92
104
|
- - ">="
|
93
105
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
106
|
+
version: 0.1.0
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.1'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 0.1.0
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0.1'
|
95
120
|
- !ruby/object:Gem::Dependency
|
96
121
|
name: table-formatter
|
97
122
|
requirement: !ruby/object:Gem::Requirement
|
98
123
|
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0.5'
|
102
124
|
- - ">="
|
103
125
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
126
|
+
version: 0.7.0
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0.7'
|
105
130
|
type: :runtime
|
106
131
|
prerelease: false
|
107
132
|
version_requirements: !ruby/object:Gem::Requirement
|
108
133
|
requirements:
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0.5'
|
112
134
|
- - ">="
|
113
135
|
- !ruby/object:Gem::Version
|
114
|
-
version: 0.
|
136
|
+
version: 0.7.0
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0.7'
|
115
140
|
- !ruby/object:Gem::Dependency
|
116
141
|
name: rexle
|
117
142
|
requirement: !ruby/object:Gem::Requirement
|
118
143
|
requirements:
|
119
144
|
- - "~>"
|
120
145
|
- !ruby/object:Gem::Version
|
121
|
-
version: '1.
|
146
|
+
version: '1.5'
|
122
147
|
- - ">="
|
123
148
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
149
|
+
version: 1.5.1
|
125
150
|
type: :runtime
|
126
151
|
prerelease: false
|
127
152
|
version_requirements: !ruby/object:Gem::Requirement
|
128
153
|
requirements:
|
129
154
|
- - "~>"
|
130
155
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
156
|
+
version: '1.5'
|
132
157
|
- - ">="
|
133
158
|
- !ruby/object:Gem::Version
|
134
|
-
version: 1.
|
159
|
+
version: 1.5.1
|
135
160
|
- !ruby/object:Gem::Dependency
|
136
161
|
name: kramdown
|
137
162
|
requirement: !ruby/object:Gem::Requirement
|
138
163
|
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '1.16'
|
142
164
|
- - ">="
|
143
165
|
- !ruby/object:Gem::Version
|
144
|
-
version: 1.
|
166
|
+
version: 2.1.0
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '2.1'
|
145
170
|
type: :runtime
|
146
171
|
prerelease: false
|
147
172
|
version_requirements: !ruby/object:Gem::Requirement
|
148
173
|
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '1.16'
|
152
174
|
- - ">="
|
153
175
|
- !ruby/object:Gem::Version
|
154
|
-
version: 1.
|
176
|
+
version: 2.1.0
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '2.1'
|
155
180
|
- !ruby/object:Gem::Dependency
|
156
181
|
name: justexchangerates
|
157
182
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,7 +186,7 @@ dependencies:
|
|
161
186
|
version: '0.3'
|
162
187
|
- - ">="
|
163
188
|
- !ruby/object:Gem::Version
|
164
|
-
version: 0.3.
|
189
|
+
version: 0.3.4
|
165
190
|
type: :runtime
|
166
191
|
prerelease: false
|
167
192
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -171,7 +196,7 @@ dependencies:
|
|
171
196
|
version: '0.3'
|
172
197
|
- - ">="
|
173
198
|
- !ruby/object:Gem::Version
|
174
|
-
version: 0.3.
|
199
|
+
version: 0.3.4
|
175
200
|
description:
|
176
201
|
email: james@jamesrobertson.eu
|
177
202
|
executables: []
|
@@ -198,8 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
223
|
- !ruby/object:Gem::Version
|
199
224
|
version: '0'
|
200
225
|
requirements: []
|
201
|
-
|
202
|
-
rubygems_version: 2.6.13
|
226
|
+
rubygems_version: 3.0.1
|
203
227
|
signing_key:
|
204
228
|
specification_version: 4
|
205
229
|
summary: A coinmarketcap wrapper which makes it convenient to display the top 5 cryptocurrencies
|
metadata.gz.sig
CHANGED
@@ -1 +1,5 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
N%�Ć�@ۮUE�
|
3
|
+
x�nM �;,��W�.�#\.!�|'�nN�r(��G}��λ���|�ߔ�V7�
|
4
|
+
��*��C�=;>�:������An�<��خ[�Xb"�w��-��؉BϺ�}m������L��F�S�ژIY�^SU�����R�rj�9x�fy��Y(��Ĩ�����0Gů��"��#7![�Y����5%&Uf�
|
5
|
+
�H�}H4�"�^�Dn��,��r�������&�z�
|