cryptocoin_fanboi 0.5.4 → 0.7.2
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/cryptocoin_fanboi.rb +127 -42
- metadata +80 -75
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5ef4bae8b92abd3289d625aa4e96b224621e7cf38b3c67ff2513afa9b8caf5c2
|
4
|
+
data.tar.gz: 672ddbe2c7bc1028ea8c22787fd964a7ef371c02fdd4daf2bc31b23ccea3f6ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d692a56d955250234354dc45215b4fc309eb0bcc710f610843f4a1e34341e26248880a0f62c20319cc31309a28c8b5a4edc537abc0c8a3e2ca3184c324ea46d
|
7
|
+
data.tar.gz: 98ea11eec9269b428b9fd935b2badbf309105c1ca0c762db494741d23adffde41244345459f3c04c0ab1fd53e8190110939cce23cb0eeed4d4681862d4b5b109
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/cryptocoin_fanboi.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
# file: cryptocoin_fanboi.rb
|
4
4
|
|
5
5
|
|
6
|
+
require 'excon'
|
6
7
|
require 'psych'
|
7
8
|
require 'colored'
|
8
9
|
require 'coinmarketcap'
|
@@ -11,7 +12,22 @@ require 'rxfhelper'
|
|
11
12
|
require 'rexle'
|
12
13
|
require 'kramdown'
|
13
14
|
require 'justexchangerates'
|
14
|
-
|
15
|
+
require 'coinquery'
|
16
|
+
require 'coin360api21'
|
17
|
+
|
18
|
+
# 02-May 2021 ----
|
19
|
+
#
|
20
|
+
# public methods tested:
|
21
|
+
#
|
22
|
+
# * this_day
|
23
|
+
# * this_hour
|
24
|
+
# * this_week
|
25
|
+
# * this_month
|
26
|
+
# * past_60d
|
27
|
+
# * past_90d
|
28
|
+
|
29
|
+
# note: In order to use this gem you will need at least a
|
30
|
+
# valid "basic plan" Coinmarket API key.
|
15
31
|
|
16
32
|
=begin
|
17
33
|
|
@@ -47,7 +63,7 @@ module Colour
|
|
47
63
|
|
48
64
|
return x if x.to_s.strip.empty? or @colored == false
|
49
65
|
|
50
|
-
s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2})
|
66
|
+
s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2.to_f})
|
51
67
|
s = s3.length == x.to_s.length ? s3 : s3.sub(/ /,'')
|
52
68
|
|
53
69
|
s[/^ *-/] ? s.red : s.green
|
@@ -59,26 +75,44 @@ end
|
|
59
75
|
|
60
76
|
class CryptocoinFanboi
|
61
77
|
include Colour
|
78
|
+
using ColouredText
|
62
79
|
|
63
80
|
attr_reader :coins, :all_coins
|
64
81
|
attr_accessor :colored
|
65
82
|
|
66
|
-
def initialize(watch: [], ignore: [],
|
67
|
-
|
83
|
+
def initialize(watch: [], ignore: [], colored: true, debug: false,
|
84
|
+
filepath: '.', exchangerate_key: nil, cmc_apikey: nil)
|
68
85
|
|
69
86
|
@colored, @debug, @filepath = colored, debug, filepath
|
87
|
+
@exchangerate_key, @cmc_apikey = exchangerate_key, cmc_apikey
|
88
|
+
|
89
|
+
@cq = CoinQuery.new(dym: false, timeout: 7, debug: debug)
|
70
90
|
|
71
91
|
@watch= watch.map(&:upcase)
|
72
92
|
@ignore = ignore.map(&:upcase)
|
73
93
|
|
74
|
-
@fields = %w(rank name price_usd price_btc percent_change_1h
|
75
|
-
percent_change_24h percent_change_7d percent_change_year)
|
76
|
-
|
77
|
-
@year = Time.now.year
|
78
|
-
@labels = %w(Rank Name USD BTC) + ['% 1hr:', '% 24hr:',
|
79
|
-
'% 1 week:', '% ' + @year.to_s + ':']
|
80
|
-
coins = fetch_coinlist()
|
81
94
|
|
95
|
+
#@fields = %w(rank name price_usd price_btc percent_change_1h
|
96
|
+
# percent_change_24h percent_change_7d percent_change_year)
|
97
|
+
|
98
|
+
pct_fields = %w(1h 24h 7d 30d 60d 90d).map {|x| 'percent_change_' + x}
|
99
|
+
@fields = %w(price) + pct_fields
|
100
|
+
|
101
|
+
@year = Time.now.year
|
102
|
+
#@labels = %w(Rank Name USD BTC) + ['% 1hr:', '% 24hr:',
|
103
|
+
# '% 1 week:', '% ' + @year.to_s + ':']
|
104
|
+
@labels = %w(Rank Name USD) + ['% 1hr:', '% 24hr:',
|
105
|
+
'% 7d:','% 30d:','% 60d:','% 90d:']
|
106
|
+
|
107
|
+
puts 'about to fetch coinlist'.info if @debug
|
108
|
+
@coins = coins = fetch_coinlist()
|
109
|
+
puts 'coinlist fetched'.info if @debug
|
110
|
+
|
111
|
+
# The following code is commented out because it's non-essential to
|
112
|
+
# returning the current coin prices. It was intended to show yearly
|
113
|
+
# percentage returns
|
114
|
+
|
115
|
+
=begin
|
82
116
|
# check for the local cache file containing a record of currency
|
83
117
|
# prices from the start of the year
|
84
118
|
|
@@ -117,7 +151,7 @@ class CryptocoinFanboi
|
|
117
151
|
puts '@growth: ' + @growth.inspect if @debug
|
118
152
|
|
119
153
|
@coins = add_year_growth coins
|
120
|
-
|
154
|
+
=end
|
121
155
|
|
122
156
|
end
|
123
157
|
|
@@ -190,7 +224,8 @@ class CryptocoinFanboi
|
|
190
224
|
|
191
225
|
def inspect()
|
192
226
|
|
193
|
-
c = @coins.inspect.length > 50 ?
|
227
|
+
c = @coins.inspect.length > 50 ? \
|
228
|
+
@coins.inspect[0..50] + '...' : @coins.inspect
|
194
229
|
"#<%s:%s @coins=\"%s\ @all_coins=\"...\">" % [self.class,
|
195
230
|
self.object_id, c]
|
196
231
|
end
|
@@ -201,7 +236,8 @@ class CryptocoinFanboi
|
|
201
236
|
puts 'inside find: name: ' + name.inspect
|
202
237
|
puts 'coins: ' + @coins.inspect
|
203
238
|
end
|
204
|
-
|
239
|
+
|
240
|
+
coins.find {|coin| coin.name =~ /#{name}/i or coin.symbol =~ /#{name}/i}
|
205
241
|
|
206
242
|
end
|
207
243
|
|
@@ -223,21 +259,21 @@ class CryptocoinFanboi
|
|
223
259
|
|
224
260
|
coin = raw_coin.downcase.split.map(&:capitalize).join(' ')
|
225
261
|
|
226
|
-
return self.coin(coin).
|
262
|
+
return self.coin(coin).quote['USD']['price'].to_f if raw_date.nil?
|
227
263
|
puts 'raw_date: ' + raw_date.inspect if @debug
|
228
264
|
|
229
265
|
date = if raw_date.is_a? Date then
|
230
266
|
raw_date.strftime("%Y%m%d")
|
231
267
|
else
|
232
|
-
Chronic.parse(raw_date.gsub('-',' ')).strftime("%
|
268
|
+
Chronic.parse(raw_date.gsub('-',' ')).strftime("%d%m%Y")
|
233
269
|
end
|
234
270
|
puts 'date: ' + date.inspect if @debug
|
235
271
|
|
236
272
|
# if date is today then return today's price
|
237
273
|
|
238
|
-
if date == Date.today.strftime("%
|
274
|
+
if date == Date.today.strftime("%d%m%Y")
|
239
275
|
puts 'same day' if @debug
|
240
|
-
return self.coin(coin).
|
276
|
+
return self.coin(coin).quote['USD']['price'].to_f
|
241
277
|
end
|
242
278
|
|
243
279
|
|
@@ -251,11 +287,12 @@ class CryptocoinFanboi
|
|
251
287
|
puts 'date: ' + date.inspect
|
252
288
|
end
|
253
289
|
|
254
|
-
a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
|
255
|
-
puts 'a: ' + a.inspect if @debug
|
256
|
-
|
257
|
-
r = a.any? ? a.first[:close] : self.coin(coin).price_usd.to_f
|
290
|
+
#a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
|
291
|
+
#puts 'a: ' + a.inspect if @debug
|
258
292
|
|
293
|
+
#r = a.any? ? a.first[:close] : self.coin(coin).quote['USD']['price'].to_f
|
294
|
+
price = @cq.historical_price coin, date
|
295
|
+
r = price ? price.to_f : self.coin(coin).quote['USD']['price'].to_f
|
259
296
|
@history_prices[coin] ||= {}
|
260
297
|
@history_prices[coin][date] = r
|
261
298
|
File.write @historic_prices_file, @history_prices.to_yaml
|
@@ -269,6 +306,21 @@ class CryptocoinFanboi
|
|
269
306
|
|
270
307
|
end
|
271
308
|
|
309
|
+
def past_60d(limit: 5, markdown: false, rank: :top)
|
310
|
+
|
311
|
+
coins = sort_coins('60d', limit: limit, rank: rank)
|
312
|
+
build_table coins, markdown: markdown
|
313
|
+
|
314
|
+
end
|
315
|
+
|
316
|
+
def past_90d(limit: 5, markdown: false, rank: :top)
|
317
|
+
|
318
|
+
coins = sort_coins('90d', limit: limit, rank: rank)
|
319
|
+
build_table coins, markdown: markdown
|
320
|
+
|
321
|
+
end
|
322
|
+
|
323
|
+
|
272
324
|
def prices_this_year(coin)
|
273
325
|
|
274
326
|
(Date.parse('1 Jan')..Date.today).map do |date|
|
@@ -282,7 +334,8 @@ class CryptocoinFanboi
|
|
282
334
|
#
|
283
335
|
def rates(coin='Bitcoin', currencies: %w(EUR GBP))
|
284
336
|
|
285
|
-
jeg = JustExchangeRates.new(base: 'USD'
|
337
|
+
jeg = JustExchangeRates.new(base: 'USD', app_id: @exchangerate_key,
|
338
|
+
debug: @debug)
|
286
339
|
usd = self.price(coin).round(2)
|
287
340
|
([:USD] + currencies.map(&:to_sym)).zip(
|
288
341
|
[usd, *currencies.map {|currency| (usd * jeg.rate(currency)).round(2) }]
|
@@ -294,13 +347,26 @@ class CryptocoinFanboi
|
|
294
347
|
#
|
295
348
|
def this_week(limit: 5, markdown: false, rank: :top)
|
296
349
|
|
297
|
-
coins = sort_coins(limit: limit, rank: rank)
|
350
|
+
coins = sort_coins('7d', limit: limit, rank: rank)
|
298
351
|
build_table coins, markdown: markdown
|
299
352
|
|
300
353
|
end
|
301
354
|
|
302
355
|
alias week this_week
|
303
356
|
|
357
|
+
# View the coins with the largest gains this week (past 7 days)
|
358
|
+
#
|
359
|
+
def this_month(limit: 5, markdown: false, rank: :top)
|
360
|
+
|
361
|
+
puts 'inside this_mponth'.info if @debug
|
362
|
+
coins = sort_coins('30d', limit: limit, rank: rank)
|
363
|
+
build_table coins, markdown: markdown
|
364
|
+
|
365
|
+
end
|
366
|
+
|
367
|
+
alias month this_month
|
368
|
+
|
369
|
+
|
304
370
|
# View the coins with the largest gains this
|
305
371
|
# year (since the start of the year)
|
306
372
|
#
|
@@ -323,6 +389,13 @@ class CryptocoinFanboi
|
|
323
389
|
alias last_day today
|
324
390
|
alias day today
|
325
391
|
|
392
|
+
def total_market_cap()
|
393
|
+
|
394
|
+
'$' + Coin360Api21::Global.new.latest.total_market_cap.round.to_s\
|
395
|
+
.reverse.gsub(/...(?=.)/,'\&,').reverse
|
396
|
+
|
397
|
+
end
|
398
|
+
|
326
399
|
def to_html()
|
327
400
|
|
328
401
|
xpath = (5..8).map {|x| 'tbody/tr/td[' + x.to_s + ']' }.join(' | ')
|
@@ -343,16 +416,19 @@ class CryptocoinFanboi
|
|
343
416
|
|
344
417
|
coins2 = add_year_growth(coins)
|
345
418
|
|
346
|
-
puts 'coins2: ' + coins2.inspect
|
419
|
+
puts ('coins2: ' + coins2.inspect).debug if @debg
|
347
420
|
|
348
421
|
coins3 = coins2.map do |coin|
|
349
422
|
|
350
|
-
puts 'coin: ' + coin.inspect if @debug
|
351
|
-
|
352
|
-
|
423
|
+
puts ('coin: ' + coin.inspect).debug if @debug
|
424
|
+
a2 = %w(cmc_rank name).map {|x| coin[x]}
|
425
|
+
puts 'a2: ' + a2.inspect
|
426
|
+
a3 = @fields.map {|x| coin['quote']['USD'][x].to_f.round(2) }
|
427
|
+
puts 'a3: ' + a3.inspect
|
428
|
+
a2 + a3
|
353
429
|
end
|
354
430
|
|
355
|
-
puts 'coins3: ' + coins3.inspect if @debug
|
431
|
+
puts ('coins3: ' + coins3.inspect).debug if @debug
|
356
432
|
|
357
433
|
|
358
434
|
build_table coins3, markdown: markdown
|
@@ -398,8 +474,8 @@ class CryptocoinFanboi
|
|
398
474
|
puts 'labels: ' + labels.inspect
|
399
475
|
end
|
400
476
|
|
401
|
-
s = TableFormatter.new(source: source, labels: labels,
|
402
|
-
|
477
|
+
s = TableFormatter.new(source: source, labels: labels, divider: '|',
|
478
|
+
markdown: markdown).display
|
403
479
|
|
404
480
|
return s if @colored == false or markdown
|
405
481
|
|
@@ -409,8 +485,9 @@ class CryptocoinFanboi
|
|
409
485
|
|
410
486
|
fields = line.split('|')
|
411
487
|
|
412
|
-
a2 = fields[
|
413
|
-
|
488
|
+
a2 = fields[4..-2].map {|x| c(x) }
|
489
|
+
puts 'at: ' + a2.inspect if @debug
|
490
|
+
(fields[0..3] + a2 + ["\n"]).join('|')
|
414
491
|
|
415
492
|
end
|
416
493
|
|
@@ -419,7 +496,8 @@ class CryptocoinFanboi
|
|
419
496
|
|
420
497
|
def fetch_coinlist(limit: nil)
|
421
498
|
|
422
|
-
|
499
|
+
body = CoinmarketcapLite.new(apikey: @cmc_apikey).coins.body
|
500
|
+
@all_coins = JSON.parse(body)['data']\
|
423
501
|
.map {|x| OpenStruct.new x}
|
424
502
|
|
425
503
|
if @watch.any? then
|
@@ -440,20 +518,22 @@ class CryptocoinFanboi
|
|
440
518
|
|
441
519
|
coins.inject({}) do |r, coin|
|
442
520
|
|
443
|
-
day1 = @year.to_s
|
521
|
+
day1 = '01-01-' + @year.to_s
|
444
522
|
puts 'coin: ' + coin.name.inspect if @debug
|
445
523
|
|
446
524
|
begin
|
447
525
|
|
448
|
-
a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
|
449
|
-
|
526
|
+
#a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
|
527
|
+
# day1, day1)
|
528
|
+
price = @cq.historical_price coin.symbol, day1
|
529
|
+
|
450
530
|
rescue
|
451
531
|
puts 'warning : ' + coin.name.inspect + ' ' + ($!).inspect
|
452
532
|
end
|
453
533
|
|
454
|
-
if
|
534
|
+
if price then
|
455
535
|
|
456
|
-
r.merge({coin.name =>
|
536
|
+
r.merge({coin.name => price.to_f})
|
457
537
|
else
|
458
538
|
r
|
459
539
|
end
|
@@ -478,7 +558,7 @@ class CryptocoinFanboi
|
|
478
558
|
|
479
559
|
if year_start_price then
|
480
560
|
|
481
|
-
latest_day = coin.
|
561
|
+
latest_day = coin.quote['USD']['price'].to_f
|
482
562
|
puts "latest_day: %s year_start: %s" % \
|
483
563
|
[latest_day, year_start_price] if @debug
|
484
564
|
r.merge({coin.name => (100.0 / (year_start_price /
|
@@ -493,9 +573,14 @@ class CryptocoinFanboi
|
|
493
573
|
|
494
574
|
def sort_coins(period='7d', limit: 5, rank: :top)
|
495
575
|
|
496
|
-
|
576
|
+
puts 'sorting coins ...'.info if @debug
|
577
|
+
puts '@coins[0]: ' + @coins[0].inspect
|
578
|
+
|
579
|
+
a = @coins.sort_by {|x| -x.quote['USD']['percent_change_' + period].to_f}
|
497
580
|
a.reverse! if rank == :bottom
|
498
|
-
a.take(limit).map
|
581
|
+
a.take(limit).map do |coin|
|
582
|
+
[coin.cmc_rank, coin.name] + @fields.map {|key| coin.quote['USD'][key].round(2) }
|
583
|
+
end
|
499
584
|
|
500
585
|
end
|
501
586
|
|
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.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,170 +10,175 @@ 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
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwNTAyMTcxNTQ3WhcN
|
15
|
+
MjIwNTAyMTcxNTQ3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQD1nGup
|
17
|
+
7mMwGHuKirtgJDX5vuWZIfoJX2q6HmvGlzN4X9mg0HGumdxcn8hB87fhA7ZrABke
|
18
|
+
RvddmFeXJSlZDMtQ3Wrax16yp1wRGfL0yyPcTyTSWjldIZJEb+VkmUjnvvpqZNgU
|
19
|
+
JYfD5pMw68no7Sd90aoAjPI3Col8G8WXSyZTgUb/VBTtr5F0w/S0Vq70pe1ELXax
|
20
|
+
iBKvxKStzCtAIsppWmP0qicesKH6vX2aQexnUFRRoPIYMbSuPrWv6sESSShtkm2O
|
21
|
+
UC55cjaBSuvo3puRbPWmtB3Sopu5aaWgOrBIsXG0DnT3w9qguASUx6ERbUKrUS0o
|
22
|
+
h01mNPLPq97shGMP+zQrSxwOBxSxFeBwuzoNg8fTJ4TUjCz5cbHKSQE87VDmbpte
|
23
|
+
IKnUuMQ1AleMUkId9Qu2hMCgZodNAswPhK4te6xBBo62h1ZeisShi9ZfzqQ4ZJUd
|
24
|
+
Gz77jLxRbw4ffLAakevQaYkcGkzvMxF8F4zyYvSr6XChab4ySiOoiqR44HUCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUCg7Bg911
|
26
|
+
lYjihiJmU/amUBfS5XIwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAHqoUl4+Eb0XXSoSN2kn4FK0+lwCWzvsw1no8VVvz
|
29
|
+
X4Yzcxpx076sR97xax4S6++nOnULXp0U1dh5ohHbwN96soWUbtCUGc0ATI27BWMd
|
30
|
+
rGe6jvur7Aoc2RpOYF32gOcZGScHQnvptyKFA+iV2fLeC7X1EkP9zRa8FxBatbbq
|
31
|
+
Irrofi01zMrPy2GMtbmaBDQwyEvw10Mj4zPEFRO9HchS3Ufb0XzAjf0p+XYG6GOs
|
32
|
+
HNE6h7xQL14l/H74Nj6JQksFew5MwO45kkCaenQXOt6+OaoFayyp6MXjyHXsR6k/
|
33
|
+
X3MsM9Yluc0zjhjipc6i3lyqN/OyMy3RTbi25iTPeIFyl4n0F5OR1y+DXy2ZN6Xb
|
34
|
+
jMyolu6Fvw4RyX+8S7/yxACBenRqrBgjoRfardaubu7lhZAt9mRjKApWpRnTm4pX
|
35
|
+
8apOj5Vc5mSZcvmZkImt0L0+RfWgzVjyK6LWXmWC0fkURO1c8pu+DEn2QI5HEKpD
|
36
|
+
zda3SGyo8CEr8HOwCV4H0aAY
|
32
37
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
38
|
+
date: 2021-05-04 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
|
56
|
-
name:
|
61
|
+
name: coinmarketcap_lite
|
57
62
|
requirement: !ruby/object:Gem::Requirement
|
58
63
|
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.10'
|
62
64
|
- - ">="
|
63
65
|
- !ruby/object:Gem::Version
|
64
|
-
version: 0.
|
66
|
+
version: 0.1.0
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.1'
|
65
70
|
type: :runtime
|
66
71
|
prerelease: false
|
67
72
|
version_requirements: !ruby/object:Gem::Requirement
|
68
73
|
requirements:
|
69
|
-
- - "~>"
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '0.10'
|
72
74
|
- - ">="
|
73
75
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0.
|
76
|
+
version: 0.1.0
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0.1'
|
75
80
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
81
|
+
name: table-formatter
|
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.7.0
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.7'
|
85
90
|
type: :runtime
|
86
91
|
prerelease: false
|
87
92
|
version_requirements: !ruby/object:Gem::Requirement
|
88
93
|
requirements:
|
89
|
-
- - "~>"
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '0.2'
|
92
94
|
- - ">="
|
93
95
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
96
|
+
version: 0.7.0
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0.7'
|
95
100
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
101
|
+
name: kramdown
|
97
102
|
requirement: !ruby/object:Gem::Requirement
|
98
103
|
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0.5'
|
102
104
|
- - ">="
|
103
105
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
106
|
+
version: 2.1.0
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.1'
|
105
110
|
type: :runtime
|
106
111
|
prerelease: false
|
107
112
|
version_requirements: !ruby/object:Gem::Requirement
|
108
113
|
requirements:
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0.5'
|
112
114
|
- - ">="
|
113
115
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
116
|
+
version: 2.1.0
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '2.1'
|
115
120
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
121
|
+
name: justexchangerates
|
117
122
|
requirement: !ruby/object:Gem::Requirement
|
118
123
|
requirements:
|
119
124
|
- - "~>"
|
120
125
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
126
|
+
version: '0.3'
|
122
127
|
- - ">="
|
123
128
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
129
|
+
version: 0.3.4
|
125
130
|
type: :runtime
|
126
131
|
prerelease: false
|
127
132
|
version_requirements: !ruby/object:Gem::Requirement
|
128
133
|
requirements:
|
129
134
|
- - "~>"
|
130
135
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
136
|
+
version: '0.3'
|
132
137
|
- - ">="
|
133
138
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
139
|
+
version: 0.3.4
|
135
140
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
141
|
+
name: coinquery
|
137
142
|
requirement: !ruby/object:Gem::Requirement
|
138
143
|
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '1.16'
|
142
144
|
- - ">="
|
143
145
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
146
|
+
version: 0.2.0
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0.2'
|
145
150
|
type: :runtime
|
146
151
|
prerelease: false
|
147
152
|
version_requirements: !ruby/object:Gem::Requirement
|
148
153
|
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '1.16'
|
152
154
|
- - ">="
|
153
155
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
156
|
+
version: 0.2.0
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.2'
|
155
160
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
161
|
+
name: coin360api21
|
157
162
|
requirement: !ruby/object:Gem::Requirement
|
158
163
|
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.2.0
|
159
167
|
- - "~>"
|
160
168
|
- !ruby/object:Gem::Version
|
161
169
|
version: '0.2'
|
162
|
-
- - ">="
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: 0.2.1
|
165
170
|
type: :runtime
|
166
171
|
prerelease: false
|
167
172
|
version_requirements: !ruby/object:Gem::Requirement
|
168
173
|
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 0.2.0
|
169
177
|
- - "~>"
|
170
178
|
- !ruby/object:Gem::Version
|
171
179
|
version: '0.2'
|
172
|
-
- - ">="
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: 0.2.1
|
175
180
|
description:
|
176
|
-
email:
|
181
|
+
email: digital.robertson@gmail.com
|
177
182
|
executables: []
|
178
183
|
extensions: []
|
179
184
|
extra_rdoc_files: []
|
@@ -199,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
204
|
version: '0'
|
200
205
|
requirements: []
|
201
206
|
rubyforge_project:
|
202
|
-
rubygems_version: 2.
|
207
|
+
rubygems_version: 2.7.10
|
203
208
|
signing_key:
|
204
209
|
specification_version: 4
|
205
210
|
summary: A coinmarketcap wrapper which makes it convenient to display the top 5 cryptocurrencies
|
metadata.gz.sig
CHANGED
Binary file
|