hammer_cli 0.19.2 → 2.0.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/bin/hammer-complete +28 -0
  3. data/config/cli_config.template.yml +2 -0
  4. data/config/hammer.completion +5 -0
  5. data/doc/creating_commands.md +27 -0
  6. data/doc/installation.md +47 -4
  7. data/doc/release_notes.md +17 -9
  8. data/lib/hammer_cli.rb +1 -0
  9. data/lib/hammer_cli/abstract.rb +32 -2
  10. data/lib/hammer_cli/apipie/api_connection.rb +5 -1
  11. data/lib/hammer_cli/apipie/command.rb +3 -2
  12. data/lib/hammer_cli/bash.rb +2 -0
  13. data/lib/hammer_cli/bash/completion.rb +159 -0
  14. data/lib/hammer_cli/bash/prebuild_command.rb +21 -0
  15. data/lib/hammer_cli/connection.rb +4 -0
  16. data/lib/hammer_cli/exception_handler.rb +10 -1
  17. data/lib/hammer_cli/main.rb +5 -3
  18. data/lib/hammer_cli/options/normalizers.rb +7 -3
  19. data/lib/hammer_cli/options/option_definition.rb +22 -0
  20. data/lib/hammer_cli/output/adapter/abstract.rb +1 -5
  21. data/lib/hammer_cli/output/adapter/base.rb +1 -1
  22. data/lib/hammer_cli/output/adapter/csv.rb +3 -2
  23. data/lib/hammer_cli/output/adapter/json.rb +14 -3
  24. data/lib/hammer_cli/output/adapter/silent.rb +1 -1
  25. data/lib/hammer_cli/output/adapter/table.rb +26 -7
  26. data/lib/hammer_cli/output/adapter/yaml.rb +6 -3
  27. data/lib/hammer_cli/output/output.rb +2 -4
  28. data/lib/hammer_cli/settings.rb +2 -1
  29. data/lib/hammer_cli/utils.rb +5 -0
  30. data/lib/hammer_cli/version.rb +1 -1
  31. data/locale/ca/LC_MESSAGES/hammer-cli.mo +0 -0
  32. data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
  33. data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
  34. data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
  35. data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
  36. data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
  37. data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
  38. data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
  39. data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
  40. data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
  41. data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
  42. data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
  43. data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
  44. data/man/hammer.1.gz +0 -0
  45. data/test/unit/apipie/api_connection_test.rb +1 -0
  46. data/test/unit/bash_test.rb +138 -0
  47. data/test/unit/exception_handler_test.rb +44 -0
  48. data/test/unit/output/adapter/base_test.rb +58 -0
  49. data/test/unit/output/adapter/csv_test.rb +63 -1
  50. data/test/unit/output/adapter/json_test.rb +61 -0
  51. data/test/unit/output/adapter/table_test.rb +70 -1
  52. data/test/unit/output/adapter/yaml_test.rb +59 -0
  53. data/test/unit/output/output_test.rb +3 -3
  54. metadata +75 -68
  55. data/hammer_cli_complete +0 -13
@@ -55,4 +55,48 @@ describe HammerCLI::ExceptionHandler do
55
55
  assert_match /ERROR Exception : (Resource )?Not Found/, @log_output.readline.strip
56
56
  end
57
57
 
