hammer_cli 2.5.0 → 3.1.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/bin/hammer +1 -1
  3. data/doc/commands_extension.md +8 -6
  4. data/doc/creating_commands.md +17 -0
  5. data/doc/release_notes.md +23 -0
  6. data/lib/hammer_cli/abstract.rb +75 -60
  7. data/lib/hammer_cli/apipie/command.rb +1 -1
  8. data/lib/hammer_cli/apipie/option_builder.rb +16 -11
  9. data/lib/hammer_cli/apipie/option_definition.rb +1 -8
  10. data/lib/hammer_cli/command_extensions.rb +47 -34
  11. data/lib/hammer_cli/help/builder.rb +10 -6
  12. data/lib/hammer_cli/options/normalizers.rb +126 -18
  13. data/lib/hammer_cli/options/option_definition.rb +17 -22
  14. data/lib/hammer_cli/options/option_family.rb +44 -8
  15. data/lib/hammer_cli/output/adapter/abstract.rb +6 -0
  16. data/lib/hammer_cli/output/adapter/base.rb +1 -1
  17. data/lib/hammer_cli/output/adapter/tree_structure.rb +1 -1
  18. data/lib/hammer_cli/output/definition.rb +1 -1
  19. data/lib/hammer_cli/output/field_filter.rb +2 -2
  20. data/lib/hammer_cli/utils.rb +6 -0
  21. data/lib/hammer_cli/version.rb +1 -1
  22. data/locale/ca/LC_MESSAGES/hammer-cli.mo +0 -0
  23. data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
  24. data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
  25. data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
  26. data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
  27. data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
  28. data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
  29. data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
  30. data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
  31. data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
  32. data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
  33. data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
  34. data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
  35. data/man/hammer.1.gz +0 -0
  36. data/test/unit/abstract_test.rb +7 -0
  37. data/test/unit/apipie/option_builder_test.rb +8 -3
  38. data/test/unit/command_extensions_test.rb +10 -2
  39. data/test/unit/help/builder_test.rb +20 -2
  40. data/test/unit/options/option_definition_test.rb +12 -1
  41. data/test/unit/output/definition_test.rb +3 -3
  42. metadata +22 -22
@@ -21,6 +21,24 @@ describe HammerCLI::Help::Builder do
21
21
  ' --zzz-option OPT_Z Some description'
22
22
  ].join("\n")
23
23
  end
24
+
25
+ it 'prints long option descriptions aligned' do
26
+ opt_a_desc = 'AAAAAAA ' * 20
27
+ opt_b_desc = 'BBBBBBB ' * 20
28
+ options = [
29
+ Clamp::Option::Definition.new(['--aaa-option'], 'OPT_A', opt_a_desc),
30
+ Clamp::Option::Definition.new(['--bbb-option'], 'OPT_B', opt_b_desc)
31
+ ]
32
+ help.add_list('Options', options)
33
+
34
+ help.string.strip.must_equal [
35
+ 'Options:',
36
+ ' --aaa-option OPT_A %s' % ('AAAAAAA ' * 10).strip,
37
+ ' %s' % ('AAAAAAA ' * 10).strip,
38
+ ' --bbb-option OPT_B %s' % ('BBBBBBB ' * 10).strip,
39
+ ' %s' % ('BBBBBBB ' * 10).strip
40
+ ].join("\n")
41
+ end
24
42
  end
25
43
 
26
44
  describe 'adding an option with lower case description' do
@@ -86,8 +104,8 @@ describe HammerCLI::Help::Builder do
86
104
 
87
105
  help.string.strip.must_equal [
88
106
  'Options:',
89
- ' --option[-yyy|-bbb] Some description',
90
- ' --option[-aaa|-zzz] Some description',
107
+ ' --option[-yyy|-bbb] VALUE Some description',
108
+ ' --option[-aaa|-zzz] VALUE Some description'
91
109
  ].join("\n")
92
110
  end
93
111
  end
