cryptocoin_fanboi 0.5.2 → 0.7.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 663140a8278d5197c7b5442ac4dc0bdcd75e7d1b
4
- data.tar.gz: a0a179f850ea98dba44ba691ce515e8e1a798e5a
2
+ SHA256:
3
+ metadata.gz: 1bfc95bacb5c4990d5e1c0dda661b8ce3208e300379c87b52f6e1e69e7581edb
4
+ data.tar.gz: 190711504307d779f0180a6e7122693290c6233b0ea2e652362cb262b40880c5
5
5
  SHA512:
6
- metadata.gz: 04ab6fb534cad796d482c497ef8b8e9a0f4b35ae9b14f4374bb2aa1acda8a37858b52d9130be5c5c630fa32603cf22d4759a1b92074037872a1c5de2647a5598
7
- data.tar.gz: 1968f4e191bbd100efe75e24da4f27fd55751eab2d61e29849f9700f7b56055ad9e2c703c3c4687699873baa832090a365b082ba39281b44eb82b5c606b0b5b4
6
+ metadata.gz: 4a569183a1bb366c18fae986cd2f182a9208ca51277eda22d4c6b0b5d71574ce8e51f2014d3120728b662afb2081808bb5341ff7b73062fde653031ca6c6e8b0
7
+ data.tar.gz: 41cd0bf2b9d4c883022c5d00102236cea7f3edc50f2c776f7db792a6d8d5988fae63a10fb192e3b8feccc5514239a4061987005465ccf87a6466bead4231c65e
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1,3 @@
1
- ��($�腍�t =s��#�7_DI����4�š\Jp!��(�����
2
- B{'��jE
3
- ���S���b5U["'frXoҦ�F��ؽ��.H�!�=M�!q����0=t)��1���-�g���w��ݭܿ�������+ib��kEkiM�ü
4
- ��0�n?�5�nf���"�O���\�m��u!>��'zq�*m�Wӕn��> MW_Zg�Q{�%���!�8W=QF5b�ܱJ)�6�u9(�m�Bw
1
+ fw`�|���+&B�0Ȥ�U+�ڂ�� ����˴qx�������
2
+ sO�� 5��2� ��vG��i��o�!�%�ϴ;�b�$�=iv��'2(�&n�ԋm�2�Ud-�@H ��}��\M�-
3
+ ��-���U$��R�pvt�K��"��9 h#yߴ@��R�[�d���a�D��#�������J_R6�s���fX��f��җ����@ʌۈ8)�\^L���U�~䇩s_,na>D$�,.�ѥ*Mm[�򗃸[������A��oc;��� ֮��f��AGڸ
data.tar.gz.sig CHANGED
Binary file
@@ -11,7 +11,21 @@ require 'rxfhelper'
11
11
  require 'rexle'
12
12
  require 'kramdown'
13
13
  require 'justexchangerates'
14
-
14
+ require 'coinquery'
15
+
16
+ # 02-May 2021 ----
17
+ #
18
+ # public methods tested:
19
+ #
20
+ # * this_day
21
+ # * this_hour
22
+ # * this_week
23
+ # * this_month
24
+ # * past_60d
25
+ # * past_90d
26
+
27
+ # note: In order to use this gem you will need at least a
28
+ # valid "basic plan" Coinmarket API key.
15
29
 
16
30
  =begin
17
31
 
@@ -47,7 +61,7 @@ module Colour
47
61
 
48
62
  return x if x.to_s.strip.empty? or @colored == false
49
63
 
50
- s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2})
64
+ s3 = (x.to_s.sub(/[\d\.\-]+/) {|s2| "%.2f" % s2.to_f})
51
65
  s = s3.length == x.to_s.length ? s3 : s3.sub(/ /,'')
52
66
 
53
67
  s[/^ *-/] ? s.red : s.green
@@ -59,26 +73,44 @@ end
59
73
 
60
74
  class CryptocoinFanboi
61
75
  include Colour
76
+ using ColouredText
62
77
 
63
78
  attr_reader :coins, :all_coins
64
79
  attr_accessor :colored
65
80
 
66
- def initialize(watch: [], ignore: [],
67
- colored: true, debug: false, filepath: '.')
81
+ def initialize(watch: [], ignore: [], colored: true, debug: false,
82
+ filepath: '.', exchangerate_key: nil, cmc_apikey: nil)
68
83
 
69
84
  @colored, @debug, @filepath = colored, debug, filepath
85
+ @exchangerate_key, @cmc_apikey = exchangerate_key, cmc_apikey
86
+
87
+ @cq = CoinQuery.new(dym: false, timeout: 7, debug: debug)
70
88
 
71
89
  @watch= watch.map(&:upcase)
72
90
  @ignore = ignore.map(&:upcase)
73
91
 
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
92
 
93
+ #@fields = %w(rank name price_usd price_btc percent_change_1h
94
+ # percent_change_24h percent_change_7d percent_change_year)
95
+
96
+ pct_fields = %w(1h 24h 7d 30d 60d 90d).map {|x| 'percent_change_' + x}
97
+ @fields = %w(price) + pct_fields
98
+
99
+ @year = Time.now.year
100
+ #@labels = %w(Rank Name USD BTC) + ['% 1hr:', '% 24hr:',
101
+ # '% 1 week:', '% ' + @year.to_s + ':']
102
+ @labels = %w(Rank Name USD) + ['% 1hr:', '% 24hr:',
103
+ '% 7d:','% 30d:','% 60d:','% 90d:']
104
+
105
+ puts 'about to fetch coinlist'.info if @debug
106
+ @coins = coins = fetch_coinlist()
107
+ puts 'coinlist fetched'.info if @debug
108
+
109
+ # The following code is commented out because it's non-essential to
110
+ # returning the current coin prices. It was intended to show yearly
111
+ # percentage returns
112
+
113
+ =begin
82
114
  # check for the local cache file containing a record of currency
83
115
  # prices from the start of the year
84
116
 
@@ -117,7 +149,7 @@ class CryptocoinFanboi
117
149
  puts '@growth: ' + @growth.inspect if @debug
118
150
 
119
151
  @coins = add_year_growth coins
120
-
152
+ =end
121
153
 
122
154
  end
123
155
 
@@ -144,9 +176,11 @@ class CryptocoinFanboi
144
176
  end
145
177
 
146
178
 
147
- def btc_price(coin, date=nil)
179
+ def btc_price(coin='Bitcoin', date=nil)
148
180
 
149
181
  usd = self.price(coin, date)
182
+ return usd if coin == 'Bitcoin'
183
+
150
184
  puts 'usd: ' + usd.inspect if @debug
151
185
  btc = self.price('bitcoin', date)
152
186
  (usd / btc)
@@ -188,7 +222,8 @@ class CryptocoinFanboi
188
222
 
189
223
  def inspect()
190
224
 
191
- c = @coins.inspect.length > 50 ? @coins.inspect[0..50] + '...' : @coins.inspect
225
+ c = @coins.inspect.length > 50 ? \
226
+ @coins.inspect[0..50] + '...' : @coins.inspect
192
227
  "#<%s:%s @coins=\"%s\ @all_coins=\"...\">" % [self.class,
193
228
  self.object_id, c]
194
229
  end
@@ -199,15 +234,16 @@ class CryptocoinFanboi
199
234
  puts 'inside find: name: ' + name.inspect
200
235
  puts 'coins: ' + @coins.inspect
201
236
  end
202
- coins.find {|coin| coin.name =~ /#{name}/i }
237
+
238
+ coins.find {|coin| coin.name =~ /#{name}/i or coin.symbol =~ /#{name}/i}
203
239
 
204
240
  end
205
241
 
206
242
  # View the coins with the largest gains in the past hour
207
243
  #
208
- def now(limit: 5, markdown: false)
244
+ def now(limit: 5, markdown: false, rank: :top)
209
245
 
210
- build_table top_coins('1h', limit: limit), markdown: markdown
246
+ build_table sort_coins('1h', limit: limit, rank: rank), markdown: markdown
211
247
 
212
248
  end
213
249
 
@@ -221,21 +257,21 @@ class CryptocoinFanboi
221
257
 
222
258
  coin = raw_coin.downcase.split.map(&:capitalize).join(' ')
223
259
 
224
- return self.coin(coin).price_usd.to_f if raw_date.nil?
260
+ return self.coin(coin).quote['USD']['price'].to_f if raw_date.nil?
225
261
  puts 'raw_date: ' + raw_date.inspect if @debug
226
262
 
227
263
  date = if raw_date.is_a? Date then
228
264
  raw_date.strftime("%Y%m%d")
229
265
  else
230
- Chronic.parse(raw_date.gsub('-',' ')).strftime("%Y%m%d")
266
+ Chronic.parse(raw_date.gsub('-',' ')).strftime("%d%m%Y")
231
267
  end
232
268
  puts 'date: ' + date.inspect if @debug
233
269
 
234
270
  # if date is today then return today's price
235
271
 
236
- if date == Date.today.strftime("%Y%m%d")
272
+ if date == Date.today.strftime("%d%m%Y")
237
273
  puts 'same day' if @debug
238
- return self.coin(coin).price_usd.to_f
274
+ return self.coin(coin).quote['USD']['price'].to_f
239
275
  end
240
276
 
241
277
 
@@ -249,11 +285,12 @@ class CryptocoinFanboi
249
285
  puts 'date: ' + date.inspect
250
286
  end
251
287
 
252
- a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
253
- puts 'a: ' + a.inspect if @debug
254
-
255
- r = a.any? ? a.first[:close] : self.coin(coin).price_usd.to_f
288
+ #a = Coinmarketcap.get_historical_price(coin.gsub(/ /,'-'), date, date)
289
+ #puts 'a: ' + a.inspect if @debug
256
290
 
291
+ #r = a.any? ? a.first[:close] : self.coin(coin).quote['USD']['price'].to_f
292
+ price = @cq.historical_price coin, date
293
+ r = price ? price.to_f : self.coin(coin).quote['USD']['price'].to_f
257
294
  @history_prices[coin] ||= {}
258
295
  @history_prices[coin][date] = r
259
296
  File.write @historic_prices_file, @history_prices.to_yaml
@@ -267,6 +304,21 @@ class CryptocoinFanboi
267
304
 
268
305
  end
269
306
 
307
+ def past_60d(limit: 5, markdown: false, rank: :top)
308
+
309
+ coins = sort_coins('60d', limit: limit, rank: rank)
310
+ build_table coins, markdown: markdown
311
+
312
+ end
313
+
314
+ def past_90d(limit: 5, markdown: false, rank: :top)
315
+
316
+ coins = sort_coins('90d', limit: limit, rank: rank)
317
+ build_table coins, markdown: markdown
318
+
319
+ end
320
+
321
+
270
322
  def prices_this_year(coin)
271
323
 
272
324
  (Date.parse('1 Jan')..Date.today).map do |date|
@@ -280,7 +332,8 @@ class CryptocoinFanboi
280
332
  #
281
333
  def rates(coin='Bitcoin', currencies: %w(EUR GBP))
282
334
 
283
- jeg = JustExchangeRates.new(base: 'USD')
335
+ jeg = JustExchangeRates.new(base: 'USD', app_id: @exchangerate_key,
336
+ debug: @debug)
284
337
  usd = self.price(coin).round(2)
285
338
  ([:USD] + currencies.map(&:to_sym)).zip(
286
339
  [usd, *currencies.map {|currency| (usd * jeg.rate(currency)).round(2) }]
@@ -290,21 +343,34 @@ class CryptocoinFanboi
290
343
 
291
344
  # View the coins with the largest gains this week (past 7 days)
292
345
  #
293
- def this_week(limit: 5, markdown: false)
346
+ def this_week(limit: 5, markdown: false, rank: :top)
294
347
 
295
- coins = top_coins(limit: limit)
348
+ coins = sort_coins('7d', limit: limit, rank: rank)
296
349
  build_table coins, markdown: markdown
297
350
 
298
351
  end
299
352
 
300
353
  alias week this_week
301
354
 
355
+ # View the coins with the largest gains this week (past 7 days)
356
+ #
357
+ def this_month(limit: 5, markdown: false, rank: :top)
358
+
359
+ puts 'inside this_mponth'.info if @debug
360
+ coins = sort_coins('30d', limit: limit, rank: rank)
361
+ build_table coins, markdown: markdown
362
+
363
+ end
364
+
365
+ alias month this_month
366
+
367
+
302
368
  # View the coins with the largest gains this
303
369
  # year (since the start of the year)
304
370
  #
305
- def this_year(limit: 5, markdown: false)
371
+ def this_year(limit: 5, markdown: false, rank: :top)
306
372
 
307
- build_table top_coins('year', limit: limit), markdown: markdown
373
+ build_table sort_coins('year', limit: limit, rank: rank), markdown: markdown
308
374
 
309
375
  end
310
376
 
@@ -312,9 +378,9 @@ class CryptocoinFanboi
312
378
 
313
379
  # View the coins with the largest gains today (past 24 hours)
314
380
  #
315
- def today(limit: 5, markdown: false)
381
+ def today(limit: 5, markdown: false, rank: :top)
316
382
 
317
- build_table top_coins('24h', limit: limit), markdown: markdown
383
+ build_table sort_coins('24h', limit: limit, rank: rank), markdown: markdown
318
384
 
319
385
  end
320
386
 
@@ -335,22 +401,25 @@ class CryptocoinFanboi
335
401
 
336
402
  end
337
403
 
338
- def to_s(limit: 5, markdown: false)
404
+ def to_s(limit: 5, markdown: false, rank: :top)
339
405
 
340
406
  coins = (fetch_coinlist(limit: limit))
341
407
 
342
408
  coins2 = add_year_growth(coins)
343
409
 
344
- puts 'coins2: ' + coins2.inspect
410
+ puts ('coins2: ' + coins2.inspect).debug if @debg
345
411
 
346
412
  coins3 = coins2.map do |coin|
347
413
 
348
- puts 'coin: ' + coin.inspect if @debug
349
- @fields.map {|x| coin[x] }
350
-
414
+ puts ('coin: ' + coin.inspect).debug if @debug
415
+ a2 = %w(cmc_rank name).map {|x| coin[x]}
416
+ puts 'a2: ' + a2.inspect
417
+ a3 = @fields.map {|x| coin['quote']['USD'][x].to_f.round(2) }
418
+ puts 'a3: ' + a3.inspect
419
+ a2 + a3
351
420
  end
352
421
 
353
- puts 'coins3: ' + coins3.inspect if @debug
422
+ puts ('coins3: ' + coins3.inspect).debug if @debug
354
423
 
355
424
 
356
425
  build_table coins3, markdown: markdown
@@ -396,8 +465,8 @@ class CryptocoinFanboi
396
465
  puts 'labels: ' + labels.inspect
397
466
  end
398
467
 
399
- s = TableFormatter.new(source: source, labels: labels, markdown: markdown)\
400
- .display
468
+ s = TableFormatter.new(source: source, labels: labels, divider: '|',
469
+ markdown: markdown).display
401
470
 
402
471
  return s if @colored == false or markdown
403
472
 
@@ -407,8 +476,9 @@ class CryptocoinFanboi
407
476
 
408
477
  fields = line.split('|')
409
478
 
410
- a2 = fields[5..-2].map {|x| c(x) }
411
- (fields[0..4] + a2 + ["\n"]).join('|')
479
+ a2 = fields[4..-2].map {|x| c(x) }
480
+ puts 'at: ' + a2.inspect if @debug
481
+ (fields[0..3] + a2 + ["\n"]).join('|')
412
482
 
413
483
  end
414
484
 
@@ -417,7 +487,8 @@ class CryptocoinFanboi
417
487
 
418
488
  def fetch_coinlist(limit: nil)
419
489
 
420
- @all_coins = JSON.parse(Coinmarketcap.coins.body)\
490
+ body = CoinmarketcapLite.new(apikey: @cmc_apikey).coins.body
491
+ @all_coins = JSON.parse(body)['data']\
421
492
  .map {|x| OpenStruct.new x}
422
493
 
423
494
  if @watch.any? then
@@ -438,20 +509,22 @@ class CryptocoinFanboi
438
509
 
439
510
  coins.inject({}) do |r, coin|
440
511
 
441
- day1 = @year.to_s + '0101'
512
+ day1 = '01-01-' + @year.to_s
442
513
  puts 'coin: ' + coin.name.inspect if @debug
443
514
 
444
515
  begin
445
516
 
446
- a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
447
- day1, day1)
517
+ #a = Coinmarketcap.get_historical_price(coin.name.gsub(/ /,'-'),
518
+ # day1, day1)
519
+ price = @cq.historical_price coin.symbol, day1
520
+
448
521
  rescue
449
522
  puts 'warning : ' + coin.name.inspect + ' ' + ($!).inspect
450
523
  end
451
524
 
452
- if a and a.any? then
525
+ if price then
453
526
 
454
- r.merge({coin.name => a[0][:close].to_f})
527
+ r.merge({coin.name => price.to_f})
455
528
  else
456
529
  r
457
530
  end
@@ -476,7 +549,7 @@ class CryptocoinFanboi
476
549
 
477
550
  if year_start_price then
478
551
 
479
- latest_day = coin.price_usd.to_f
552
+ latest_day = coin.quote['USD']['price'].to_f
480
553
  puts "latest_day: %s year_start: %s" % \
481
554
  [latest_day, year_start_price] if @debug
482
555
  r.merge({coin.name => (100.0 / (year_start_price /
@@ -489,10 +562,16 @@ class CryptocoinFanboi
489
562
 
490
563
  end
491
564
 
492
- def top_coins(period='7d', limit: 5)
565
+ def sort_coins(period='7d', limit: 5, rank: :top)
493
566
 
494
- a = @coins.sort_by {|x| -x['percent_change_' + period].to_f}.take(limit)
495
- a.map {|coin| @fields.map {|key| coin[key] }}
567
+ puts 'sorting coins ...'.info if @debug
568
+ puts '@coins[0]: ' + @coins[0].inspect
569
+
570
+ a = @coins.sort_by {|x| -x.quote['USD']['percent_change_' + period].to_f}
571
+ a.reverse! if rank == :bottom
572
+ a.take(limit).map do |coin|
573
+ [coin.cmc_rank, coin.name] + @fields.map {|key| coin.quote['USD'][key].round(2) }
574
+ end
496
575
 
497
576
  end
498
577
 
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.2
4
+ version: 0.7.0
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-01 00:00:00.000000000 Z
38
+ date: 2021-05-02 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