58
+ it "should print default prompts for standard missing arguments" do
59
+ params = %w[login mail]
60
+ heading = 'Could not create user:'
61
+ body = "Missing arguments for '--login', '--mail'."
62
+ ex = ApipieBindings::MissingArgumentsError.new(params)
63
+ output.expects(:print_error).with(heading, body)
64
+ handler.handle_exception(ex, heading: heading)
65
+ end
66
+
67
+ it "should print right prompts for nested missing arguments" do
68
+ params = %w[user[login] user[mail]]
69
+ heading = 'Could not create user:'
70
+ body = "Missing arguments for '--login', '--mail'."
71
+ ex = ApipieBindings::MissingArgumentsError.new(params)
72
+ output.expects(:print_error).with(heading, body)
73
+ handler.handle_exception(ex, heading: heading)
74
+ end
75
+
76
+ it "should print simple prompts for even more nested arguments" do
77
+ params = %w[user[address][city] user[address][street]]
78
+ heading = 'Could not create user:'
79
+ body = "Missing arguments for '--address'."
80
+ ex = ApipieBindings::MissingArgumentsError.new(params)
81
+ output.expects(:print_error).with(heading, body)
82
+ handler.handle_exception(ex, heading: heading)
83
+ end
84
+
85
+ it "should print simple prompts for even more different nested arguments" do
86
+ params = %w[user[address][city] user[address][street] user[nested][par1]]
87
+ heading = 'Could not create user:'
88
+ body = "Missing arguments for '--address', '--nested'."
89
+ ex = ApipieBindings::MissingArgumentsError.new(params)
90
+ output.expects(:print_error).with(heading, body)
91
+ handler.handle_exception(ex, heading: heading)
92
+ end
93
+
94
+ it "should print default prompts for standard missing arguments" do
95
+ params = %w[opt_abc opt_a_b-c]
96
+ heading = 'Could not create user:'
97
+ body = "Missing arguments for '--opt-abc', '--opt-a-b-c'."
98
+ ex = ApipieBindings::MissingArgumentsError.new(params)
99
+ output.expects(:print_error).with(heading, body)
100
+ handler.handle_exception(ex, heading: heading)
101
+ end
58
102
  end
@@ -199,6 +199,64 @@ describe HammerCLI::Output::Adapter::Base do
199
199
  proc { adapter.print_collection(fields, data) }.must_output(expected_output)
200
200
  end
201
201
 
202
+ context 'printing by chunks' do
203
+ let(:context) { { show_ids: true } }
204
+ let(:collection_count) { 30 }
205
+ let(:collection_data) do
206
+ collection = collection_count.times.each_with_object([]) do |t, r|
207
+ r << { id: t, name: "John #{t}"}
208
+ end
209
+ HammerCLI::Output::RecordCollection.new(collection)
210
+ end
211
+ let(:fields) { [id, name] }
212
+
213
+ it 'prints single chunk' do
214
+ expected_output = collection_count.times.each_with_object([]) do |t, r|
215
+ r << ["Id: #{t}", "Name: John #{t}", "\n"].join("\n")
216
+ end.flatten(1).join
217
+
218
+ proc do
219
+ adapter.print_collection(fields, collection_data)
220
+ end.must_output(expected_output)
221
+ end
222
+
223
+ it 'prints first chunk' do
224
+ expected_output = 10.times.each_with_object([]) do |t, r|
225
+ r << ["Id: #{t}", "Name: John #{t}", "\n"].join("\n")
226
+ end.flatten(1).join
227
+
228
+ proc do
229
+ adapter.print_collection(
230
+ fields, collection_data[0...10], current_chunk: :first
231
+ )
232
+ end.must_output(expected_output)
233
+ end
234
+
235
+ it 'prints another chunk' do
236
+ expected_output = (10...20).each_with_object([]) do |t, r|
237
+ r << ["Id: #{t}", "Name: John #{t}", "\n"].join("\n")
238
+ end.flatten(1).join
239
+
240
+ proc do
241
+ adapter.print_collection(
242
+ fields, collection_data[10...20], current_chunk: :another
243
+ )
244
+ end.must_output(expected_output)
245
+ end
246
+
247
+ it 'prints last chunk' do
248
+ expected_output = (20...30).each_with_object([]) do |t, r|
249
+ r << ["Id: #{t}", "Name: John #{t}", "\n"].join("\n")
250
+ end.flatten(1).join
251
+
252
+ proc do
253
+ adapter.print_collection(
254
+ fields, collection_data[20...30], current_chunk: :last
255
+ )
256
+ end.must_output(expected_output)
257
+ end
258
+ end
259
+
202
260
  context "show ids" do
