cryptocoin_fanboi 0.5.5 → 0.8.0

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