ix-cli 0.0.21 → 0.0.23

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: 310ce8e1c17438e6004dd28f1dfe8f4f9501c5c7ecbca7d5efa75c4c5095e290
4
- data.tar.gz: 8ac9335f579d2ffbfb5549409308de3250e173c35688f130d5719d2b421acd0d
3
+ metadata.gz: 710d6adea721d5d968afcbd10b0ccec144106320bf3b1aa80adfc6ba785e7626
4
+ data.tar.gz: e6f7c467e70d58e3f81fd9daf5822707379ffb9a4daac60440f53eceee4dd39a
5
5
  SHA512:
6
- metadata.gz: 4cbf17184a8274e7579e8cbb660f972890f533421840ca0f43c2e7a2538249f5f8f022b766e464b0130ee5735629f1522ea15c0257cfdadaef2f4906cfe5d105
7
- data.tar.gz: e5ed936aec0c930d755ff5d267425aaa01473f1220bbf9e2d9424b265e354566de834a0bb967f4e90982e2c7c78bb9e01610fe64fb0d87da81db1d8fc50ee15f
6
+ metadata.gz: 183eaf434866fd17fa8d72c3a02bd8df8fb9b62277a1ab582d2ebad74592376368ed68b604d01d1980b40b324bb8ed78fad8f1cb201666d8ddcf19aa38bf3bdd
7
+ data.tar.gz: 890df17fbfbfe03773aa9b456c4ca3d3603cca13db3a0b49fc5ab1d50d42506dd6ba4babe241285dc0ab67c7e30565561f5293302473e54b322a57198ae29bda
data/bin/ix-json-to-table CHANGED
@@ -6,6 +6,9 @@ require 'optparse'
6
6
 
7
7
  options = {}
8
8
  options[:orient] = 'top'
9
+ options[:transpose] = false
10
+ options[:adjust] = false
11
+ options[:skin] = 'round'
9
12
 
10
13
  OptionParser.new do |opts|
11
14
 
@@ -19,6 +22,18 @@ OptionParser.new do |opts|
19
22
  options[:search] = Regexp.new(value, Regexp::IGNORECASE)
20
23
  end
21
24
 
25
+ opts.on('-t', '--transpose', 'Transponse the table and print the output vertically.') do |value|
26
+ options[:transpose] = value
27
+ end
28
+
29
+ opts.on('-a', '--adjust', 'Adjust width of tables when in transpose mode.') do |value|
30
+ options[:adjust] = value
31
+ end
32
+
33
+ opts.on('-i', '--skin [NAME]', 'Change the skin, can be: [round, none, ascii].') do |value|
34
+ options[:skin] = value
35
+ end
36
+
22
37
  end.parse!
23
38
 
24
39
  required_options = [:orient]
@@ -29,14 +44,6 @@ required_options.each do |option|
29
44
  end
30
45
  end
31
46
 
32
- data = []
33
-
34
- STDIN.each_line do |line|
35
- data << JSON.parse(line)
36
- end
37
-
38
- exit if data.empty?
39
-
40
47
  def print_table(data, options)
41
48
  columns = {}
42
49
 
@@ -47,7 +54,9 @@ def print_table(data, options)
47
54
  end
48
55
  end
49
56
 