203
261
 
204
262
  let(:context) { {:show_ids => true} }
@@ -9,7 +9,7 @@ describe HammerCLI::Output::Adapter::CSValues do
9
9
  end
10
10
 
11
11
  context "print_collection" do
12
-
12
+ let(:field_id) { Fields::Id.new(:path => [:id], :label => "Id") }
13
13
  let(:field_name) { Fields::Field.new(:path => [:name], :label => "Name") }
14
14
  let(:field_started_at) { Fields::Field.new(:path => [:started_at], :label => "Started At") }
15
15
  let(:field_login) { Fields::Field.new(:path => [:login], :label => "Login") }
@@ -220,6 +220,68 @@ describe HammerCLI::Output::Adapter::CSValues do
220
220
  end
221
221
  end
222
222
 
223
+ context 'printing by chunks' do
224
+ let(:adapter) { HammerCLI::Output::Adapter::CSValues.new(show_ids: true) }
225
+ let(:collection_count) { 30 }
226
+ let(:collection_data) do
227
+ collection = collection_count.times.each_with_object([]) do |t, r|
228
+ r << { id: t, name: "John #{t}"}
229
+ end
230
+ HammerCLI::Output::RecordCollection.new(collection)
231
+ end
232
+ let(:fields) { [field_id, field_name] }
233
+
234
+ it 'prints single chunk' do
235
+ expected_output = collection_count.times.each_with_object([]) do |t, r|
236
+ r << ["#{t}", "John #{t}"].join(',')
237
+ end.flatten(1).unshift('Id,Name').join("\n") + "\n"
238
+
239
+ out, _err = capture_io do
240
+ adapter.print_collection(fields, collection_data)
241
+ end
242
+ out.must_equal(expected_output)
243
+ end
244
+
245
+ it 'prints first chunk' do
246
+ expected_output = 10.times.each_with_object([]) do |t, r|
247
+ r << ["#{t}", "John #{t}"].join(',')
248
+ end.flatten(1).unshift('Id,Name').join("\n") + "\n"
249
+
250
+ out, _err = capture_io do
251
+ adapter.print_collection(
252
+ fields, collection_data[0...10], current_chunk: :first
253
+ )
254
+ end
255
+ out.must_equal(expected_output)
256
+ end
257
+
258
+ it 'prints another chunk' do
259
+ expected_output = (10...20).each_with_object([]) do |t, r|
260
+ r << ["#{t}", "John #{t}"].join(',')
261
+ end.flatten(1).join("\n") + "\n"
262
+
263
+ out, _err = capture_io do
264
+ adapter.print_collection(
265
+ fields, collection_data[10...20], current_chunk: :another
266
+ )
267
+ end
268
+ out.must_equal(expected_output)
269
+ end
270
+
271
+ it 'prints last chunk' do
272
+ expected_output = (20...30).each_with_object([]) do |t, r|
273
+ r << ["#{t}", "John #{t}"].join(',')
274
+ end.flatten(1).join("\n") + "\n"
275
+
276
+ out, _err = capture_io do
277
+ adapter.print_collection(
278
+ fields, collection_data[20...30], current_chunk: :last
279
+ )
280
+ end
281
+ out.must_equal(expected_output)
282
+ end
283
+ end
284
+
223
285
  context "output_stream" do
224
286
 
225
287
  let(:tempfile) { Tempfile.new("output_stream_csv_test_temp") }
@@ -316,6 +316,67 @@ describe HammerCLI::Output::Adapter::Json do
316
316
  end
317
317
  end
318
318
 
