hammer_cli 0.18.1 → 0.19.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 (181) hide show
  1. checksums.yaml +4 -4
  2. data/doc/creating_commands.md +2 -8
  3. data/doc/developer_docs.md +2 -0
  4. data/doc/help_modification.md +35 -4
  5. data/doc/output.md +43 -0
  6. data/doc/release_notes.md +6 -2
  7. data/doc/review_checklist.md +17 -0
  8. data/lib/hammer_cli/help/definition.rb +1 -0
  9. data/lib/hammer_cli/help/definition/abstract_item.rb +2 -1
  10. data/lib/hammer_cli/help/definition/list.rb +5 -2
  11. data/lib/hammer_cli/help/definition/note.rb +30 -0
  12. data/lib/hammer_cli/help/definition/section.rb +0 -1
  13. data/lib/hammer_cli/help/definition/text.rb +3 -1
  14. data/lib/hammer_cli/help/text_builder.rb +7 -2
  15. data/lib/hammer_cli/main.rb +2 -2
  16. data/lib/hammer_cli/output/adapter/abstract.rb +9 -3
  17. data/lib/hammer_cli/output/adapter/base.rb +4 -2
  18. data/lib/hammer_cli/output/adapter/csv.rb +4 -2
  19. data/lib/hammer_cli/output/adapter/table.rb +4 -2
  20. data/lib/hammer_cli/output/adapter/tree_structure.rb +4 -4
  21. data/lib/hammer_cli/output/fields.rb +3 -0
  22. data/lib/hammer_cli/output/formatters.rb +77 -27
  23. data/lib/hammer_cli/output/utils.rb +12 -1
  24. data/lib/hammer_cli/version.rb +1 -1
  25. data/locale/ca/LC_MESSAGES/hammer-cli.mo +0 -0
  26. data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
  27. data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
  28. data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
  29. data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
  30. data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
  31. data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
  32. data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
  33. data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
  34. data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
  35. data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
  36. data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
  37. data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
  38. data/man/hammer.1.gz +0 -0
  39. data/test/reports/TEST-Fields-ContainerField-display-.xml +7 -0
  40. data/test/reports/TEST-Fields-ContainerField-display-blank-is-allowed.xml +15 -0
  41. data/test/reports/TEST-Fields-ContainerField-display-blank-is-not-allowed.xml +15 -0
  42. data/test/reports/TEST-Fields-ContainerField.xml +7 -0
  43. data/test/reports/TEST-Fields-Field-display-.xml +7 -0
  44. data/test/reports/TEST-Fields-Field-display-blank-is-allowed.xml +11 -0
  45. data/test/reports/TEST-Fields-Field-display-blank-is-not-allowed.xml +11 -0
  46. data/test/reports/TEST-Fields-Field-hide-blank-.xml +11 -0
  47. data/test/reports/TEST-Fields-Field-parameters.xml +9 -0
  48. data/test/reports/TEST-Fields-Field.xml +13 -0
  49. data/test/reports/TEST-HammerCLI-AbstractCommand-build-options.xml +15 -0
  50. data/test/reports/TEST-HammerCLI-AbstractCommand-exception-handler.xml +13 -0
  51. data/test/reports/TEST-HammerCLI-AbstractCommand-logging.xml +21 -0
  52. data/test/reports/TEST-HammerCLI-AbstractCommand-option-builder.xml +11 -0
  53. data/test/reports/TEST-HammerCLI-AbstractCommand-options.xml +11 -0
  54. data/test/reports/TEST-HammerCLI-AbstractCommand-output.xml +19 -0
  55. data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-remove-subcommand.xml +11 -0
  56. data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand-.xml +13 -0
  57. data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand.xml +11 -0
  58. data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior.xml +7 -0
  59. data/test/reports/TEST-HammerCLI-AbstractCommand.xml +11 -0
  60. data/test/reports/TEST-HammerCLI-Apipie-Command-options.xml +11 -0
  61. data/test/reports/TEST-HammerCLI-Apipie-Command-resource-defined.xml +9 -0
  62. data/test/reports/TEST-HammerCLI-Apipie-Command-setting-resources.xml +19 -0
  63. data/test/reports/TEST-HammerCLI-Apipie-Command.xml +9 -0
  64. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-aliasing-resources.xml +13 -0
  65. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-filtering-options.xml +15 -0
  66. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-required-options.xml +11 -0
  67. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-setting-correct-normalizers.xml +9 -0
  68. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-hash-params.xml +11 -0
  69. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-one-simple-param.xml +15 -0
  70. data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder.xml +7 -0
  71. data/test/reports/TEST-HammerCLI-Completer-command-completion.xml +29 -0
  72. data/test/reports/TEST-HammerCLI-Completer-option-value-completion.xml +17 -0
  73. data/test/reports/TEST-HammerCLI-Completer-subcommand-completion.xml +19 -0
  74. data/test/reports/TEST-HammerCLI-Completer.xml +7 -0
  75. data/test/reports/TEST-HammerCLI-CompleterLine-line-complete.xml +25 -0
  76. data/test/reports/TEST-HammerCLI-CompleterLine-splitting-words.xml +29 -0
  77. data/test/reports/TEST-HammerCLI-CompleterLine.xml +7 -0
  78. data/test/reports/TEST-HammerCLI-CompleterWord-complete-.xml +23 -0
  79. data/test/reports/TEST-HammerCLI-CompleterWord-quote.xml +15 -0
  80. data/test/reports/TEST-HammerCLI-CompleterWord-quoted-.xml +13 -0
  81. data/test/reports/TEST-HammerCLI-CompleterWord.xml +7 -0
  82. data/test/reports/TEST-HammerCLI-Connection.xml +21 -0
  83. data/test/reports/TEST-HammerCLI-ExceptionHandler.xml +21 -0
  84. data/test/reports/TEST-HammerCLI-I18n.xml +11 -0
  85. data/test/reports/TEST-HammerCLI-MainCommand-loading-context-password.xml +11 -0
  86. data/test/reports/TEST-HammerCLI-MainCommand-loading-context-username.xml +11 -0
  87. data/test/reports/TEST-HammerCLI-MainCommand-loading-context-verbose.xml +9 -0
  88. data/test/reports/TEST-HammerCLI-MainCommand-loading-context.xml +7 -0
  89. data/test/reports/TEST-HammerCLI-MainCommand.xml +7 -0
  90. data/test/reports/TEST-HammerCLI-Modules-find-by-name.xml +13 -0
  91. data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-not-found.xml +13 -0
  92. data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-runtime-exception.xml +13 -0
  93. data/test/reports/TEST-HammerCLI-Modules-load-a-module-success.xml +15 -0
  94. data/test/reports/TEST-HammerCLI-Modules-load-a-module.xml +7 -0
  95. data/test/reports/TEST-HammerCLI-Modules-load-all-modules.xml +9 -0
  96. data/test/reports/TEST-HammerCLI-Modules-names.xml +13 -0
  97. data/test/reports/TEST-HammerCLI-Modules.xml +7 -0
  98. data/test/reports/TEST-HammerCLI-OptionBuilderContainer.0.xml +7 -0
  99. data/test/reports/TEST-HammerCLI-OptionBuilderContainer.xml +11 -0
  100. data/test/reports/TEST-HammerCLI-Options-Normalizers-abstract.xml +9 -0
  101. data/test/reports/TEST-HammerCLI-Options-Normalizers-bool.xml +31 -0
  102. data/test/reports/TEST-HammerCLI-Options-Normalizers-datetime.xml +17 -0
  103. data/test/reports/TEST-HammerCLI-Options-Normalizers-enum.xml +15 -0
  104. data/test/reports/TEST-HammerCLI-Options-Normalizers-enumlist.xml +21 -0
  105. data/test/reports/TEST-HammerCLI-Options-Normalizers-json-input.xml +15 -0
  106. data/test/reports/TEST-HammerCLI-Options-Normalizers-key-value-list.xml +17 -0
  107. data/test/reports/TEST-HammerCLI-Options-Normalizers-list.xml +15 -0
  108. data/test/reports/TEST-HammerCLI-Options-Normalizers.xml +7 -0
  109. data/test/reports/TEST-HammerCLI-Options-OptionDefinition-context.xml +9 -0
  110. data/test/reports/TEST-HammerCLI-Options-OptionDefinition-formatters.xml +11 -0
  111. data/test/reports/TEST-HammerCLI-Options-OptionDefinition.xml +7 -0
  112. data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-error-messages.xml +15 -0
  113. data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-messages.xml +11 -0
  114. data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-test-data-for-field.xml +15 -0
  115. data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract.xml +17 -0
  116. data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection-show-ids.xml +9 -0
  117. data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection.xml +27 -0
  118. data/test/reports/TEST-HammerCLI-Output-Adapter-Base.xml +7 -0
  119. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-formatters.xml +11 -0
  120. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-collections.xml +13 -0
  121. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-containers.xml +11 -0
  122. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-ids.xml +11 -0
  123. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection.xml +11 -0
  124. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-message.xml +11 -0
  125. data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues.xml +7 -0
  126. data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-column-width.xml +15 -0
  127. data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-formatters.xml +11 -0
  128. data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-handle-ids.xml +11 -0
  129. data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-sort-columns.xml +9 -0
  130. data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection.xml +11 -0
  131. data/test/reports/TEST-HammerCLI-Output-Adapter-Table.xml +7 -0
  132. data/test/reports/TEST-HammerCLI-Output-Definition-empty-.xml +11 -0
  133. data/test/reports/TEST-HammerCLI-Output-Definition.xml +11 -0
  134. data/test/reports/TEST-HammerCLI-Output-Dsl-collection.xml +13 -0
  135. data/test/reports/TEST-HammerCLI-Output-Dsl-custom-fields.xml +11 -0
  136. data/test/reports/TEST-HammerCLI-Output-Dsl-fields.xml +15 -0
  137. data/test/reports/TEST-HammerCLI-Output-Dsl-label.xml +13 -0
  138. data/test/reports/TEST-HammerCLI-Output-Dsl-path-definition.xml +13 -0
  139. data/test/reports/TEST-HammerCLI-Output-Dsl.xml +9 -0
  140. data/test/reports/TEST-HammerCLI-Output-FieldFilter.xml +13 -0
  141. data/test/reports/TEST-HammerCLI-Output-Formatters-BooleanFormatter.xml +11 -0
  142. data/test/reports/TEST-HammerCLI-Output-Formatters-ColorFormatter.xml +9 -0
  143. data/test/reports/TEST-HammerCLI-Output-Formatters-DateFormatter.xml +11 -0
  144. data/test/reports/TEST-HammerCLI-Output-Formatters-FieldFormatter.xml +13 -0
  145. data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterContainer.xml +13 -0
  146. data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterLibrary.xml +11 -0
  147. data/test/reports/TEST-HammerCLI-Output-Formatters-KeyValueFormatter.xml +13 -0
  148. data/test/reports/TEST-HammerCLI-Output-Formatters-ListFormatter.xml +13 -0
  149. data/test/reports/TEST-HammerCLI-Output-Formatters-LongTextFormatter.xml +13 -0
  150. data/test/reports/TEST-HammerCLI-Output-Output-adapters.xml +17 -0
  151. data/test/reports/TEST-HammerCLI-Output-Output-data.xml +15 -0
  152. data/test/reports/TEST-HammerCLI-Output-Output-formatters.xml +9 -0
  153. data/test/reports/TEST-HammerCLI-Output-Output-messages.xml +19 -0
  154. data/test/reports/TEST-HammerCLI-Output-Output.xml +7 -0
  155. data/test/reports/TEST-HammerCLI-Output-RecordCollection.xml +13 -0
  156. data/test/reports/TEST-HammerCLI-Settings-load-from-paths.xml +15 -0
  157. data/test/reports/TEST-HammerCLI-Settings.xml +25 -0
  158. data/test/reports/TEST-HammerCLI-ShellHistory-loading-old-history.xml +11 -0
  159. data/test/reports/TEST-HammerCLI-ShellHistory-saving-history.xml +15 -0
  160. data/test/reports/TEST-HammerCLI-ShellHistory.xml +7 -0
  161. data/test/reports/TEST-MiniTest-Spec.xml +7 -0
  162. data/test/reports/TEST-String-camelize.xml +11 -0
  163. data/test/reports/TEST-String-formatting.xml +17 -0
  164. data/test/reports/TEST-String-indent.xml +11 -0
  165. data/test/reports/TEST-String-interactive-.xml +13 -0
  166. data/test/reports/TEST-String.xml +7 -0
  167. data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint-exist-.xml +13 -0
  168. data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint.xml +7 -0
  169. data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint-exist-.xml +13 -0
  170. data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint.xml +7 -0
  171. data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-exist-.xml +9 -0
  172. data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-rejected.xml +13 -0
  173. data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-required.xml +13 -0
  174. data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint.xml +7 -0
  175. data/test/reports/TEST-constraints.xml +7 -0
  176. data/test/unit/help/definition/list_test.rb +12 -0
  177. data/test/unit/help/definition/note_test.rb +18 -0
  178. data/test/unit/help/definition/text_test.rb +5 -0
  179. data/test/unit/output/adapter/abstract_test.rb +9 -9
  180. data/test/unit/output/formatters_test.rb +49 -6
  181. metadata +348 -67
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="HammerCLI::Settings::load from paths" tests="4" time="0.002082013" failures="0" errors="0" skipped="0" assertions="8">
3
+ <testcase name="test_0004_loads settings from dir" time="0.001015615" assertions="4">
4
+ </testcase>
5
+ <testcase name="test_0002_clears path history on clear invokation" time="0.000203806" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0003_store config path history" time="0.000329641" assertions="1">
8
+ </testcase>
9
+ <testcase name="test_0001_loads settings from file" time="0.000327472" assertions="2">
10
+ </testcase>
11
+ <system-out>
12
+ </system-out>
13
+ <system-err>
14
+ </system-err>
15
+ </testsuite>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="HammerCLI::Settings" tests="9" time="0.000795377" failures="0" errors="0" skipped="0" assertions="19">
3
+ <testcase name="test_0001_returns nil when nothing is loaded" time="0.000118872" assertions="2">
4
+ </testcase>
5
+ <testcase name="test_0006_loads all settings" time="6.3553e-05" assertions="2">
6
+ </testcase>
7
+ <testcase name="test_0004_takes both strings and symbols" time="5.5445e-05" assertions="2">
8
+ </testcase>
9
+ <testcase name="test_0005_finds nested settings" time="5.7768e-05" assertions="3">
10
+ </testcase>
11
+ <testcase name="test_0003_returns correct value" time="5.8495e-05" assertions="1">
12
+ </testcase>
13
+ <testcase name="test_0007_dumps all settings" time="5.6246e-05" assertions="1">
14
+ </testcase>
15
+ <testcase name="test_0009_clear wipes all settings" time="4.9296e-05" assertions="2">
16
+ </testcase>
17
+ <testcase name="test_0008_merges settings on second load" time="7.0802e-05" assertions="5">
18
+ </testcase>
19
+ <testcase name="test_0002_returns nil on unknown key" time="4.4578e-05" assertions="1">
20
+ </testcase>
21
+ <system-out>
22
+ </system-out>
23
+ <system-err>
24
+ </system-err>
25
+ </testsuite>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="HammerCLI::ShellHistory::loading old history" tests="2" time="0.000591805" failures="0" errors="0" skipped="0" assertions="2">
3
+ <testcase name="test_0001_skips loading if the file does not exist" time="0.000228018" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0002_preseeds readline's history" time="0.000185292" assertions="1">
6
+ </testcase>
7
+ <system-out>
8
+ </system-out>
9
+ <system-err>
10
+ </system-err>
11
+ </testsuite>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="HammerCLI::ShellHistory::saving history" tests="4" time="0.000956469" failures="0" errors="0" skipped="0" assertions="4">
3
+ <testcase name="test_0001_creates history file if it does not exist" time="0.00022899" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0003_appends to readline's history" time="0.000185984" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0002_appends history to the given file" time="0.000169983" assertions="1">
8
+ </testcase>
9
+ <testcase name="test_0004_doesn't save exit command" time="0.000154798" assertions="1">
10
+ </testcase>
11
+ <system-out>
12
+ </system-out>
13
+ <system-err>
14
+ </system-err>
15
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="HammerCLI::ShellHistory" tests="0" time="0.000162977" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="MiniTest::Spec" tests="0" time="0.000174231" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="String::camelize" tests="2" time="0.000337952" failures="0" errors="0" skipped="0" assertions="2">
3
+ <testcase name="test_0001_should camelize string with underscores" time="0.0001091" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0002_should not camelize string with dashes" time="5.1678e-05" assertions="1">
6
+ </testcase>
7
+ <system-out>
8
+ </system-out>
9
+ <system-err>
10
+ </system-err>
11
+ </testsuite>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="String::formatting" tests="5" time="0.00052804" failures="0" errors="0" skipped="0" assertions="5">
3
+ <testcase name="test_0003_should replace named parameters" time="0.000120653" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0002_should replace positional parameters" time="5.0694e-05" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0004_should replace named parameters with string keys" time="5.4219e-05" assertions="1">
8
+ </testcase>
9
+ <testcase name="test_0005_should replace named parameters marked with curly brackets" time="5.3821e-05" assertions="1">
10
+ </testcase>
11
+ <testcase name="test_0001_should not fail without expected parameters" time="5.197e-05" assertions="1">
12
+ </testcase>
13
+ <system-out>
14
+ </system-out>
15
+ <system-err>
16
+ </system-err>
17
+ </testsuite>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="String::indent" tests="2" time="0.000342954" failures="0" errors="0" skipped="0" assertions="2">
3
+ <testcase name="test_0002_indents multi line string" time="0.000108296" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0001_indents single line string" time="4.4031e-05" assertions="1">
6
+ </testcase>
7
+ <system-out>
8
+ </system-out>
9
+ <system-err>
10
+ </system-err>
11
+ </testsuite>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="String::interactive?" tests="3" time="0.001375686" failures="0" errors="0" skipped="0" assertions="3">
3
+ <testcase name="test_0001_should be true when called in tty" time="0.00042329" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0002_should by false when cli arg set" time="0.000403856" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0003_should by false when turned off in cfg" time="0.000364321" assertions="1">
8
+ </testcase>
9
+ <system-out>
10
+ </system-out>
11
+ <system-err>
12
+ </system-err>
13
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="String" tests="0" time="0.000181729" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::AllConstraint::exist?" tests="3" time="0.000590622" failures="0" errors="0" skipped="0" assertions="3">
3
+ <testcase name="test_0002_should return true when all the options exist" time="0.000196018" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0001_should return true when no options are passed" time="0.000113036" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0003_should return false when one of the options is missing" time="9.6605e-05" assertions="1">
8
+ </testcase>
9
+ <system-out>
10
+ </system-out>
11
+ <system-err>
12
+ </system-err>
13
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::AllConstraint" tests="0" time="0.00015489" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::AnyConstraint::exist?" tests="3" time="0.000586351" failures="0" errors="0" skipped="0" assertions="3">
3
+ <testcase name="test_0002_should return true when one of the options exist" time="0.000170553" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0001_should return true when no options are passed" time="0.000112862" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0003_should return false when all the options are missing" time="0.000111747" assertions="1">
8
+ </testcase>
9
+ <system-out>
10
+ </system-out>
11
+ <system-err>
12
+ </system-err>
13
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::AnyConstraint" tests="0" time="0.00017756" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::BaseConstraint::exist?" tests="1" time="0.000343672" failures="0" errors="0" skipped="0" assertions="1">
3
+ <testcase name="test_0001_throws not implemented error" time="0.000171895" assertions="1">
4
+ </testcase>
5
+ <system-out>
6
+ </system-out>
7
+ <system-err>
8
+ </system-err>
9
+ </testsuite>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::BaseConstraint::rejected" tests="3" time="0.001188178" failures="0" errors="0" skipped="0" assertions="3">
3
+ <testcase name="test_0003_should return nil when exist? returns true" time="0.000339906" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0002_should raise exception with a message" time="0.000330188" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0001_should raise exception when exist? returns true" time="0.000327038" assertions="1">
8
+ </testcase>
9
+ <system-out>
10
+ </system-out>
11
+ <system-err>
12
+ </system-err>
13
+ </testsuite>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::BaseConstraint::required" tests="3" time="0.001221194" failures="0" errors="0" skipped="0" assertions="2">
3
+ <testcase name="test_0003_should return nil when exist? returns true" time="0.000335162" assertions="1">
4
+ </testcase>
5
+ <testcase name="test_0001_should raise exception when exist? returns true" time="0.000327945" assertions="1">
6
+ </testcase>
7
+ <testcase name="test_0002_should raise exception with a message" time="0.000337518" assertions="0">
8
+ </testcase>
9
+ <system-out>
10
+ </system-out>
11
+ <system-err>
12
+ </system-err>
13
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints::HammerCLI::Validator::BaseConstraint" tests="0" time="0.000163178" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite name="constraints" tests="0" time="0.000161677" failures="0" errors="0" skipped="0" assertions="0">
3
+ <system-out>
4
+ </system-out>
5
+ <system-err>
6
+ </system-err>
7
+ </testsuite>
@@ -5,6 +5,7 @@ describe HammerCLI::Help::List do
5
5
  let(:first_item) { [:first, 'This is first line'] }
