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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fdc60a99306429f970aa0626f4ba5c08f0fc4a9db69213dc012ff6299f45ebe
4
- data.tar.gz: 185eb0a095204c84f880d59782e7336d1edb38ec38435e8f6ab7522ed9be5828
3
+ metadata.gz: 5942cdb3e35ebd352ad7f5ce4e54b410966797c9f318d6e5b147d59480c9831e
4
+ data.tar.gz: 35c4ac8a00e4317e4129771291ea9842fac257df2bbff83b3550316469a23f7d
5
5
  SHA512:
6
- metadata.gz: 8ae3b18fc5459ec889b7e745f2c85dc5184567aca89ef808142fc776d075fe2fc09525453e5ca7904065bc9e2e4daef6592f99e4a54d371d2a3397f2077f1a61
7
- data.tar.gz: 1548c605b094cfff267ce4a7ef8d9ecc11826541d44b5cdd360cbfc815b17742953321fad0f5a7fb4dc93d6577270cbcc40131ea07e83e46ca5fe8e0150bcc4c
6
+ metadata.gz: 03d54d9e44402aacb07cfcc24b4a7ed1dd63e734fe48f02a82a755525a2e58f0857ae1e341803ff7ffbba6be57c219c8258a4324b8d7989bb10d761fe1518579
7
+ data.tar.gz: bfbeb0eceb64c65b7e611377f3b430c19b123a74f60a764df72d44abcf6f45e60910df12f8125375f132eb1cb79f2ea640d811b1ac26a6d288ce1fa47ca86d06
data/Gemfile CHANGED
@@ -2,5 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in exrt_cli.gemspec
4
4
  gemspec
5
-
6
- gem "exrt", path: '../exrt'
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
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency "thor", "~> 0.20"
25
+ spec.add_dependency "tty-table", "~> 0.10"
25
26
  spec.add_dependency "exrt"
26
27
 
27
28
  spec.add_development_dependency "bundler", "~> 2.0"
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Exrt
2
2
  module Cli
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
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
- puts response
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
- puts response
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.1.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-27 00:00:00.000000000 Z
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: []