319
+ context 'printing by chunks' do
320
+ let(:settings) { HammerCLI::Settings }
321
+ let(:context) { { show_ids: true, capitalization: HammerCLI.capitalization } }
322
+ let(:collection_count) { 30 }
323
+ let(:collection) do
324
+ collection_count.times.each_with_object([]) do |t, r|
325
+ r << { id: t, name: "John #{t}"}
326
+ end
327
+ end
328
+ let(:collection_data) do
329
+ HammerCLI::Output::RecordCollection.new(collection)
330
+ end
331
+ let(:fields) { [id, name] }
332
+
333
+ before do
334
+ settings.load(ui: { capitalization: :downcase })
335
+ end
336
+
337
+ it 'prints single chunk' do
338
+ expected_output = JSON.pretty_generate(collection) + "\n"
339
+
340
+ out, _err = capture_io do
341
+ adapter.print_collection(fields, collection_data)
342
+ end
343
+ out.must_equal(expected_output)
344
+ end
345
+
346
+ it 'prints first chunk' do
347
+ expected_output = JSON.pretty_generate(collection[0...10])[0...-2] + ",\n"
348
+
349
+ out, _err = capture_io do
350
+ adapter.print_collection(
351
+ fields, collection_data[0...10], current_chunk: :first
352
+ )
353
+ end
354
+ out.must_equal(expected_output)
355
+ end
356
+
357
+ it 'prints another chunk' do
358
+ expected_output = JSON.pretty_generate(collection[10...20])[2...-2] + ",\n"
359
+
360
+ out, _err = capture_io do
361
+ adapter.print_collection(
362
+ fields, collection_data[10...20], current_chunk: :another
363
+ )
364
+ end
365
+ out.must_equal(expected_output)
366
+ end
367
+
368
+ it 'prints last chunk' do
369
+ expected_output = JSON.pretty_generate(collection[20...30])[2..-1] + "\n"
370
+
371
+ out, _err = capture_io do
372
+ adapter.print_collection(
373
+ fields, collection_data[20...30], current_chunk: :last
374
+ )
375
+ end
376
+ out.must_equal(expected_output)
377
+ end
378
+ end
379
+
319
380
  context "show ids" do
320
381
 
321
382
  let(:context) { {:show_ids => true} }
@@ -9,7 +9,7 @@ describe HammerCLI::Output::Adapter::Table do
9
9
  end
10
10
 
11
11
  context "print_collection" do
12
-
12
+ let(:field_id) { Fields::Id.new(:path => [:id], :label => "Id") }
13
13
  let(:field_name) { Fields::Field.new(:path => [:fullname], :label => "Name") }
14
14
  let(:field_firstname) { Fields::Field.new(:path => [:firstname], :label => "Firstname") }
15
15
  let(:field_lastname) { Fields::Field.new(:path => [:lastname], :label => "Lastname") }
@@ -380,6 +380,75 @@ describe HammerCLI::Output::Adapter::Table do
380
380
 
381
381
  end
382
382
 