50
- config = {
57
+ skin = {}
58
+
59
+ skin['round'] = {
51
60
  :top_left => '╭',
52
61
  :top_right => '╮',
53
62
  :bottom_left => '╰',
@@ -61,6 +70,64 @@ def print_table(data, options)
61
70
  :right => '┤'
62
71
  }
63
72
 
73
+ skin['none'] = {
74
+ :top_left => ' ',
75
+ :top_right => ' ',
76
+ :bottom_left => ' ',
77
+ :bottom_right => ' ',
78
+ :vertical => ' ',
79
+ :horizontal => ' ',
80
+ :cross => ' ',
81
+ :top => ' ',
82
+ :bottom => ' ',
83
+ :left => ' ',
84
+ :right => ' '
85
+ }
86
+
87
+ skin['ascii'] = {
88
+ :top_left => '+',
89
+ :top_right => '+',
90
+ :bottom_left => '+',
91
+ :bottom_right => '+',
92
+ :vertical => '|',
93
+ :horizontal => '-',
94
+ :cross => '+',
95
+ :top => '+',
96
+ :bottom => '+',
97
+ :left => '+',
98
+ :right => '+'
99
+ }
100
+
101
+ skin['square'] = {
102
+ :top_left => '┌',
103
+ :top_right => '┐',
104
+ :bottom_left => '└',
105
+ :bottom_right => '┘',
106
+ :vertical => '│',
107
+ :horizontal => '─',
108
+ :cross => '┼',
109
+ :top => '┬',
110
+ :bottom => '┴',
111
+ :left => '├',
112
+ :right => '┤'
113
+ }
114
+
115
+ skin['double'] = {
116
+ :top_left => '╔',
117
+ :top_right => '╗',
118
+ :bottom_left => '╚',
119
+ :bottom_right => '╝',
120
+ :vertical => '║',
121
+ :horizontal => '═',
122
+ :cross => '╬',
123
+ :top => '╦',
124
+ :bottom => '╩',
125
+ :left => '╠',
126
+ :right => '╣'
127
+ }
128
+
129
+ config = skin[options[:skin]]
130
+
64
131
  cm = columns.keys.sort.map do |key|
65
132
  s = ''
66
133
  value = columns[key]
@@ -104,4 +171,64 @@ def print_table(data, options)
104
171
  puts "Total: #{data.size} rows"
105
172
  end
106
173
 
107
- print_table(data, options)
174
+ def transpose(hash)
175
+ transposed = {}
176
+ hash.each do |key, value|
177
+ transposed[key] ||= []
178
+ transposed[key] << value
179
+ end
180
+ transposed
181
+ end
182
+
183
+ if options[:transpose]
184
+
185
+ data = []
186
+
187
+ STDIN.each_line do |line|
188
+ begin
189
+ data << JSON.parse(line)
190
+ rescue => e
191
+ $stderr.puts e.message
192
+ end
193
+ end
194
+
195
+ max_length = 0
196
+
197
+ if options[:adjust]
198
+ data.each do |object|
199
+ object.values.each do |value|
200
+ max_length = value.to_s.size if value.to_s.size > max_length
201
+ end
202
+ end
203
+ end
204
+
205
+ data.each do |object|
206
+ transposed = transpose(object)
207
+ new_data = []
208
+ transposed.each do |key, values|
209
+ values.each do |value|
210
+ new_data.push({ 'column' => key, 'value' => value.to_s.ljust(max_length, ' ')})
211
+ end
212
+ end
213
+ puts ''
214
+ print_table(new_data, options)
215
+ end
216
+
217
+ else
218
+
219
+ data = []
220
+
221
+ STDIN.each_line do |line|
222
+ begin
223
+ data << JSON.parse(line)
224
+ rescue => e
225
+ $stderr.puts e.message
226
+ end
227
+ end
228
+
229
+ exit if data.empty?
230
+
231
+ print_table(data, options)
232
+
233
+ end
234
+
@@ -2,19 +2,22 @@
2
2
 
3
3
  require 'json'
4
4
 
5
- transposed = {}
6
-
7
- STDIN.each_line do |line|
8
- data = JSON.parse(line)
9
- data.each do |key, value|
5
+ def transpose(hash)
6
+ transposed = {}
7
+ hash.each do |key, value|
10
8
  transposed[key] ||= []
11
9
  transposed[key] << value
12
10
  end
11
+ transposed
13
12
  end
14
13
 
15
- transposed.each do |key, values|
16
- values.each do |value|
17
- puts({ :column => key, :value => value }.to_json)
14
+ STDIN.each_line do |line|
15
+ data = JSON.parse(line)
16
+ transposed = transpose(data)
17
+ transposed.each do |key, values|
18
+ values.each do |value|
19
+ puts({ :column => key, :value => value }.to_json)
20
+ end
18
21
  end
19
22
  end
20
23
 
data/bin/ix-remove CHANGED
@@ -9,13 +9,13 @@ OptionParser.new do |opts|
9
9
 
10
10
  opts.banner = "Usage: #{$0} [OPTIONS]"
11
11
 
12
- opts.on('-f', '--file []', 'File with entries to be removed.') do |value|
13
- options[:file] = value
12
+ opts.on('-r', '--remove [FILEPATH]', 'File with entries that will be removed.') do |value|
13
+ options[:remove] = value
14
14
  end
15
15
 
16
16
  end.parse!
17
17
 
18
- required_options = [:file]
18
+ required_options = [:remove]
19
19
  required_options.each do |option|
20
20
  unless options[option]
21
21
  $stderr.puts "Can not run #{option.to_s} was not given."
@@ -23,24 +23,24 @@ required_options.each do |option|
23
23
  end
24
24
  end
25
25
 
26
- unless File.exist?(options[:file])
27
- $stderr.puts "File #{options[:file]} does not exist."
26
+ unless File.exist?(options[:remove])
27
+ $stderr.puts "File #{options[:remove]} does not exist."
28
28
  exit 1
29
29
  end
30
30
 
31
- inputs = []
32
- entries = []
31
+ source_list = []
32
+ remove_list = []
33
33
 
34
34
 
35
- File.read(options[:file]).each_line do |line|
36
- entries << line
35
+ File.read(options[:remove]).each_line do |line|
36
+ remove_list << line.chomp
37
37
  end
38
38
 
39
39
  STDIN.each_line do |line|
40
- inputs << line
40
+ source_list << line.chomp
41
41
  end
42
42
 
43
- (inputs - entries).each do |item|
44
- puts item.chomp
43
+ (source_list - remove_list).each do |item|
44
+ puts item
45
45
  end
46
46
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ix-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuyoshi Tlacaelel
@@ -287,7 +287,6 @@ executables:
287
287
  - ix-symlink
288
288
  - ix-tab
289
289
  - ix-tabify
290
- - ix-table
291
290
  - ix-tac
292
291
  - ix-task
293
292
  - ix-technical
@@ -594,7 +593,6 @@ files:
594
593
  - bin/ix-symlink
595
594
  - bin/ix-tab
596
595
  - bin/ix-tabify
597
- - bin/ix-table
598
596
  - bin/ix-tac
599
597
  - bin/ix-task
600
598
  - bin/ix-technical
data/bin/ix-table DELETED
@@ -1,22 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'optparse'
4
-
5
- options = {}
6
-
7
- OptionParser.new do |opts|
8
-
9
- opts.banner = "Usage: #{$0} [OPTIONS]"
10
-
11
- opts.on('-v', '--vertical', 'Vertical.') do |value|
12
- options[:vertical] = value
13
- end
14
-
15
- end.parse!
16
-
17
- if options[:vertical]
18
- system 'ruby ./ix-json-transpose | ruby ./ix-json-to-table'
19
- else
20
- system 'ruby ./ix-json-to-table'
21
- end
22
-