cryptocoin_fanboi 0.5.3 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a966d81c3eb8aaf39c4f0de065c929ffa8d9592b
4
- data.tar.gz: b9c59ed6170b4e2db5fe1652cffb20fdf21a510e
2
+ SHA256:
3
+ metadata.gz: 94385f877dd7385d9be2eab13ca0b4f329137fd8c2de80143c05949e56713d25
4
+ data.tar.gz: f0d399a1bd22e1c916700d778b4d452446e25d55e471e410b9e7510709170e34
5
5
  SHA512:
6
- metadata.gz: f3aff42b2280366a11d17bbd82a010e4ccbd933e949f9b1a0d0c4fd8342f3a938f20f0d848ef2b87daf2555ee0f2c885ed388c7873ccc325284cd55ece98a3fe
7
- data.tar.gz: 2d3a669447985e4e9b009917d68df836c31380837fb63e38515e23a3cef7763daa6f2927160bd0fe8c5cc6aa2ffde1dc4dd51d90b7478af4095d81a8c43bad3f
6
+ metadata.gz: 395757ffd85ce1f924f8d84fce773dc8324a98aae3d0c79cbeab0ee87f145c75a146266dbfb2ef4075a8f28ada829affe167132a31a4fa2fdf665bf3bd78b41e
7
+ data.tar.gz: 17ab8297a9716fd3c5c607f6251e0b9f00d09bb469c8cad0cfc2f4a50e9129d82cf7faca5383a2fe41b1da59c7d43eccaf5ffb6f8848ecfa5e9af9b1cdc0efc4
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -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,21 @@ require 'rxfhelper'
11
12
  require 'rexle'
12
13
  require 'kramdown'
13
14
  require 'justexchangerates'
14
-
15
+ require 'coinquery'
16
+
17
+ # 02-May 2021 ----
18
+ #
19
+ # public methods tested:
20
+ #
21
+ # * this_day
22
+ # * this_hour
23
+ # * this_week
24
+ # * this_month
25
+ # * past_60d
26
+ # * past_90d
27
+
28
+ # note: In order to use this gem you will need at least a
29
+ # valid "basic plan" Coinmarket API key.
15
30
 
16
31
  =begin
17
32
 
@@ -47,7 +62,7 @@ module Colour
47
62
 
48
63
  return x if x.to_s.strip.empty? or @colored == false
49
64
 
50
- s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2})
65
+ s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2.to_f})
51
66
  s = s3.length == x.to_s.length ? s3 : s3.sub(/ /,'')
52
67
 
53
68
  s[/^ *-/] ? s.red : s.green
@@ -59,26 +74,44 @@ end
59
74
 
60
75
  class CryptocoinFanboi
61
76
  include Colour
77
+ using ColouredText
62
78
 
63
79
  attr_reader :coins, :all_coins
64
80
  attr_accessor :colored
65
81
 
66
- def initialize(watch: [], ignore: [],
67
- colored: true, debug: false, filepath: '.')
82
+ def initialize(watch: [], ignore: [], colored: true, debug: false,
83
+ filepath: '.', exchangerate_key: nil, cmc_apikey: nil)
68
84
 
69
85
  @colored, @debug, @filepath = colored, debug, filepath
86
+ @exchangerate_key, @cmc_apikey = exchangerate_key, cmc_apikey
87
+
88
+ @cq = CoinQuery.new(dym: false, timeout: 7, debug: debug)
70
89
 
71
90
  @watch= watch.map(&:upcase)
72
91
  @ignore = ignore.map(&:upcase)
73
92
 
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
93
 
