exrt-cli 0.1.0 → 0.2.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 +4 -4
- data/Gemfile +0 -2
- data/Gemfile.lock +23 -7
- data/exrt-cli.gemspec +1 -0
- data/lib/exrt/cli/format.rb +37 -0
- data/lib/exrt/cli/renderer.rb +59 -0
- data/lib/exrt/cli/version.rb +1 -1
- data/lib/exrt/cli.rb +5 -2
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5942cdb3e35ebd352ad7f5ce4e54b410966797c9f318d6e5b147d59480c9831e
|
4
|
+
data.tar.gz: 35c4ac8a00e4317e4129771291ea9842fac257df2bbff83b3550316469a23f7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03d54d9e44402aacb07cfcc24b4a7ed1dd63e734fe48f02a82a755525a2e58f0857ae1e341803ff7ffbba6be57c219c8258a4324b8d7989bb10d761fe1518579
|
7
|
+
data.tar.gz: bfbeb0eceb64c65b7e611377f3b430c19b123a74f60a764df72d44abcf6f45e60910df12f8125375f132eb1cb79f2ea640d811b1ac26a6d288ce1fa47ca86d06
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../exrt
|
3
|
-
specs:
|
4
|
-
exrt (0.1.0)
|
5
|
-
faraday (~> 0.15)
|
6
|
-
|
7
1
|
PATH
|
8
2
|
remote: .
|
9
3
|
specs:
|
10
4
|
exrt-cli (0.1.0)
|
11
5
|
exrt
|
12
6
|
thor (~> 0.20)
|
7
|
+
tty-table (~> 0.10)
|
13
8
|
|
14
9
|
GEM
|
15
10
|
remote: https://rubygems.org/
|
16
11
|
specs:
|
17
12
|
diff-lcs (1.3)
|
13
|
+
equatable (0.5.0)
|
14
|
+
exrt (0.1.0)
|
15
|
+
faraday (~> 0.15)
|
18
16
|
faraday (0.15.4)
|
19
17
|
multipart-post (>= 1.2, < 3)
|
20
18
|
multipart-post (2.0.0)
|
19
|
+
necromancer (0.4.0)
|
20
|
+
pastel (0.7.2)
|
21
|
+
equatable (~> 0.5.0)
|
22
|
+
tty-color (~> 0.4.0)
|
21
23
|
rake (10.5.0)
|
22
24
|
rspec (3.8.0)
|
23
25
|
rspec-core (~> 3.8.0)
|
@@ -32,14 +34,28 @@ GEM
|
|
32
34
|
diff-lcs (>= 1.2.0, < 2.0)
|
33
35
|
rspec-support (~> 3.8.0)
|
34
36
|
rspec-support (3.8.0)
|
37
|
+
strings (0.1.4)
|
38
|
+
strings-ansi (~> 0.1.0)
|
39
|
+
unicode-display_width (~> 1.4.0)
|
40
|
+
unicode_utils (~> 1.4.0)
|
41
|
+
strings-ansi (0.1.0)
|
35
42
|
thor (0.20.3)
|
43
|
+
tty-color (0.4.3)
|
44
|
+
tty-screen (0.6.5)
|
45
|
+
tty-table (0.10.0)
|
46
|
+
equatable (~> 0.5.0)
|
47
|
+
necromancer (~> 0.4.0)
|
48
|
+
pastel (~> 0.7.2)
|
49
|
+
strings (~> 0.1.0)
|
50
|
+
tty-screen (~> 0.6.4)
|
51
|
+
unicode-display_width (1.4.1)
|
52
|
+
unicode_utils (1.4.0)
|
36
53
|
|
37
54
|
PLATFORMS
|
38
55
|
ruby
|
39
56
|
|
40
57
|
DEPENDENCIES
|
41
58
|
bundler (~> 2.0)
|
42
|
-
exrt!
|
43
59
|
exrt-cli!
|
44
60
|
rake (~> 10.0)
|
45
61
|
rspec (~> 3.0)
|
data/exrt-cli.gemspec
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
require "json"
|
2
|
+
require "tty-table"
|
3
|
+
|
4
|
+
module Exrt
|
5
|
+
module Cli
|
6
|
+
class Format
|
7
|
+
def self.latest(response)
|
8
|
+
r = self.to_json(response)
|
9
|
+
rows = []
|
10
|
+
r['rates'].each do |symbol, value|
|
11
|
+
rows.append([symbol, value])
|
12
|
+
end
|
13
|
+
|
14
|
+
rows
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.history(response)
|
18
|
+
r = self.to_json(response)
|
19
|
+
rows = []
|
20
|
+
r['rates'].each do |date, rates|
|
21
|
+
row = [date]
|
22
|
+
rates.each do |symbol, rate|
|
23
|
+
row.prepend(symbol, rate)
|
24
|
+
end
|
25
|
+
|
26
|
+
rows.append(row)
|
27
|
+
end
|
28
|
+
|
29
|
+
rows
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.to_json(resp)
|
33
|
+
JSON.parse(resp)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'tty-table'
|
2
|
+
require_relative "format"
|
3
|
+
|
4
|
+
module Exrt
|
5
|
+
module Cli
|
6
|
+
LATEST = :latest
|
7
|
+
HISTORY = :history
|
8
|
+
|
9
|
+
class Renderer
|
10
|
+
attr_reader :table, :type, :data
|
11
|
+
|
12
|
+
def initialize(d:, t:)
|
13
|
+
@data = d
|
14
|
+
@type = t
|
15
|
+
@table = TTY::Table.new header, rows
|
16
|
+
end
|
17
|
+
|
18
|
+
def is_latest?
|
19
|
+
type == Exrt::Cli::LATEST
|
20
|
+
end
|
21
|
+
|
22
|
+
def is_history?
|
23
|
+
type == Exrt::Cli::HISTORY
|
24
|
+
end
|
25
|
+
|
26
|
+
def header
|
27
|
+
if is_latest?
|
28
|
+
latest_table_header
|
29
|
+
elsif is_history?
|
30
|
+
history_table_header
|
31
|
+
else
|
32
|
+
[]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def rows
|
37
|
+
if is_latest?
|
38
|
+
Exrt::Cli::Format.latest(data)
|
39
|
+
elsif is_history?
|
40
|
+
Exrt::Cli::Format.history(data)
|
41
|
+
else
|
42
|
+
[]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def latest_table_header
|
47
|
+
%w[Currency Rate]
|
48
|
+
end
|
49
|
+
|
50
|
+
def history_table_header
|
51
|
+
%w[Currency Rate Date]
|
52
|
+
end
|
53
|
+
|
54
|
+
def render
|
55
|
+
table.render(:ascii)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/exrt/cli/version.rb
CHANGED
data/lib/exrt/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "exrt/cli/version"
|
2
2
|
require "thor"
|
3
3
|
require "exrt"
|
4
|
+
require_relative 'cli/renderer'
|
4
5
|
|
5
6
|
module Exrt
|
6
7
|
module Cli
|
@@ -13,7 +14,8 @@ module Exrt
|
|
13
14
|
base = options["base"]
|
14
15
|
symbols = options["symbols"]
|
15
16
|
response = Exrt::Rate.latest(base: base, symbols: symbols)
|
16
|
-
|
17
|
+
r = Exrt::Cli::Renderer.new(d: response, t: Exrt::Cli::LATEST)
|
18
|
+
puts r.render
|
17
19
|
end
|
18
20
|
|
19
21
|
desc "history --base --symbols --start_at --end_at", "show history exchange rates"
|
@@ -28,7 +30,8 @@ module Exrt
|
|
28
30
|
start_at: options["start_at"],
|
29
31
|
end_at: options["end_at"]
|
30
32
|
)
|
31
|
-
|
33
|
+
r = Exrt::Cli::Renderer.new(d: response, t: Exrt::Cli::HISTORY)
|
34
|
+
puts r.render
|
32
35
|
end
|
33
36
|
end
|
34
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exrt-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- al002
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.20'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: tty-table
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.10'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.10'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: exrt
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +115,8 @@ files:
|
|
101
115
|
- exe/exrt-cli
|
102
116
|
- exrt-cli.gemspec
|
103
117
|
- lib/exrt/cli.rb
|
118
|
+
- lib/exrt/cli/format.rb
|
119
|
+
- lib/exrt/cli/renderer.rb
|
104
120
|
- lib/exrt/cli/version.rb
|
105
121
|
homepage: https://github.com/al002/exrt-cli
|
106
122
|
licenses: []
|