6
6
  let(:second_item) { [:second, 'This is second line'] }
7
7
  let(:list) { HammerCLI::Help::List.new([first_item, second_item]) }
8
+ let(:item_with_options) { [:third, 'This is bold item', { bold: true }] }
8
9
 
9
10
  it 'builds string' do
10
11
  list.build_string.must_equal [
@@ -13,5 +14,16 @@ describe HammerCLI::Help::List do
13
14
  ''
14
15
  ].join("\n")
15
16
  end
17
+
18
+ it 'ensures that item options are used' do
19
+ list = HammerCLI::Help::List.new([first_item, second_item, item_with_options])
20
+ changed_item = HighLine.color('third', :bold)
21
+ list.build_string.must_equal [
22
+ 'first This is first line',
23
+ 'second This is second line',
24
+ "#{changed_item} This is bold item",
25
+ ''
26
+ ].join("\n")
27
+ end
16
28
  end
17
29
  end
@@ -0,0 +1,18 @@
1
+ require File.join(File.dirname(__FILE__), '../../test_helper')
2
+
3
+ describe HammerCLI::Help::Note do
4
+ describe '#build_string' do
5
+ let(:text) { 'text' }
6
+ let(:note) { HammerCLI::Help::Note.new(text) }
7
+
8
+ it 'builds string' do
9
+ note.build_string.must_equal 'NOTE: text'
10
+ end
11
+
12
+ it 'ensures that options are used' do
13
+ label = 'DEPRECATION'
14
+ note = HammerCLI::Help::Note.new(text, label: label, richtext: true)
15
+ note.build_string.must_equal "#{HighLine.color("#{label}:", :bold)} #{text}"
16
+ end
17
+ end
18
+ end
@@ -7,5 +7,10 @@ describe HammerCLI::Help::Text do
7
7
  it 'builds string' do