383
+ context 'printing by chunks' do
384
+ let(:adapter) { HammerCLI::Output::Adapter::Table.new(show_ids: true) }
385
+ let(:collection_count) { 30 }
386
+ let(:collection_data) do
387
+ collection = collection_count.times.each_with_object([]) do |t, r|
388
+ r << { id: t, fullname: "John Doe #{t}"}
389
+ end
390
+ HammerCLI::Output::RecordCollection.new(collection)
391
+ end
392
+ let(:fields) { [field_id, field_name] }
393
+
394
+ it 'prints single chunk' do
395
+ expected_output = collection_count.times.each_with_object([]) do |t, r|
396
+ sp = t < 10 ? ' ' : ''
397
+ r << ["#{t} #{sp}| John Doe #{t}#{sp}"]
398
+ end.flatten(1).unshift(
399
+ '---|------------',
400
+ 'ID | NAME ',
401
+ "---|------------",
402
+ ).join("\n") + "\n---|------------\n"
403
+
404
+ proc do
405
+ adapter.print_collection(fields, collection_data)
406
+ end.must_output(expected_output)
407
+ end
408
+
409
+ it 'prints first chunk' do
410
+ expected_output = (0...10).each_with_object([]) do |t, r|
411
+ r << [
412
+ "#{t} | John Doe #{t}"
413
+ ]
414
+ end.flatten(1).unshift(
415
+ '---|-----------',
416
+ 'ID | NAME ',
417
+ "---|-----------",
418
+ ).join("\n") + "\n"
419
+
420
+ proc do
421
+ adapter.print_collection(
422
+ fields, collection_data[0...10], current_chunk: :first
423
+ )
424
+ end.must_output(expected_output)
425
+ end
426
+
427
+ it 'prints another chunk' do
428
+ expected_output = (10...20).each_with_object([]) do |t, r|
429
+ r << ["#{t} | John Doe #{t}"]
430
+ end.flatten(1).join("\n") + "\n"
431
+
432
+ proc do
433
+ adapter.print_collection(
434
+ fields, collection_data[10...20], current_chunk: :another
435
+ )
436
+ end.must_output(expected_output)
437
+ end
438
+ #
439
+ it 'prints last chunk' do
440
+ expected_output = (20...30).each_with_object([]) do |t, r|
441
+ r << ["#{t} | John Doe #{t}"]
442
+ end.flatten(1).join("\n") + "\n---|------------\n"
443
+
444
+ proc do
445
+ adapter.print_collection(
446
+ fields, collection_data[20...30], current_chunk: :last
447
+ )
448
+ end.must_output(expected_output)
449
+ end
450
+ end
451
+
383
452
  context "output_stream" do
384
453
 
385
454
  let(:tempfile) { Tempfile.new("output_stream_table_test_temp") }
@@ -312,6 +312,65 @@ describe HammerCLI::Output::Adapter::Yaml do
312
312
  end
313
313
  end
314
314
 
315
+ context 'printing by chunks' do
316
+ let(:context) { { show_ids: true } }
317
+ let(:collection_count) { 30 }
318
+ let(:collection) do
319
+ collection_count.times.each_with_object([]) do |t, r|
320
+ r << { id: t, name: "John #{t}"}
321
+ end
322
+ end
323
+ let(:prepared_collection) do
324
+ collection.map { |i| i.transform_keys { |k| k.to_s.capitalize } }
325
+ end
326
+ let(:collection_data) do
327
+ HammerCLI::Output::RecordCollection.new(collection)
328
+ end
329
+ let(:fields) { [id, name] }
330
+
331
+ it 'prints single chunk' do
332
+ expected_output = YAML.dump(prepared_collection)
333
+
334
+ out, _err = capture_io do
335
+ adapter.print_collection(fields, collection_data)
336
+ end
337
+ out.must_equal(expected_output)
338
+ end
339
+
340
+ it 'prints first chunk' do
341
+ expected_output = YAML.dump(prepared_collection[0...10])
342
+
343
+ out, _err = capture_io do
344
+ adapter.print_collection(
345
+ fields, collection_data[0...10], current_chunk: :first
346
+ )
347
+ end
348
+ out.must_equal(expected_output)
349
+ end
350
+
351
+ it 'prints another chunk' do
352
+ expected_output = YAML.dump(prepared_collection[10...20])[4..-1]
353
+
354
+ out, _err = capture_io do
355
+ adapter.print_collection(
356
+ fields, collection_data[10...20], current_chunk: :another
357
+ )
358
+ end
359
+ out.must_equal(expected_output)
360
+ end
361
+
362
+ it 'prints last chunk' do
363
+ expected_output = YAML.dump(prepared_collection[20...30])[4..-1]
364
+
365
+ out, _err = capture_io do
366
+ adapter.print_collection(
367
+ fields, collection_data[20...30], current_chunk: :last
368
+ )
369
+ end
370
+ out.must_equal(expected_output)
371
+ end
372
+ end
373
+
315
374
  context "show ids" do
