cryptocoin_fanboi 0.5.4 → 0.7.2

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: 27cae82a02da0d5ebc25cfcb1c4dccc11b2c7ab7
4
- data.tar.gz: 8b10cee37c9d501214baaaabae8e78e3db8b7c0b
2
+ SHA256:
3
+ metadata.gz: 5ef4bae8b92abd3289d625aa4e96b224621e7cf38b3c67ff2513afa9b8caf5c2
4
+ data.tar.gz: 672ddbe2c7bc1028ea8c22787fd964a7ef371c02fdd4daf2bc31b23ccea3f6ed
5
5
  SHA512:
6
- metadata.gz: ad884e74f813dc4d71fb08029e3a43ed895f3e2f189e267eaa9586dfd9004fb50d14bc9b0eeeaf706154eb3aa60299c4a39b523d464845b43ed3c7ae316f20b0
7
- data.tar.gz: f650d06018bad4e16eb7a0b165fdb0d2ecfe205d75ecc496b16903dd137464822180f4013f3aafa1325835771f5512a2d1f5fb66604011369ab9d676751bda7e
6
+ metadata.gz: 2d692a56d955250234354dc45215b4fc309eb0bcc710f610843f4a1e34341e26248880a0f62c20319cc31309a28c8b5a4edc537abc0c8a3e2ca3184c324ea46d
7
+ data.tar.gz: 98ea11eec9269b428b9fd935b2badbf309105c1ca0c762db494741d23adffde41244345459f3c04c0ab1fd53e8190110939cce23cb0eeed4d4681862d4b5b109
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,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
- colored: true, debug: false, filepath: '.')
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 ? @coins.inspect[0..50] + '...' : @coins.inspect
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
- coins.find {|coin| coin.name =~ /#{name}/i }
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).price_usd.to_f if raw_date.nil?
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("%Y%m%d")
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("%Y%m%d")
274
+ if date == Date.today.strftime("%d%m%Y")
239
275
  puts 'same day' if @debug
240
- return self.coin(coin).price_usd.to_f
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
- @fields.map {|x| coin[x] }
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, markdown: markdown)\
402
- .display
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[5..-2].map {|x| c(x) }
413
- (fields[0..4] + a2 + ["\n"]).join('|')
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
- @all_coins = JSON.parse(Coinmarketcap.coins.body)\
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 + '0101'
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
- day1, day1)
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 a and a.any? then
534
+ if price then
455
535
 
456
- r.merge({coin.name => a[0][:close].to_f})
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.price_usd.to_f
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
- a = @coins.sort_by {|x| -x['percent_change_' + period].to_f}
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 {|coin| @fields.map {|key| coin[key] }}
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.5.4
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
- 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-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:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.16'
152
154
  - - ">="
153
155
  - !ruby/object:Gem::Version
154
- version: 1.16.2
156
+ version: 0.2.0
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.2'
155
160
  - !ruby/object:Gem::Dependency
156
- name: justexchangerates
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: james@jamesrobertson.eu
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.6.13
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