8
8
  text.build_string.must_equal 'text'
9
9
  end
10
+
11
+ it 'ensures that options are used' do
12
+ text = HammerCLI::Help::Text.new('text', richtext: true)
13
+ text.build_string.must_equal HighLine.color('text', :bold)
14
+ end
10
15
  end
11
16
  end
@@ -6,8 +6,8 @@ describe HammerCLI::Output::Adapter::Abstract do
6
6
  let(:adapter) { HammerCLI::Output::Adapter::Abstract.new }
7
7
 
8
8
 
9
- it "should have tags" do
10
- adapter.tags.must_be_kind_of Array
9
+ it "should have features" do
10
+ adapter.features.must_be_kind_of Array
11
11
  end
12
12
 
13
13
  class UnknownTestFormatter < HammerCLI::Output::Formatters::FieldFormatter
@@ -15,8 +15,8 @@ describe HammerCLI::Output::Adapter::Abstract do
15
15
  data+'.'
16
16
  end
17
17
 
18
- def tags
19
- [:unknown]
18
+ def required_features
19
+ %i[unknown]
20
20
  end
21
21
  end
22
22
 
@@ -24,7 +24,7 @@ describe HammerCLI::Output::Adapter::Abstract do
24
24
  adapter.paginate_by_default?.must_equal true