316
375
 
317
376
  let(:context) { {:show_ids => true} }
@@ -58,19 +58,19 @@ describe HammerCLI::Output::Output do
58
58
  end
59
59
 
60
60
  it "prints single resource as collection" do
61
- adapter.any_instance.expects(:print_collection).with([], instance_of(HammerCLI::Output::RecordCollection))
61
+ adapter.any_instance.expects(:print_collection).with([], instance_of(HammerCLI::Output::RecordCollection), {})
62
62
  out.print_collection(definition, item1)
63
63
  end
64
64
 
65
65
 
66
66
  it "prints array of resources" do
67
- adapter.any_instance.expects(:print_collection).with([], instance_of(HammerCLI::Output::RecordCollection))
67
+ adapter.any_instance.expects(:print_collection).with([], instance_of(HammerCLI::Output::RecordCollection), {})
68
68
  out.print_collection(definition, collection)
69
69
  end
70
70
 
71
71
  it "prints recordset" do
72
72
  data = HammerCLI::Output::RecordCollection.new(collection)
73
- adapter.any_instance.expects(:print_collection).with([], data)
73
+ adapter.any_instance.expects(:print_collection).with([], data, {})
74
74
  out.print_collection(definition, data)
75
75
  end
76
76
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hammer_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Bačovský
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-16 00:00:00.000000000 Z
12
+ date: 2020-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: clamp
@@ -149,38 +149,42 @@ description: 'Hammer cli provides universal extendable CLI interface for ruby ap
149
149
  email: mbacovsk@redhat.com
150
150
  executables:
151
151
  - hammer
152
+ - hammer-complete
152
153
  extensions: []
153
154
  extra_rdoc_files:
154
155
  - doc/commands_extension.md
155
- - doc/commands_modification.md
156
- - doc/creating_apipie_commands.md
156
+ - doc/release_notes.md
157
157
  - doc/design.png
158
- - doc/design.uml
158
+ - doc/commands_modification.md
159
+ - doc/installation.md
159
160
  - doc/development_tips.md
160
- - doc/i18n.md
161
+ - doc/writing_a_plugin.md
162
+ - doc/output.md
163
+ - doc/developer_docs.md
161
164
  - doc/installation_deb.md
162
- - doc/installation_gem.md
165
+ - doc/option_normalizers.md
163
166
  - doc/installation_rpm.md
167
+ - doc/installation_gem.md
168
+ - doc/help_modification.md
169
+ - doc/creating_commands.md
164
170
  - doc/installation_source.md
165
171
  - doc/option_builders.md
166
- - doc/option_normalizers.md
167
- - doc/writing_a_plugin.md
168
- - doc/developer_docs.md
169
- - doc/output.md
172
+ - doc/i18n.md
170
173
  - doc/review_checklist.md
171
- - doc/installation.md
172
- - doc/release_notes.md
173
- - doc/help_modification.md
174
- - doc/creating_commands.md
174
+ - doc/creating_apipie_commands.md
175
+ - doc/design.uml
175
176
  - config/cli.modules.d/module_config_template.yml
176
177
  - config/cli_config.template.yml
178
+ - config/hammer.completion
177
179
  - README.md
178
180
  files:
179
181
  - LICENSE
180
182
  - README.md
181
183
  - bin/hammer
184
+ - bin/hammer-complete
182
185
  - config/cli.modules.d/module_config_template.yml
183
186
  - config/cli_config.template.yml
187
+ - config/hammer.completion
184
188
  - doc/commands_extension.md
185
189
  - doc/commands_modification.md
186
190
  - doc/creating_apipie_commands.md
@@ -202,7 +206,6 @@ files:
202
206
  - doc/release_notes.md
203
207
  - doc/review_checklist.md
204
208
  - doc/writing_a_plugin.md
205
- - hammer_cli_complete
206
209
  - lib/hammer_cli.rb
