hammer_cli 0.18.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
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 }