25
25
  end
26
26
 
27
- it "should filter formatters with incompatible tags" do
27
+ it "should filter formatters with incompatible features" do
28
28
 
29
29
  HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [] })
30
30
  adapter = adapter_class.new({}, {:type => [UnknownTestFormatter.new]})
@@ -34,18 +34,18 @@ describe HammerCLI::Output::Adapter::Abstract do
34
34
  formatter = UnknownTestFormatter.new
35
35
  HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [formatter] })
36
36
  # set :unknown tag to abstract
37
- adapter_class.any_instance.stubs(:tags).returns([:unknown])
37
+ adapter_class.any_instance.stubs(:features).returns([:unknown])
38
38
  adapter = adapter_class.new({}, {:type => [formatter]})
39
39
  end
40
40
 
41
41
  it "should put serializers first" do
42
42
  formatter1 = UnknownTestFormatter.new
43
- formatter1.stubs(:tags).returns([])
43
+ formatter1.stubs(:required_features).returns([])
44
44
  formatter2 = UnknownTestFormatter.new
45
- formatter2.stubs(:tags).returns([:flat])
45
+ formatter2.stubs(:required_features).returns([:serialized])
46
46
  HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [formatter2, formatter1] })
47
47
  # set :unknown tag to abstract
48
- adapter_class.any_instance.stubs(:tags).returns([:flat])
48
+ adapter_class.any_instance.stubs(:features).returns([:serialized])
49
49
  adapter = adapter_class.new({}, {:type => [formatter1, formatter2]})