207
210
  - lib/hammer_cli/abstract.rb
208
211
  - lib/hammer_cli/apipie.rb
@@ -212,6 +215,9 @@ files:
212
215
  - lib/hammer_cli/apipie/option_definition.rb
213
216
  - lib/hammer_cli/apipie/options.rb
214
217
  - lib/hammer_cli/apipie/resource.rb
218
+ - lib/hammer_cli/bash.rb
219
+ - lib/hammer_cli/bash/completion.rb
220
+ - lib/hammer_cli/bash/prebuild_command.rb
215
221
  - lib/hammer_cli/ca_cert_fetcher.rb
216
222
  - lib/hammer_cli/ca_cert_manager.rb
217
223
  - lib/hammer_cli/clamp.rb
@@ -312,6 +318,7 @@ files:
312
318
  - test/unit/apipie/option_builder_test.rb
313
319
  - test/unit/apipie/option_definition_test.rb
314
320
  - test/unit/apipie/test_helper.rb
321
+ - test/unit/bash_test.rb
315
322
  - test/unit/ca_cert_manager_test.rb
316
323
  - test/unit/command_extensions_test.rb
317
324
  - test/unit/completer_test.rb
@@ -385,74 +392,74 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
392
  - !ruby/object:Gem::Version
386
393
  version: '0'
387
394
  requirements: []
388
- rubyforge_project:
389
- rubygems_version: 2.7.10
395
+ rubygems_version: 3.0.3
390
396
  signing_key:
391
397
  specification_version: 4
392
398
  summary: Universal command-line interface
393
399
  test_files:
394
- - test/functional/defaults_test.rb
395
- - test/functional/help_test.rb
396
- - test/functional/nil_values_test.rb
397
- - test/functional/test_helper.rb
398
- - test/test_helper.rb
399
- - test/unit/abstract_test.rb
400
+ - test/unit/messages_test.rb
401
+ - test/unit/exception_handler_test.rb
402
+ - test/unit/modules_test.rb
403
+ - test/unit/connection_test.rb
404
+ - test/unit/completer_test.rb
405
+ - test/unit/csv_parser_test.rb
406
+ - test/unit/option_builder_test.rb
407
+ - test/unit/test_helper.rb
408
+ - test/unit/utils_test.rb
400
409
  - test/unit/apipie/command_test.rb
401
410
  - test/unit/apipie/option_builder_test.rb
402
- - test/unit/apipie/option_definition_test.rb
403
411
  - test/unit/apipie/test_helper.rb
404
412
  - test/unit/apipie/api_connection_test.rb
405
- - test/unit/ca_cert_manager_test.rb
413
+ - test/unit/apipie/option_definition_test.rb
406
414
  - test/unit/command_extensions_test.rb
407
- - test/unit/completer_test.rb
408
- - test/unit/connection_test.rb
409
- - test/unit/csv_parser_test.rb
415
+ - test/unit/main_test.rb
416
+ - test/unit/options/processor_list_test.rb
417
+ - test/unit/options/validators/dsl_test.rb
418
+ - test/unit/options/sources/command_line_test.rb
419
+ - test/unit/options/sources/saved_defaults_test.rb
420
+ - test/unit/options/matcher_test.rb
421
+ - test/unit/options/option_collector_test.rb
422
+ - test/unit/options/normalizers_test.rb
423
+ - test/unit/options/option_definition_test.rb
424
+ - test/unit/settings_test.rb
425
+ - test/unit/history_test.rb
410
426
  - test/unit/defaults_test.rb
