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 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