@@ -25,6 +25,10 @@ describe HammerCLI::Options::OptionDefinition do
25
25
  option "--another-deprecated", "OLD_OPTION", "Test old option",
26
26
  :context_target => :old_option,
27
27
  :deprecated => "It is going to be removed"
28
+
29
+ def find_option(switch)
30
+ super(switch)
31
+ end
28
32
  end
29
33
 
30
34
  def opt_with_deprecation(deprecation)
@@ -73,6 +77,14 @@ describe HammerCLI::Options::OptionDefinition do
73
77
  context[:test_option].must_equal "VALUE"
74
78
  end
75
79
 
80
+ it "doesn't print deprecation warning if the option is not used" do
81
+ context = {}
82
+ cmd = TestDeprecatedOptionCmd.new('', context)
83
+ cmd.find_option('--deprecated')
84
+ _out, err = capture_io { cmd.run([]) }
85
+ err.must_equal ''
86
+ end
87
+
76
88
  it 'shows depracated message in help' do
77
89
  opt = opt_with_deprecation("Use --better-switch instead")
78
90
  opt.description.must_equal "Test option (Deprecated: Use --better-switch instead)"
@@ -98,4 +110,3 @@ describe HammerCLI::Options::OptionDefinition do
98
110
  end
99
111
  end
100
112
  end
101
-
@@ -269,9 +269,9 @@ describe HammerCLI::Output::Definition do
269
269
  sets_table = "---------|-----|---------|----\n" \
270
270
  "FIELDS | ALL | DEFAULT | SET\n" \
271
271
  "---------|-----|---------|----\n" \
272
- "newfield | x | x | \n" \
273
- "cf/abc | | | x \n" \
274
- "cf/bca | | | x \n" \
272
+ "Newfield | x | x | \n" \
273
+ "Cf/abc | | | x \n" \
274
+ "Cf/bca | | | x \n" \
275
275
  "---------|-----|---------|----\n"
276
276
 
277
277
  definition.sets_table.must_equal sets_table
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: 2.5.0
4
+ version: 3.1.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: 2021-05-04 00:00:00.000000000 Z
12
+ date: 2021-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: clamp
@@ -152,30 +152,30 @@ executables:
152
152
  - hammer-complete
153
153
  extensions: []
154
154
  extra_rdoc_files:
155
- - doc/commands_modification.md
156
155
  - doc/creating_apipie_commands.md
157
156
  - doc/design.png
158
157
  - doc/design.uml
159
- - doc/developer_docs.md
160
158
  - doc/development_tips.md
161
- - doc/help_modification.md
162
159
  - doc/i18n.md
163
160
  - doc/installation_deb.md
164
161
  - doc/installation_gem.md
165
162
  - doc/option_builders.md
166
163
  - doc/option_normalizers.md
167
- - doc/output.md
168
- - doc/review_checklist.md
169
164
  - doc/writing_a_plugin.md
170
- - doc/commands_extension.md
171
- - doc/creating_commands.md
172
- - doc/installation_rpm.md
173
165
  - doc/installation_source.md
174
- - doc/installation.md
175
166
  - doc/release_notes.md
167
+ - doc/commands_extension.md
168
+ - doc/commands_modification.md
169
+ - doc/developer_docs.md
170
+ - doc/help_modification.md
171
+ - doc/installation.md
172
+ - doc/installation_rpm.md
173
+ - doc/output.md
174
+ - doc/review_checklist.md
175
+ - doc/creating_commands.md
176
176
  - config/cli.modules.d/module_config_template.yml
177
- - config/hammer.completion
178
177
  - config/cli_config.template.yml
178
+ - config/hammer.completion
179
179
  - README.md
180
180
  files:
181
181
  - LICENSE
@@ -394,7 +394,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
394
394
  - !ruby/object:Gem::Version
395
395
  version: '0'
396
396
  requirements: []