94
+ #@fields = %w(rank name price_usd price_btc percent_change_1h
95
+ # percent_change_24h percent_change_7d percent_change_year)
96
+
97
+ pct_fields = %w(1h 24h 7d 30d 60d 90d).map {|x| 'percent_change_' + x}
98
+ @fields = %w(price) + pct_fields
99
+
100
+ @year = Time.now.year
101
+ #@labels = %w(Rank Name USD BTC) + ['% 1hr:', '% 24hr:',
102
+ # '% 1 week:', '% ' + @year.to_s + ':']
103
+ @labels = %w(Rank Name USD) + ['% 1hr:', '% 24hr:',
104
+ '% 7d:','% 30d:','% 60d:','% 90d:']
105
+
106
+ puts 'about to fetch coinlist'.info if @debug
107
+ @coins = coins = fetch_coinlist()
108
+ puts 'coinlist fetched'.info if @debug
109
+
110
+ # The following code is commented out because it's non-essential to
111
+ # returning the current coin prices. It was intended to show yearly
112
+ # percentage returns
113
+
114
+ =begin
82
115
  # check for the local cache file containing a record of currency
83
116
  # prices from the start of the year
84
117
 
@@ -117,7 +150,7 @@ class CryptocoinFanboi
117
150
  puts '@growth: ' + @growth.inspect if @debug
118
151
 
119
152
  @coins = add_year_growth coins
120
-
153
+ =end
121
154
 
122
155
  end
123
156
 
@@ -190,7 +223,8 @@ class CryptocoinFanboi
190
223
 
191
224
  def inspect()
192
225
 
193
- c = @coins.inspect.length > 50 ? @coins.inspect[0..50] + '...' : @coins.inspect
226
+ c = @coins.inspect.length > 50 ? \
227
+ @coins.inspect[0..50] + '...' : @coins.inspect
194
228
  "#<%s:%s @coins=\"%s\ @all_coins=\"...\">" % [self.class,
195
229
  self.object_id, c]
196
230
  end
@@ -201,15 +235,16 @@ class CryptocoinFanboi
201
235
  puts 'inside find: name: ' + name.inspect
202
236
  puts 'coins: ' + @coins.inspect
203
237
  end
