ctfc 0.3.1 → 0.4.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 +4 -4
- data/LICENSE +6 -0
- data/README.md +108 -64
- data/bin/ctfc +28 -11
- data/ctfc.gemspec +21 -8
- data/lib/ctfc/base.rb +25 -17
- data/lib/ctfc/version.rb +2 -1
- data/lib/ctfc.rb +2 -0
- metadata +31 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 409d75b59775b440b646f56056d957339253c550befff121d954373b4e26634f
|
4
|
+
data.tar.gz: 5c11ef13d7da7fb6dcfac08b0985620d9104100db0851a3760066d08b261d84b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a6011b38fb81898fae7a59d54e512104b7e8bee9f15d38d5f716d6680a62bf07e6beb6d67615c4486bb971f2ac8db8c9652ceb7f0328145f484e36e6ee362ea
|
7
|
+
data.tar.gz: c2cecff14b934c6cfb467933528329be3ad79ed5e5a5205a4448e587d7d2f1a185e6c10e24d858dc6f76b2e019a9242f8d7d6e13a516d71535f0819b6ce540e6
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,19 +1,29 @@
|
|
1
|
-
|
1
|
+
[**NOTE:**](https://www.github.com/alx3dev/ctfc/LICENSE_DEPENDENCIES.md)
|
2
|
+
>Removed gem `colorize` to allow **MIT** license.
|
3
|
+
>All comits from `v-0.4.0` must be signed and tagged **verified**.
|
4
|
+
|
2
5
|
|
6
|
+
# About
|
3
7
|
Convert any crypto to fiat currency, gather all data and/or save in `.csv` table.
|
4
8
|
For now only prices are printed/saved, while all data remain easily accessible from variable (for developers).
|
5
9
|
|
6
10
|
|
7
11
|
# How to install
|
12
|
+
Make sure you have ruby and git installed
|
8
13
|
|
9
|
-
|
10
|
-
|
14
|
+
Install from source:
|
11
15
|
```bash
|
12
16
|
git clone https://github.com/alx3dev/ctfc.git
|
13
17
|
cd ctfc && bundle install
|
14
18
|
```
|
15
|
-
|
19
|
+
|
20
|
+
Install from rubygems:
|
21
|
+
|
22
|
+
```bash
|
23
|
+
gem install ctfc
|
24
|
+
```
|
16
25
|
# How to run
|
26
|
+
- **Read documentation on:** https://rubydoc.info/gems/ctfc/CTFC/Data
|
17
27
|
|
18
28
|
```bash
|
19
29
|
ruby bin/ctfc fiat_1 fiat_2 fiat_3
|
@@ -21,113 +31,147 @@ ruby bin/ctfc fiat_1 fiat_2 fiat_3
|
|
21
31
|
|
22
32
|
This command also accept multiple arguments:
|
23
33
|
|
24
|
-
- `--no-save` -
|
25
|
-
- `--no-print` -
|
26
|
-
- `--coins` -
|
27
|
-
- `--
|
34
|
+
- `--no-save` - do not save `.csv.` output
|
35
|
+
- `--no-print` - do not print terminal output
|
36
|
+
- `--coins` - coins to scrap (default: BTC, LTC, XMR, ETH, BCH, ZEC )
|
37
|
+
- `--loop` - repeat script N times (default 1)
|
38
|
+
- `--wait` - wait N seconds between loops (default 0)
|
39
|
+
- `--help` - help menu
|
28
40
|
|
29
41
|
|
30
42
|
# Script Examples
|
31
|
-
|
32
43
|
1 - Run script without arguments (default options)
|
33
44
|
|
34
|
-
|
45
|
+
```ruby
|
35
46
|
ruby bin/ctfc
|
36
47
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
48
|
+
=> return:
|
49
|
+
print EUR rates for default coins (BTC, LTC, XMR, ETH, BCH, ZEC)
|
50
|
+
do not save '.csv' table
|
51
|
+
```
|
41
52
|
|
42
53
|
|
43
54
|
2 - Add fiat currencies as arguments
|
44
55
|
|
45
|
-
```
|
56
|
+
```ruby
|
46
57
|
ruby bin/ctfc eur usd rsd
|
47
58
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
59
|
+
=> return:
|
60
|
+
print EUR, USD, RSD rates for default coins
|
61
|
+
save data in '.csv' table with pattern: 'crypto_#{CURRENCY}.csv'
|
62
|
+
-> './crypto_eur.csv', './crypto_usd.csv', './crypto_rsd.csv'
|
52
63
|
```
|
53
64
|
|
54
|
-
3 - Use `--no-save
|
65
|
+
3 - Use `--no-save`, `--no-print`, `--loop`, `--wait`
|
55
66
|
|
56
|
-
```
|
67
|
+
```ruby
|
57
68
|
ruby bin/ctfc eur --no-print --coins btc xmr ltc
|
58
69
|
|
59
|
-
|
60
|
-
|
61
|
-
|
70
|
+
=> return:
|
71
|
+
save EUR rates for BTC, XMR and LTC
|
72
|
+
do not print output
|
62
73
|
|
63
74
|
|
64
75
|
ruby bin/ctfc rsd --no-save --coins btc xmr
|
65
76
|
|
66
|
-
|
67
|
-
|
68
|
-
|
77
|
+
=> return:
|
78
|
+
print RSD rates for BTC and XMR
|
79
|
+
|
80
|
+
|
81
|
+
# added in version 0.4.0
|
82
|
+
ruby bin/ctfc rsd --no-print --loop 1440 --wait 60
|
83
|
+
|
84
|
+
=> return:
|
85
|
+
save RSD rates without print, run each minute for 24 hours
|
69
86
|
```
|
70
87
|
|
71
88
|
|
72
89
|
# Developer Examples
|
73
|
-
|
74
|
-
|
75
90
|
```ruby
|
76
|
-
# define coins to scrap
|
91
|
+
# define coins to scrap
|
77
92
|
COINS = %w[ BTC XMR LTC ETH ]
|
78
93
|
|
79
|
-
# initialize Data class
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
=> #<CTFC::Data:0x000055715a6ce898 @coins=["BTC", "LTC", "XMR", "ETH", "BCH", "ZEC"], @currency="EUR", @print=true, @save=false>
|
94
|
+
# initialize Data class
|
95
|
+
@data = Ctfc.new :eur, save: false, print: false, coins: COINS
|
96
|
+
=> return Ctfc object to work with
|
97
|
+
-> #<Ctfc:0x000055b5c8b61a38 @coins=["BTC", "LTC", "XMR", "ETH", "BCH", "ZEC"], @fiat="EUR", @print=true, @save=true>
|
84
98
|
|
85
|
-
# execute request
|
99
|
+
# execute request
|
86
100
|
@data.get
|
87
|
-
|
88
|
-
|
101
|
+
=> return Hash with upcase string coins as keys, and float prices
|
102
|
+
-> {"BTC"=>36760.11, "XMR"=>169.55, "LTC"=>114.4, "ETH"=>2746.22}
|
89
103
|
|
90
|
-
# now you can use ::Data instance methods
|
104
|
+
# now you can use ::Data instance methods
|
91
105
|
@data.response
|
92
|
-
|
93
|
-
|
94
|
-
|
106
|
+
=> return RestClient response to cryptocomare API
|
107
|
+
-> <RestClient::Response 200 "{\"RAW\":{\"BT...">
|
108
|
+
|
109
|
+
# check request url
|
95
110
|
@data.url
|
96
|
-
|
97
|
-
|
98
|
-
|
111
|
+
=> return Cryptocompare API url
|
112
|
+
-> "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTC&fsyms=LTC&fsyms=XMR&fsyms=ETH&fsyms=BCH&fsyms=ZEC&tsyms=EUR"
|
113
|
+
|
114
|
+
# name of csv table (saved in working directory)
|
99
115
|
@data.table
|
100
|
-
|
101
|
-
|
102
|
-
|
116
|
+
=> return '.csv' table name
|
117
|
+
-> 'ctfc_eur.csv'
|
118
|
+
|
119
|
+
# array of coins to work with
|
103
120
|
@data.coins
|
104
|
-
|
105
|
-
|
106
|
-
|
121
|
+
=> return coins for scrap, also allow setter method @data.coins = [...]
|
122
|
+
-> ['BTC', 'XMR', 'LTC', 'ETH']
|
123
|
+
|
124
|
+
# get all data about all coins (json api response)
|
107
125
|
@data.data
|
108
|
-
|
109
|
-
=>
|
126
|
+
=> return all data returned by cryptocompare API
|
127
|
+
-> {"RAW"=>
|
128
|
+
{"BTC"=>
|
129
|
+
{"EUR"=>
|
130
|
+
{"TYPE"=>"5",
|
131
|
+
"MARKET"=>"CCCAGG",
|
132
|
+
"FROMSYMBOL"=>"BTC",
|
133
|
+
"TOSYMBOL"=>"EUR",
|
134
|
+
"FLAGS"=>"2049",
|
135
|
+
"PRICE"=>33851.17,
|
136
|
+
"LASTUPDATE"=>1642773847,
|
137
|
+
"MEDIAN"=>33853.8,
|
138
|
+
"LASTVOLUME"=>0.1,
|
139
|
+
"LASTVOLUMETO"=>3384.3676,
|
140
|
+
"LASTTRADEID"=>"2024043",
|
141
|
+
... ... ... ... ... ... ...
|
110
142
|
|
111
143
|
|
112
144
|
TO BE CONTINIUED ...
|
113
145
|
```
|
114
146
|
|
115
|
-
**Class methods
|
147
|
+
**Class methods as shortcuts:**
|
116
148
|
|
117
149
|
```ruby
|
118
|
-
#
|
150
|
+
# get default coins in EUR, save output without printing
|
151
|
+
prices = Ctfc.to :eur, print: false
|
119
152
|
|
120
|
-
|
153
|
+
# get default coins in RSD, print output, don't save
|
154
|
+
Ctfc.to :rsd, save: false
|
155
|
+
|
156
|
+
# For those who don't like name `Ctfc`, you can use `Crypto` too:
|
157
|
+
prices = Crypto.to :eur, coins: %w[BTC XMR]
|
158
|
+
```
|
121
159
|
|
122
|
-
#
|
160
|
+
# Tests
|
161
|
+
To run tests use `./check-syntax.sh`.
|
162
|
+
This command will run rubocop for code inspection, but with some errors hidden by `.rubocop_todo.yml`. Using check-syntax script, all test should pass.
|
123
163
|
|
124
|
-
Ctfc.to :rsd, save: false
|
125
164
|
|
126
|
-
#
|
165
|
+
# Contribution
|
166
|
+
Any contribution is highly appreciated, as long as you follow Code of Conduct.
|
127
167
|
|
128
|
-
|
168
|
+
- Fork repository
|
169
|
+
- Make your changes
|
170
|
+
- Write tests
|
171
|
+
- Submit pull request
|
129
172
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
173
|
+
# License
|
174
|
+
Don't be a dick - it's MIT.
|
175
|
+
|
176
|
+
# To-Do:
|
177
|
+
See **Projects**
|
data/bin/ctfc
CHANGED
@@ -5,7 +5,8 @@ require_relative '../lib/ctfc'
|
|
5
5
|
require 'optimist'
|
6
6
|
|
7
7
|
opts = Optimist.options do
|
8
|
-
version "
|
8
|
+
version "Crypto To Fiat Currency\n".cyan.bold \
|
9
|
+
+ "Gem Version: #{CTFC::VERSION}"
|
9
10
|
|
10
11
|
banner ''
|
11
12
|
banner ' Enter fiat currencies with/out additional arguments:'
|
@@ -14,26 +15,42 @@ opts = Optimist.options do
|
|
14
15
|
banner ' ruby bin/ctfc eur usd --no-save --coins btc xmr ltc'
|
15
16
|
banner ''
|
16
17
|
|
17
|
-
opt :coins,
|
18
|
-
opt :no_save,
|
19
|
-
opt :no_print,
|
18
|
+
opt :coins, 'Set crypto coins', default: CTFC::CONFIG::COINS
|
19
|
+
opt :no_save, "Do not save '.csv' output"
|
20
|
+
opt :no_print, 'Do not print terminal output'
|
21
|
+
opt :loop, 'Run script N times', default: 1, type: :integer
|
22
|
+
opt :wait, 'Wait N seconds between loop', default: 0, type: :integer
|
20
23
|
end
|
21
24
|
|
22
25
|
save = opts[:no_save] ? false : true
|
23
26
|
print = opts[:no_print] ? false : true
|
24
27
|
|
28
|
+
@crypto = Ctfc.new
|
29
|
+
|
25
30
|
if ARGV.empty?
|
26
31
|
|
27
|
-
|
32
|
+
@crypto.get(:eur, save: false)
|
28
33
|
|
29
34
|
else
|
30
35
|
|
31
|
-
|
32
|
-
|
36
|
+
opts[:loop].times do
|
37
|
+
ARGV.each do |fiat|
|
38
|
+
next if opts.include?(fiat.downcase)
|
39
|
+
|
40
|
+
@crypto.get(fiat,
|
41
|
+
save: save,
|
42
|
+
print: print,
|
43
|
+
coins: opts.coins)
|
44
|
+
sleep 1 # wait between requests
|
45
|
+
end
|
46
|
+
|
47
|
+
# end if no `--loop` arg
|
48
|
+
next unless opts[:loop] > 1
|
49
|
+
|
50
|
+
# pause between loops
|
51
|
+
sleep opts[:wait]
|
33
52
|
|
34
|
-
|
35
|
-
|
36
|
-
print: print,
|
37
|
-
coins: opts.coins)
|
53
|
+
# clear screan - depending on OS
|
54
|
+
system 'clear' or system 'cls'
|
38
55
|
end
|
39
56
|
end
|
data/ctfc.gemspec
CHANGED
@@ -5,31 +5,44 @@ require_relative './lib/ctfc/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'ctfc'
|
7
7
|
s.version = CTFC::VERSION
|
8
|
-
s.summary = '
|
9
|
-
s.description =
|
8
|
+
s.summary = 'Cryptocurrency to Fiat values, get data and save prices.'
|
9
|
+
s.description = <<~DESCRIPTION
|
10
|
+
Convert any cryptocurrency to any fiat value, export data to csv table.
|
11
|
+
Print colorized terminal output.
|
12
|
+
DESCRIPTION
|
10
13
|
|
11
14
|
s.license = 'MIT'
|
12
15
|
s.authors = 'alx3dev'
|
13
16
|
s.homepage = 'https://github.com/alx3dev/ctfc'
|
14
17
|
|
15
18
|
s.bindir = 'bin'
|
16
|
-
s.require_paths =
|
17
|
-
s.executables =
|
19
|
+
s.require_paths = 'lib'
|
20
|
+
s.executables = 'ctfc'
|
18
21
|
|
19
22
|
s.metadata['homepage_uri'] = 'https://github.com/alx3dev/ctfc'
|
20
23
|
s.metadata['source_code_uri'] = 'https://github.com/alx3dev/ctfc'
|
21
24
|
s.metadata['bug_tracker_uri'] = 'https://github.com/alx3dev/ctfc/issues'
|
22
|
-
|
23
|
-
s.
|
24
|
-
|
25
|
+
s.metadata['documentation_uri'] = "https://rubydoc.info/gems/#{s.name}"
|
26
|
+
s.metadata['rubygems_mfa_required'] = 'true'
|
27
|
+
|
28
|
+
s.files = %w[ bin/ctfc
|
29
|
+
bin/console
|
30
|
+
lib/ctfc.rb
|
31
|
+
lib/ctfc/version.rb
|
32
|
+
lib/ctfc/base.rb
|
33
|
+
lib/ctfc/config.rb
|
34
|
+
LICENSE
|
35
|
+
README.md
|
36
|
+
ctfc.gemspec]
|
25
37
|
|
26
38
|
s.required_ruby_version = '>= 3.0.1'
|
27
39
|
|
28
|
-
s.add_runtime_dependency 'colorize', '~> 0.8.1'
|
29
40
|
s.add_runtime_dependency 'optimist', '~> 3.0.1'
|
30
41
|
s.add_runtime_dependency 'rest-client', '~> 2.1.0'
|
42
|
+
s.add_runtime_dependency 'kolorit', '~> 0.1.3'
|
31
43
|
|
32
44
|
s.add_development_dependency 'bundler', '~> 2.2.9'
|
33
45
|
s.add_development_dependency 'pry', '~> 0.14.1'
|
34
46
|
s.add_development_dependency 'rake', '~> 13.0.3'
|
47
|
+
s.add_development_dependency 'rspec', '~> 3.10.0'
|
35
48
|
end
|
data/lib/ctfc/base.rb
CHANGED
@@ -5,15 +5,23 @@ require_relative 'version'
|
|
5
5
|
|
6
6
|
require 'json'
|
7
7
|
require 'csv'
|
8
|
-
require '
|
8
|
+
require 'kolorit'
|
9
9
|
require 'rest-client'
|
10
10
|
|
11
|
+
##
|
12
|
+
# Module **CTFC** keep everything together. **CTFC::CONFIG** module for default setup,
|
13
|
+
# and **CTFC::Data** class for actual request execution. For instance methods look
|
14
|
+
# at **CTFC::Data**, for class methods look at **Ctfc**.
|
15
|
+
#
|
16
|
+
# @see CTFC::Data
|
17
|
+
# @see Ctfc
|
18
|
+
#
|
11
19
|
module CTFC
|
12
20
|
##
|
13
21
|
# Data class keep all the logic to send request, receive response,
|
14
22
|
# and everything between. Class Ctfc extend CTFC::Data, for easier work.
|
15
23
|
#
|
16
|
-
# @note Instead of using CTFC::Data.new,
|
24
|
+
# @note Instead of using CTFC::Data.new, you can also call Ctfc.new
|
17
25
|
#
|
18
26
|
class Data
|
19
27
|
include CONFIG
|
@@ -25,7 +33,6 @@ module CTFC
|
|
25
33
|
|
26
34
|
##
|
27
35
|
# @example Initialization example
|
28
|
-
#
|
29
36
|
# @data = CTFC::Data.new :eur, save: true
|
30
37
|
#
|
31
38
|
# @param [Symbol] currency **Optional**. Define fiat currency.
|
@@ -35,7 +42,7 @@ module CTFC
|
|
35
42
|
# @option opts [Boolean] save **Optional**. Save `.csv` output.
|
36
43
|
# @option opts [Array] coins **Optional**. Define coins to scrap.
|
37
44
|
#
|
38
|
-
# @return [
|
45
|
+
# @return [Data] Data object to work with
|
39
46
|
#
|
40
47
|
def initialize(currency = :eur, opts = {})
|
41
48
|
@fiat = currency.to_s.upcase
|
@@ -45,17 +52,19 @@ module CTFC
|
|
45
52
|
end
|
46
53
|
|
47
54
|
##
|
48
|
-
# @example Get fiat prices for
|
55
|
+
# @example Get fiat prices for initialized config
|
49
56
|
#
|
50
57
|
# @data.get
|
51
58
|
#
|
52
|
-
# @example Get prices and change
|
59
|
+
# @example Get prices and change initialized config "on-the-fly"
|
53
60
|
#
|
54
61
|
# @data.get :usd, save: false, coins: %w[BTC XMR ETH]
|
55
62
|
#
|
56
63
|
# @param [Symbol || String] currency **Optional**. Change fiat currency and execute request.
|
57
64
|
# @param [Hash] opts **Optional**. Options hash to change config 'on-the-fly' - see #initialize.
|
58
65
|
#
|
66
|
+
# @return [Hash || false] Hash of coins and fiat values, or false if all requests fail
|
67
|
+
#
|
59
68
|
def get(currency = nil, opts = {})
|
60
69
|
@fiat = currency.to_s.upcase unless currency.nil?
|
61
70
|
@coins = opts[:coins] unless opts[:coins].nil?
|
@@ -104,7 +113,7 @@ module CTFC
|
|
104
113
|
# @return [true || false]
|
105
114
|
#
|
106
115
|
def save=(opt)
|
107
|
-
@save = opt.is_a?(TrueClass)
|
116
|
+
@save = opt.is_a?(TrueClass)
|
108
117
|
end
|
109
118
|
|
110
119
|
##
|
@@ -113,7 +122,7 @@ module CTFC
|
|
113
122
|
# @return [true || false]
|
114
123
|
#
|
115
124
|
def print=(opt)
|
116
|
-
@print = opt.is_a?(TrueClass)
|
125
|
+
@print = opt.is_a?(TrueClass)
|
117
126
|
end
|
118
127
|
|
119
128
|
##
|
@@ -134,10 +143,9 @@ module CTFC
|
|
134
143
|
process_data
|
135
144
|
@prices
|
136
145
|
rescue StandardError
|
137
|
-
@count += 1
|
138
|
-
|
139
|
-
if @count >= MAX_RETRY
|
146
|
+
if (@count += 1) >= MAX_RETRY
|
140
147
|
puts @response.to_s.split(',')
|
148
|
+
false
|
141
149
|
else
|
142
150
|
do_rest_request
|
143
151
|
end
|
@@ -159,8 +167,8 @@ module CTFC
|
|
159
167
|
end
|
160
168
|
|
161
169
|
def prepare_uri
|
162
|
-
@prices =
|
163
|
-
@data_array =
|
170
|
+
@prices = {}
|
171
|
+
@data_array = []
|
164
172
|
coin_uri = String.new ''
|
165
173
|
@coins.collect { |coin| coin_uri << "fsyms=#{coin}&" }
|
166
174
|
@url = URL + "#{coin_uri}tsyms=#{@fiat}"
|
@@ -169,13 +177,13 @@ module CTFC
|
|
169
177
|
def print_fiat_values
|
170
178
|
return unless print?
|
171
179
|
|
172
|
-
30.times { print '='.
|
180
|
+
30.times { print '='.cyan }
|
173
181
|
puts ''
|
174
|
-
puts "#{'['.
|
175
|
-
30.times { print '='.
|
182
|
+
puts "#{'['.cyan.bold}#{@fiat.to_s.upcase.yellow.bold}#{']'.cyan.bold} conversion rate"
|
183
|
+
30.times { print '='.cyan }
|
176
184
|
puts ''
|
177
185
|
@prices.each do |name, value|
|
178
|
-
print '['.yellow.bold + name.to_s.
|
186
|
+
print '['.yellow.bold + name.to_s.cyan.bold + ']'.yellow.bold
|
179
187
|
puts ": #{value}".bold
|
180
188
|
end
|
181
189
|
end
|
data/lib/ctfc/version.rb
CHANGED
data/lib/ctfc.rb
CHANGED
@@ -6,6 +6,8 @@ require_relative 'ctfc/base'
|
|
6
6
|
# For easier job use Ctfc, instead of typing CTFC::Data.
|
7
7
|
# You can define default coins with Ctfc::COINS=
|
8
8
|
#
|
9
|
+
# @note For instance methods look at CTFC::Data.
|
10
|
+
#
|
9
11
|
class Ctfc < CTFC::Data
|
10
12
|
##
|
11
13
|
# @todo Allow Ctfc to use proxy and/or tor
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ctfc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alx3dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: optimist
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 3.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 3.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: kolorit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.1.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.1.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +94,23 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 13.0.3
|
97
|
-
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.10.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.10.0
|
111
|
+
description: |
|
112
|
+
Convert any cryptocurrency to any fiat value, export data to csv table.
|
113
|
+
Print colorized terminal output.
|
98
114
|
email:
|
99
115
|
executables:
|
100
116
|
- ctfc
|
@@ -117,6 +133,8 @@ metadata:
|
|
117
133
|
homepage_uri: https://github.com/alx3dev/ctfc
|
118
134
|
source_code_uri: https://github.com/alx3dev/ctfc
|
119
135
|
bug_tracker_uri: https://github.com/alx3dev/ctfc/issues
|
136
|
+
documentation_uri: https://rubydoc.info/gems/ctfc
|
137
|
+
rubygems_mfa_required: 'true'
|
120
138
|
post_install_message:
|
121
139
|
rdoc_options: []
|
122
140
|
require_paths:
|
@@ -135,5 +153,5 @@ requirements: []
|
|
135
153
|
rubygems_version: 3.2.32
|
136
154
|
signing_key:
|
137
155
|
specification_version: 4
|
138
|
-
summary:
|
156
|
+
summary: Cryptocurrency to Fiat values, get data and save prices.
|
139
157
|
test_files: []
|