50
50
  end
51
51
 
@@ -20,14 +20,14 @@ describe HammerCLI::Output::Formatters::FieldFormatter do
20
20
  formatter.respond_to?(:format).must_equal true
21
21
  end
22
22
 
23
- it "has tags" do
24
- formatter.tags.must_be_kind_of Array
23
+ it "has features" do
24
+ formatter.required_features.must_be_kind_of Array
25
25
  end
26
26
 
27
- it "should know if it has matching tags" do
28
- formatter.stubs(:tags).returns([:tag])
29
- formatter.match?([:tag]).must_equal true
30
- formatter.match?([:notag]).must_equal false
27
+ it "should know if it has matching features" do
28
+ formatter.stubs(:required_features).returns([:feature])
29
+ formatter.match?([:feature]).must_equal true
30
+ formatter.match?([:nofeature]).must_equal false
31
31
  end
32
32
  end
33
33
 
@@ -156,6 +156,49 @@ describe HammerCLI::Output::Formatters::LongTextFormatter do
156
156
 
157
157
  end
158
158
 
159
+ describe HammerCLI::Output::Formatters::InlineTextFormatter do
160
+ let(:formatter) { HammerCLI::Output::Formatters::InlineTextFormatter.new }
161
+
162
+ it 'prints multiline text to one line' do
163
+ formatter.format("Some\nmultiline\ntext").must_equal('Some multiline text')
164
+ end
165
+
166
+ it 'accepts nil' do
167
+ formatter.format(nil).must_equal('')
168
+ end
169
+ end
170
+
171
+ describe HammerCLI::Output::Formatters::MultilineTextFormatter do
172
+ let(:formatter) { HammerCLI::Output::Formatters::MultilineTextFormatter.new }
173
+ let(:multiline_text) { "Some\nmultiline\ntext" }
174
+ let(:indentation) { "\n " }
175
+ let(:long_multiline_text) { 'Lorem ipsum dolor' * 5 }
176
+
177
+ it 'prints multiline text' do
178
+ formatter.format(multiline_text).must_equal(
179
+ "#{indentation}Some#{indentation}multiline#{indentation}text"
180
+ )
181
+ end
182
+
183
+ it 'accepts nil' do
184
+ formatter.format(nil).must_equal(indentation)
185
+ end
186
+
187
+ it 'accepts field width param' do
188
+ formatter.format(long_multiline_text, width: 80)
189
+ .must_equal(indentation + long_multiline_text[0..-6] +
190
+ indentation + long_multiline_text[-5..-1])
191
+ end
192
+
193
+ it 'deals with strange params' do
194
+ formatter.format(long_multiline_text, width: -1)
195
+ .must_equal(indentation + long_multiline_text[0..-26] +
196
+ indentation + long_multiline_text[-25..-1])
197
+ formatter.format(long_multiline_text, width: 999)
198
+ .must_equal(indentation + long_multiline_text)
199
+ end
200
+ end
201
+
159
202
  describe HammerCLI::Output::Formatters::BooleanFormatter do
160
203
 
161
204
  let(:formatter) { HammerCLI::Output::Formatters::BooleanFormatter.new }