204
- coins.find {|coin| coin.name =~ /#{name}/i }
238
+
239
+ coins.find {|coin| coin.name =~ /#{name}/i or coin.symbol =~ /#{name}/i}
205
240
 
206
241
  end
207
242
 
208
243
  # View the coins with the largest gains in the past hour
209
244
  #
210
- def now(limit: 5, markdown: false)
245
+ def now(limit: 5, markdown: false, rank: :top)
211
246
 
212
- build_table top_coins('1h', limit: limit), markdown: markdown
247
+ build_table sort_coins('1h', limit: limit, rank: rank), markdown: markdown
213
248
 
214
249
  end
215
250
 
@@ -223,21 +258,21 @@ class CryptocoinFanboi
223
258
 
224
259
  coin = raw_coin.downcase.split.map(&:capitalize).join(' ')
225
260
 
226
- return self.coin(coin).price_usd.to_f if raw_date.nil?
261
+ return self.coin(coin).quote['USD']['price'].to_f if raw_date.nil?
227
262
  puts 'raw_date: ' + raw_date.inspect if @debug
228
263
 
229
264
  date = if raw_date.is_a? Date then
230
265
  raw_date.strftime("%Y%m%d")
231
266
  else
232
- Chronic.parse(raw_date.gsub('-',' ')).strftime("%Y%m%d")
267
+ Chronic.parse(raw_date.gsub('-',' ')).strftime("%d%m%Y")
233
268
  end
234
269
  puts 'date: ' + date.inspect if @debug
235
270
 
236
271
  # if date is today then return today's price
237
272
 
238
- if date == Date.today.strftime("%Y%m%d")
273
+ if date == Date.today.strftime("%d%m%Y")
239
274
  puts 'same day' if @debug
240
- return self.coin(coin).price_usd.to_f
275
+ return self.coin(coin).quote['USD']['price'].to_f
241
276
  end
242
277
 
243
278
 
@@ -251,11 +286,12 @@ class CryptocoinFanboi
251
286
  puts 'date: ' + date.inspect
252
287
  end
253
288
 
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
289
+ #a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
290
+ #puts 'a: ' + a.inspect if @debug
258
291
 
292
+ #r = a.any? ? a.first[:close] : self.coin(coin).quote['USD']['price'].to_f
293
+ price = @cq.historical_price coin, date
294
+ r = price ? price.to_f : self.coin(coin).quote['USD']['price'].to_f
259
295
  @history_prices[coin] ||= {}
260
296
  @history_prices[coin][date] = r
261
297
  File.write @historic_prices_file, @history_prices.to_yaml
@@ -269,6 +305,21 @@ class CryptocoinFanboi
269
305
 
270
306
  end
271
307
 
308
+ def past_60d(limit: 5, markdown: false, rank: :top)
309
+
310
+ coins = sort_coins('60d', limit: limit, rank: rank)
311
+ build_table coins, markdown: markdown
312
+
313
+ end
314
+
315
+ def past_90d(limit: 5, markdown: false, rank: :top)
316
+
317
+ coins = sort_coins('90d', limit: limit, rank: rank)
318
+ build_table coins, markdown: markdown
319
+
320
+ end
321
+
322
+
272
323
  def prices_this_year(coin)
273
324
 
274
325
  (Date.parse('1 Jan')..Date.today).map do |date|
@@ -282,7 +333,8 @@ class CryptocoinFanboi
282
333
  #
283
334
  def rates(coin='Bitcoin', currencies: %w(EUR GBP))
284
335
 
285
- jeg = JustExchangeRates.new(base: 'USD')
336
+ jeg = JustExchangeRates.new(base: 'USD', app_id: @exchangerate_key,
337
+ debug: @debug)
286
338
  usd = self.price(coin).round(2)
287
339
  ([:USD] + currencies.map(&:to_sym)).zip(
288
340
  [usd, *currencies.map {|currency| (usd * jeg.rate(currency)).round(2) }]
@@ -292,21 +344,34 @@ class CryptocoinFanboi
292
344
 
293
345
  # View the coins with the largest gains this week (past 7 days)
294
346
  #
295
- def this_week(limit: 5, markdown: false)
347
+ def this_week(limit: 5, markdown: false, rank: :top)
296
348
 
297
- coins = top_coins(limit: limit)
349
+ coins = sort_coins('7d', limit: limit, rank: rank)
298
350
  build_table coins, markdown: markdown
299
351
 
300
352
  end
301
353
 
302
354
  alias week this_week
303
355
 
356
+ # View the coins with the largest gains this week (past 7 days)
357
+ #
358
+ def this_month(limit: 5, markdown: false, rank: :top)
359
+
360
+ puts 'inside this_mponth'.info if @debug
361
+ coins = sort_coins('30d', limit: limit, rank: rank)
362
+ build_table coins, markdown: markdown
363
+
364
+ end
365
+
366
+ alias month this_month
367
+
368
+
304
369
  # View the coins with the largest gains this
305
370
  # year (since the start of the year)
306
371
  #
307
- def this_year(limit: 5, markdown: false)
372
+ def this_year(limit: 5, markdown: false, rank: :top)
308
373
 
309
- build_table top_coins('year', limit: limit), markdown: markdown
374
+ build_table sort_coins('year', limit: limit, rank: rank), markdown: markdown
310
375
 
311
376
  end
312
377
 
@@ -314,15 +379,25 @@ class CryptocoinFanboi
314
379
 
315
380
  # View the coins with the largest gains today (past 24 hours)
316
381
  #
317
- def today(limit: 5, markdown: false)
382
+ def today(limit: 5, markdown: false, rank: :top)
318
383
 
319
- build_table top_coins('24h', limit: limit), markdown: markdown
384
+ build_table sort_coins('24h', limit: limit, rank: rank), markdown: markdown
320
385
 
321
386
  end
322
387
 
323
388
  alias last_day today
324
389
  alias day today
325
390
 
391
+ def total_market_cap()
392
+
393
+ url = 'https://api.coin360.com/global/latest'
394
+ response = Excon.get(url)
395
+ h = JSON.parse(response.body)
396
+ '$' + h["total_market_cap"].round.to_s.reverse.gsub(/...(?=.)/,'\&,')\
397
+ .reverse
398
+
399
+ end
400
+
326
401
  def to_html()
327
402
 
328
403
  xpath = (5..8).map {|x| 'tbody/tr/td[' + x.to_s + ']' }.join(' | ')
@@ -337,22 +412,25 @@ class CryptocoinFanboi
337
412
 
338
413
  end
339
414
 
340
- def to_s(limit: 5, markdown: false)
415
+ def to_s(limit: 5, markdown: false, rank: :top)
341
416
 
342
417
  coins = (fetch_coinlist(limit: limit))
343
418
 
344
419
  coins2 = add_year_growth(coins)
345
420
 
346
- puts 'coins2: ' + coins2.inspect
421
+ puts ('coins2: ' + coins2.inspect).debug if @debg
347
422
 
348
423
  coins3 = coins2.map do |coin|
349
424
 
350
- puts 'coin: ' + coin.inspect if @debug
351
- @fields.map {|x| coin[x] }
352
-
425
+ puts ('coin: ' + coin.inspect).debug if @debug
426
+ a2 = %w(cmc_rank name).map {|x| coin[x]}
427
+ puts 'a2: ' + a2.inspect
428
+ a3 = @fields.map {|x| coin['quote']['USD'][x].to_f.round(2) }
429
+ puts 'a3: ' + a3.inspect
430
+ a2 + a3
353
431
  end
354
432
 
355
- puts 'coins3: ' + coins3.inspect if @debug
433
+ puts ('coins3: ' + coins3.inspect).debug if @debug
356
434
 
357
435
 
358
436
  build_table coins3, markdown: markdown
@@ -398,8 +476,8 @@ class CryptocoinFanboi
398
476
  puts 'labels: ' + labels.inspect
399
477
  end
400
478
 
401
- s = TableFormatter.new(source: source, labels: labels, markdown: markdown)\
402
- .display
479
+ s = TableFormatter.new(source: source, labels: labels, divider: '|',
480
+ markdown: markdown).display
403
481
 
404
482
  return s if @colored == false or markdown
405
483
 
@@ -409,8 +487,9 @@ class CryptocoinFanboi
409
487
 
410
488
  fields = line.split('|')
411
489
 
412
- a2 = fields[5..-2].map {|x| c(x) }
413
- (fields[0..4] + a2 + ["\n"]).join('|')
490
+ a2 = fields[4..-2].map {|x| c(x) }
491
+ puts 'at: ' + a2.inspect if @debug
492
+ (fields[0..3] + a2 + ["\n"]).join('|')
414
493
 
415
494
  end
416
495
 
@@ -419,7 +498,8 @@ class CryptocoinFanboi
419
498
 
420
499
  def fetch_coinlist(limit: nil)
421
500
 
422
- @all_coins = JSON.parse(Coinmarketcap.coins.body)\
501
+ body = CoinmarketcapLite.new(apikey: @cmc_apikey).coins.body
502
+ @all_coins = JSON.parse(body)['data']\
423
503
  .map {|x| OpenStruct.new x}
424
504
 
425
505
  if @watch.any? then
@@ -440,20 +520,22 @@ class CryptocoinFanboi
440
520
 
441
521
  coins.inject({}) do |r, coin|
442
522
 
443
- day1 = @year.to_s + '0101'
523
+ day1 = '01-01-' + @year.to_s
444
524
  puts 'coin: ' + coin.name.inspect if @debug
445
525
 
446
526
  begin
447
527
 
448
- a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
449
- day1, day1)
528
+ #a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
529
+ # day1, day1)
530
+ price = @cq.historical_price coin.symbol, day1
531
+
450
532
  rescue
451
533
  puts 'warning : ' + coin.name.inspect + ' ' + ($!).inspect
452
534
  end
453
535
 
454
- if a and a.any? then
536
+ if price then
455
537
 
456
- r.merge({coin.name => a[0][:close].to_f})
538
+ r.merge({coin.name => price.to_f})
457
539
  else
458
540
  r
459
541
  end
@@ -478,7 +560,7 @@ class CryptocoinFanboi
478
560
 
479
561
  if year_start_price then
480
562
 
481
- latest_day = coin.price_usd.to_f
563
+ latest_day = coin.quote['USD']['price'].to_f
482
564
  puts "latest_day: %s year_start: %s" % \
483
565
  [latest_day, year_start_price] if @debug
484
566
  r.merge({coin.name => (100.0 / (year_start_price /
@@ -491,10 +573,16 @@ class CryptocoinFanboi
491
573
 
492
574
  end
493
575
 
494
- def top_coins(period='7d', limit: 5)
576
+ def sort_coins(period='7d', limit: 5, rank: :top)
495
577
 
496
- a = @coins.sort_by {|x| -x['percent_change_' + period].to_f}.take(limit)
497
- a.map {|coin| @fields.map {|key| coin[key] }}
578
+ puts 'sorting coins ...'.info if @debug
579
+ puts '@coins[0]: ' + @coins[0].inspect
580
+
581
+ a = @coins.sort_by {|x| -x.quote['USD']['percent_change_' + period].to_f}
582
+ a.reverse! if rank == :bottom
583
+ a.take(limit).map do |coin|
584
+ [coin.cmc_rank, coin.name] + @fields.map {|key| coin.quote['USD'][key].round(2) }
585
+ end
498
586
 
499
587
  end
500
588
 
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.5.3
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,170 +10,155 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwMTAxMTUyOTA5WhcN
15
- MTkwMTAxMTUyOTA5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpXhDL
17
- e2JxhzdO329Vgleg5uFMyOpzvGdE0DTCxEPuJI3eLHly8LlP5L5QbL52eV5nsr0h
18
- GRrhJfyFw98UzZrLy1HQGzLakcY5Bg7F9o6WSOskpr10XCbbYDhIPkghtYfXEkPW
19
- PV8p2IU9PcSuZU4hyurz0rxiiWfm+L5I4d+ic9iKg9nuoRwF7EkAPZIa2JstFNiw
20
- jNs4b3NHM5/DsCqDT4gZ9tESIxCLXYkrhEJkfcJ2hm3O3Oqp/eitz05HzrBR9P+T
21
- K1VNjNVvwgIj6jSTxFV2UycULgPEw6mn4UF9ra0KH+id6bFNOofBiyM4K/mgKniU
22
- Yk1IoDMN39bA/9kFAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFMASrCuC4tq/MTj5dOlN+6WJ4k2vMCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAEk3jmanZhBHrp4a3GAt
26
- 0xM4MwXCT1WOhOxuRPuzmS9nGY6TPajbuqZqOkPKs3DTTjlkqjI4bcVe3Mo80mNV
27
- G+5aUDLavpo3MR6yrcfzY0jkR2c5gH818JNIGsq/aQMkm36WV9fjIkroRYIAFeh6
28
- qr6d7tVVC5iZO7Kis/rHVnl+2YbRRKRGeKpRy5xc0QLf6+Vd/+12o9XRWGuokYUF
29
- 7LC3NfVXVGoVb+BtcEDRmXje7XRl4P6YXJXmXXjRffOejiQAAYAy4RepBCerTM7X
30
- NgmsFfw10oaD3PWQ7UPxWJP14au2LUL+NGHkLrGHOMPphsZhYeXKugGO8NfcKukq
31
- fps=
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: 2018-05-02 00:00:00.000000000 Z
38
+ date: 2021-05-03 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: chronic
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.10.2
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
66
+ version: 0.1.0
69
67
  - - "~>"
70
68
  - !ruby/object:Gem::Version
71
- version: '0.10'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 0.10.2
75
- - !ruby/object:Gem::Dependency
76
- name: coinmarketcap
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.2'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 0.2.4
69
+ version: '0.1'
85
70
  type: :runtime
86
71
  prerelease: false
87
72
  version_requirements: !ruby/object:Gem::Requirement
88
73
  requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '0.2'
92
74
  - - ">="
93
75
  - !ruby/object:Gem::Version
94
- version: 0.2.4
76
+ version: 0.1.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.1'
95
80
  - !ruby/object:Gem::Dependency
96
81
  name: table-formatter
97
82
  requirement: !ruby/object:Gem::Requirement
98
83
  requirements:
99
- - - "~>"
100
- - !ruby/object:Gem::Version
101
- version: '0.5'
102
84
  - - ">="
103
85
  - !ruby/object:Gem::Version
104
- version: 0.5.0
86
+ version: 0.7.0
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.7'
105
90
  type: :runtime
106
91
  prerelease: false
107
92
  version_requirements: !ruby/object:Gem::Requirement
108
93
  requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '0.5'
112
94
  - - ">="
113
95
  - !ruby/object:Gem::Version
114
- version: 0.5.0
96
+ version: 0.7.0
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.7'
115
100
  - !ruby/object:Gem::Dependency
116
- name: rexle
101
+ name: kramdown
117
102
  requirement: !ruby/object:Gem::Requirement
118
103
  requirements:
119
- - - "~>"
120
- - !ruby/object:Gem::Version
121
- version: '1.4'
122
104
  - - ">="
123
105
  - !ruby/object:Gem::Version
124
- version: 1.4.12
106
+ version: 2.1.0
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.1'
125
110
  type: :runtime
126
111
  prerelease: false
127
112
  version_requirements: !ruby/object:Gem::Requirement
128
113
  requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.4'
132
114
  - - ">="
133
115
  - !ruby/object:Gem::Version
134
- version: 1.4.12
116
+ version: 2.1.0
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.1'
135
120
  - !ruby/object:Gem::Dependency
136
- name: kramdown
121
+ name: justexchangerates
137
122
  requirement: !ruby/object:Gem::Requirement
138
123
  requirements:
139
124
  - - "~>"
140
125
  - !ruby/object:Gem::Version
141
- version: '1.16'
126
+ version: '0.3'
142
127
  - - ">="
143
128
  - !ruby/object:Gem::Version
144
- version: 1.16.2
129
+ version: 0.3.4
145
130
  type: :runtime
146
131
  prerelease: false
147
132
  version_requirements: !ruby/object:Gem::Requirement
148
133
  requirements:
149
134
  - - "~>"
150
135
  - !ruby/object:Gem::Version
151
- version: '1.16'
136
+ version: '0.3'
152
137
  - - ">="
153
138
  - !ruby/object:Gem::Version
154
- version: 1.16.2
139
+ version: 0.3.4
155
140
  - !ruby/object:Gem::Dependency
156
- name: justexchangerates
141
+ name: coinquery
157
142
  requirement: !ruby/object:Gem::Requirement
158
143
  requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 0.2.0
159
147
  - - "~>"
160
148
  - !ruby/object:Gem::Version
161
149
  version: '0.2'
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- version: 0.2.1
165
150
  type: :runtime
166
151
  prerelease: false
167
152
  version_requirements: !ruby/object:Gem::Requirement
168
153
  requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 0.2.0
169
157
  - - "~>"
170
158
  - !ruby/object:Gem::Version
171
159
  version: '0.2'
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: 0.2.1
175
160
  description:
176
- email: james@jamesrobertson.eu
161
+ email: digital.robertson@gmail.com
177
162
  executables: []
178
163
  extensions: []
179
164
  extra_rdoc_files: []
@@ -199,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
184
  version: '0'
200
185
  requirements: []
201
186
  rubyforge_project:
202
- rubygems_version: 2.6.13
187
+ rubygems_version: 2.7.10
203
188
  signing_key:
204
189
  specification_version: 4
205
190
  summary: A coinmarketcap wrapper which makes it convenient to display the top 5 cryptocurrencies
metadata.gz.sig CHANGED
Binary file