427
+ - test/unit/logger_test.rb
428
+ - test/unit/output/formatters_test.rb
429
+ - test/unit/output/record_collection_test.rb
430
+ - test/unit/output/dsl_test.rb
431
+ - test/unit/output/definition_test.rb
432
+ - test/unit/output/output_test.rb
433
+ - test/unit/output/field_filter_test.rb
434
+ - test/unit/output/fields_test.rb
435
+ - test/unit/output/adapter/table_test.rb
436
+ - test/unit/output/adapter/json_test.rb
437
+ - test/unit/output/adapter/abstract_test.rb
438
+ - test/unit/output/adapter/yaml_test.rb
439
+ - test/unit/output/adapter/csv_test.rb
440
+ - test/unit/output/adapter/base_test.rb
441
+ - test/unit/abstract_test.rb
442
+ - test/unit/i18n_test.rb
411
443
  - test/unit/fixtures/apipie/architectures.json
412
444
  - test/unit/fixtures/apipie/documented.json
413
- - test/unit/fixtures/certs/ca_cert.pem
414
- - test/unit/fixtures/certs/non_ca_cert.pem
415
- - test/unit/fixtures/defaults/defaults.yml
416
445
  - test/unit/fixtures/defaults/defaults_dashed.yml
417
- - test/unit/fixtures/json_input/invalid.json
446
+ - test/unit/fixtures/defaults/defaults.yml
418
447
  - test/unit/fixtures/json_input/valid.json
419
- - test/unit/help/builder_test.rb
420
- - test/unit/help/definition/abstract_item_test.rb
448
+ - test/unit/fixtures/json_input/invalid.json
449
+ - test/unit/fixtures/certs/ca_cert.pem
450
+ - test/unit/fixtures/certs/non_ca_cert.pem
451
+ - test/unit/bash_test.rb
421
452
  - test/unit/help/definition/section_test.rb
422
453
  - test/unit/help/definition/list_test.rb
423
- - test/unit/help/definition/note_test.rb
424
454
  - test/unit/help/definition/text_test.rb
455
+ - test/unit/help/definition/abstract_item_test.rb
456
+ - test/unit/help/definition/note_test.rb
425
457
  - test/unit/help/definition_test.rb
458
+ - test/unit/help/builder_test.rb
426
459
  - test/unit/help/text_builder_test.rb
427
- - test/unit/history_test.rb
428
- - test/unit/i18n_test.rb
429
- - test/unit/logger_test.rb
430
- - test/unit/main_test.rb
431
- - test/unit/messages_test.rb
432
- - test/unit/modules_test.rb
433
- - test/unit/option_builder_test.rb
434
- - test/unit/options/matcher_test.rb
435
- - test/unit/options/normalizers_test.rb
436
- - test/unit/options/option_collector_test.rb
437
- - test/unit/options/option_definition_test.rb
438
- - test/unit/options/processor_list_test.rb
439
- - test/unit/options/sources/command_line_test.rb
440
- - test/unit/options/sources/saved_defaults_test.rb
441
- - test/unit/options/validators/dsl_test.rb
442
- - test/unit/output/adapter/abstract_test.rb
443
- - test/unit/output/adapter/base_test.rb
444
- - test/unit/output/adapter/csv_test.rb
445
- - test/unit/output/adapter/json_test.rb
446
- - test/unit/output/adapter/table_test.rb
447
- - test/unit/output/adapter/yaml_test.rb
448
- - test/unit/output/dsl_test.rb
449
- - test/unit/output/field_filter_test.rb
450
- - test/unit/output/fields_test.rb
451
- - test/unit/output/record_collection_test.rb
452
- - test/unit/output/formatters_test.rb
453
- - test/unit/output/definition_test.rb
454
- - test/unit/output/output_test.rb
455
- - test/unit/settings_test.rb
456
- - test/unit/test_helper.rb
457
- - test/unit/utils_test.rb
458
- - test/unit/exception_handler_test.rb
460
+ - test/unit/ca_cert_manager_test.rb
461
+ - test/functional/help_test.rb
462
+ - test/functional/test_helper.rb
463
+ - test/functional/nil_values_test.rb
464
+ - test/functional/defaults_test.rb
465
+ - test/test_helper.rb