397
- rubygems_version: 3.0.8
397
+ rubygems_version: 3.1.2
398
398
  signing_key:
399
399
  specification_version: 4
400
400
  summary: Universal command-line interface
@@ -404,18 +404,16 @@ test_files:
404
404
  - test/functional/nil_values_test.rb
405
405
  - test/functional/test_helper.rb
406
406
  - test/test_helper.rb
407
- - test/unit/apipie/api_connection_test.rb
408
407
  - test/unit/apipie/command_test.rb
409
408
  - test/unit/apipie/option_definition_test.rb
410
409
  - test/unit/apipie/test_helper.rb
410
+ - test/unit/apipie/api_connection_test.rb
411
411
  - test/unit/apipie/option_builder_test.rb
412
- - test/unit/bash_test.rb
413
412
  - test/unit/ca_cert_manager_test.rb
414
413
  - test/unit/completer_test.rb
415
414
  - test/unit/connection_test.rb
416
415
  - test/unit/csv_parser_test.rb
417
416
  - test/unit/defaults_test.rb
418
- - test/unit/exception_handler_test.rb
419
417
  - test/unit/fixtures/apipie/architectures.json
420
418
  - test/unit/fixtures/apipie/documented.json
421
419
  - test/unit/fixtures/certs/ca_cert.pem
@@ -425,9 +423,9 @@ test_files:
425
423
  - test/unit/fixtures/json_input/invalid.json
426
424
  - test/unit/fixtures/json_input/valid.json
427
425
  - test/unit/help/definition/abstract_item_test.rb
426
+ - test/unit/help/definition/section_test.rb
428
427
  - test/unit/help/definition/list_test.rb
429
428
  - test/unit/help/definition/note_test.rb
430
- - test/unit/help/definition/section_test.rb
431
429
  - test/unit/help/definition/text_test.rb
432
430
  - test/unit/help/definition_test.rb
433
431
  - test/unit/help/text_builder_test.rb
@@ -440,14 +438,14 @@ test_files:
440
438
  - test/unit/modules_test.rb
441
439
  - test/unit/option_builder_test.rb
442
440
  - test/unit/options/matcher_test.rb
443
- - test/unit/options/normalizers_test.rb
444
441
  - test/unit/options/option_collector_test.rb
445
- - test/unit/options/option_definition_test.rb
446
442
  - test/unit/options/processor_list_test.rb
447
443
  - test/unit/options/sources/command_line_test.rb
448
444
  - test/unit/options/sources/saved_defaults_test.rb
449
445
  - test/unit/options/validators/dsl_test.rb
446
+ - test/unit/options/normalizers_test.rb
450
447
  - test/unit/options/option_family_test.rb
448
+ - test/unit/options/option_definition_test.rb
451
449
  - test/unit/output/adapter/abstract_test.rb
452
450
  - test/unit/output/adapter/base_test.rb
453
451
  - test/unit/output/adapter/csv_test.rb
@@ -455,14 +453,16 @@ test_files:
455
453
  - test/unit/output/adapter/table_test.rb
456
454
  - test/unit/output/adapter/yaml_test.rb
457
455
  - test/unit/output/dsl_test.rb
458
- - test/unit/output/field_filter_test.rb
459
456
  - test/unit/output/fields_test.rb
460
- - test/unit/output/formatters_test.rb
461
- - test/unit/output/output_test.rb
462
457
  - test/unit/output/record_collection_test.rb
463
458
  - test/unit/output/definition_test.rb
459
+ - test/unit/output/field_filter_test.rb
460
+ - test/unit/output/formatters_test.rb
461
+ - test/unit/output/output_test.rb
464
462
  - test/unit/settings_test.rb
465
463
  - test/unit/test_helper.rb
466
464
  - test/unit/utils_test.rb
465
+ - test/unit/bash_test.rb
466
+ - test/unit/exception_handler_test.rb
467
467
  - test/unit/abstract_test.rb
468
468
  - test/unit/command_extensions_test.rb