brut 0.16.0 → 0.18.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 (1088) hide show
  1. checksums.yaml +4 -4
  2. data/exe/brut +34 -0
  3. data/lib/brut/cli/apps/build_assets.rb +78 -48
  4. data/lib/brut/cli/apps/db.rb +168 -202
  5. data/lib/brut/cli/apps/deploy.rb +291 -0
  6. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +7 -1
  7. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/add_segment.rb +5 -5
  8. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/add_segment_options.rb +1 -1
  9. data/lib/brut/cli/apps/new/app.rb +240 -0
  10. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/app_id.rb +1 -1
  11. data/lib/brut/cli/apps/new/app_name.rb +29 -0
  12. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/base.rb +9 -6
  13. data/lib/brut/cli/apps/new/erb_binding_delegate.rb +23 -0
  14. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/internet_identifier.rb +5 -5
  15. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/invalid_identifier.rb +1 -1
  16. data/{mkbrut/lib/mkbrut/app.rb → lib/brut/cli/apps/new/old_app.rb} +8 -11
  17. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/add_css_import.rb +1 -1
  18. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/add_i18n_message.rb +1 -1
  19. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/add_method.rb +1 -1
  20. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/append_to_file.rb +1 -1
  21. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/base_op.rb +3 -3
  22. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/copy_file.rb +1 -1
  23. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/insert_code_in_method.rb +1 -1
  24. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/insert_into_file.rb +1 -1
  25. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/insert_route.rb +1 -1
  26. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/mkdir.rb +1 -1
  27. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/prism_parsing_op.rb +1 -1
  28. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/render_template.rb +1 -1
  29. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/ops/skip_file.rb +1 -1
  30. data/lib/brut/cli/apps/new/ops.rb +17 -0
  31. data/lib/brut/cli/apps/new/organization.rb +5 -0
  32. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/prefix.rb +1 -1
  33. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/segments/bare_bones.rb +12 -11
  34. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/segments/demo.rb +16 -15
  35. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/segments/heroku.rb +9 -5
  36. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/segments/sidekiq.rb +44 -21
  37. data/lib/brut/cli/apps/new/segments.rb +8 -0
  38. data/lib/brut/cli/apps/new/version.rb +3 -0
  39. data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/versions.rb +2 -2
  40. data/lib/brut/cli/apps/new.rb +26 -0
  41. data/lib/brut/cli/apps/scaffold.rb +150 -141
  42. data/lib/brut/cli/apps/test.rb +95 -69
  43. data/lib/brut/cli/commands/base_command.rb +174 -0
  44. data/lib/brut/cli/commands/compound_command.rb +29 -0
  45. data/lib/brut/cli/commands/execution_context.rb +32 -0
  46. data/lib/brut/cli/commands/help.rb +26 -0
  47. data/lib/brut/cli/commands/output_error.rb +13 -0
  48. data/lib/brut/cli/commands/raise_error.rb +11 -0
  49. data/lib/brut/cli/commands.rb +8 -0
  50. data/lib/brut/cli/execute_result.rb +39 -0
  51. data/lib/brut/cli/executor.rb +9 -4
  52. data/lib/brut/cli/output.rb +13 -0
  53. data/lib/brut/cli/parsed_command_line.rb +143 -0
  54. data/lib/brut/cli/runner.rb +124 -0
  55. data/lib/brut/cli.rb +7 -29
  56. data/lib/brut/framework/container.rb +1 -1
  57. data/lib/brut/framework/mcp.rb +59 -13
  58. data/lib/brut/framework/project_environment.rb +3 -1
  59. data/lib/brut/junk_drawer.rb +3 -1
  60. data/lib/brut/spec_support/cli_command_support.rb +45 -0
  61. data/lib/brut/spec_support/e2e_test_server.rb +3 -0
  62. data/lib/brut/spec_support/general_support.rb +1 -1
  63. data/lib/brut/spec_support/matchers/have_executed.rb +35 -0
  64. data/lib/brut/spec_support/rspec_setup.rb +4 -8
  65. data/lib/brut/spec_support.rb +1 -0
  66. data/lib/brut/tui/ansi_escape_code.rb +104 -0
  67. data/lib/brut/tui/event_loop.rb +168 -0
  68. data/lib/brut/tui/events/base_event.rb +29 -0
  69. data/lib/brut/tui/events/event_bus.rb +73 -0
  70. data/lib/brut/tui/events/event_loop_started.rb +5 -0
  71. data/lib/brut/tui/events/exception.rb +24 -0
  72. data/lib/brut/tui/events/tick.rb +12 -0
  73. data/lib/brut/tui/events.rb +7 -0
  74. data/lib/brut/tui/markup_string.rb +70 -0
  75. data/lib/brut/tui/script/block_step.rb +17 -0
  76. data/lib/brut/tui/script/events/command_execution_failed.rb +4 -0
  77. data/lib/brut/tui/script/events/command_execution_succeeded.rb +3 -0
  78. data/lib/brut/tui/script/events/command_std_err.rb +3 -0
  79. data/lib/brut/tui/script/events/command_std_out.rb +14 -0
  80. data/lib/brut/tui/script/events/executing_command.rb +12 -0
  81. data/lib/brut/tui/script/events/message.rb +15 -0
  82. data/lib/brut/tui/script/events/phase_completed.rb +4 -0
  83. data/lib/brut/tui/script/events/phase_started.rb +14 -0
  84. data/lib/brut/tui/script/events/script_completed.rb +5 -0
  85. data/lib/brut/tui/script/events/script_started.rb +12 -0
  86. data/lib/brut/tui/script/events/step_completed.rb +3 -0
  87. data/lib/brut/tui/script/events/step_started.rb +12 -0
  88. data/lib/brut/tui/script/events.rb +14 -0
  89. data/lib/brut/tui/script/exec_step.rb +67 -0
  90. data/lib/brut/tui/script/logging_subscriber.rb +98 -0
  91. data/lib/brut/tui/script/puts_subscriber.rb +109 -0
  92. data/lib/brut/tui/script/step.rb +13 -0
  93. data/lib/brut/tui/script.rb +215 -0
  94. data/lib/brut/tui/terminal.rb +74 -0
  95. data/lib/brut/tui/terminal_theme.rb +144 -0
  96. data/lib/brut/tui/themes/dark.rb +14 -0
  97. data/lib/brut/tui/themes/light.rb +17 -0
  98. data/lib/brut/tui/themes/none.rb +9 -0
  99. data/lib/brut/tui/themes.rb +5 -0
  100. data/lib/brut/tui.rb +15 -0
  101. data/lib/brut/version.rb +1 -1
  102. data/lib/brut.rb +1 -0
  103. data/templates/Base/.env.development.local +2 -0
  104. data/templates/Base/bin/ci +42 -0
  105. data/{mkbrut/templates → templates}/Base/bin/release +2 -2
  106. data/templates/Base/bin/setup +174 -0
  107. data/{mkbrut/templates → templates}/Base/bin/watch-and-build-assets +1 -1
  108. data/{mkbrut/templates → templates}/Base/dx/docker-compose.env.erb +1 -1
  109. data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/css/fonts.css +1 -1
  110. data/{mkbrut/templates → templates}/segments/Heroku/deploy/Dockerfile +2 -2
  111. data/templates/segments/Heroku/deploy/docker_config.rb +30 -0
  112. metadata +254 -1009
  113. data/.gitignore +0 -55
  114. data/.projections.json +0 -10
  115. data/CHANGELOG.md +0 -167
  116. data/CODE_OF_CONDUCT.txt +0 -99
  117. data/Dockerfile.dx +0 -82
  118. data/Gemfile +0 -6
  119. data/Gemfile.lock +0 -243
  120. data/LICENSE.txt +0 -370
  121. data/README.md +0 -90
  122. data/Rakefile +0 -25
  123. data/assets/Logo-Square.pxd +0 -0
  124. data/assets/LogoPylon.pxd +0 -0
  125. data/assets/LogoStop.pxd +0 -0
  126. data/assets/LogoTall.pxd +0 -0
  127. data/assets/MetroIcon.graffle +0 -0
  128. data/assets/MetroLogo.graffle +0 -0
  129. data/assets/SocialImage.png +0 -0
  130. data/assets/SocialImage.pxd +0 -0
  131. data/assets/YouTubeThumb.pxd +0 -0
  132. data/bin/bin_kit.rb +0 -51
  133. data/bin/build +0 -86
  134. data/bin/ci +0 -40
  135. data/bin/dev +0 -20
  136. data/bin/docs +0 -79
  137. data/bin/generate-and-run-rubocop +0 -52
  138. data/bin/new-version +0 -8
  139. data/bin/publish +0 -61
  140. data/bin/rake +0 -27
  141. data/bin/rspec +0 -27
  142. data/bin/rubocop +0 -27
  143. data/bin/setup +0 -252
  144. data/bin/test +0 -18
  145. data/brut-css/.nvim.lua +0 -1
  146. data/brut-css/README.md +0 -28
  147. data/brut-css/bin/build +0 -50
  148. data/brut-css/bin/ci +0 -19
  149. data/brut-css/bin/dev +0 -1
  150. data/brut-css/bin/docs +0 -34
  151. data/brut-css/bin/publish +0 -21
  152. data/brut-css/bin/setup +0 -6
  153. data/brut-css/config/media-queries-all.css +0 -15
  154. data/brut-css/config/media-queries-minimal.css +0 -5
  155. data/brut-css/config/postcss.config.cjs +0 -7
  156. data/brut-css/config/pseudo-classes-all.css +0 -9
  157. data/brut-css/dx +0 -1
  158. data/brut-css/package-lock.json +0 -3165
  159. data/brut-css/package.json +0 -36
  160. data/brut-css/src/css/appearance.css +0 -145
  161. data/brut-css/src/css/border.css +0 -522
  162. data/brut-css/src/css/colors.css +0 -3502
  163. data/brut-css/src/css/dimensions.css +0 -548
  164. data/brut-css/src/css/flex.css +0 -179
  165. data/brut-css/src/css/index.css +0 -13
  166. data/brut-css/src/css/layout.css +0 -120
  167. data/brut-css/src/css/list.css +0 -41
  168. data/brut-css/src/css/positioning.css +0 -354
  169. data/brut-css/src/css/properties/colors.css +0 -455
  170. data/brut-css/src/css/properties/index.css +0 -3
  171. data/brut-css/src/css/properties/spacing.css +0 -140
  172. data/brut-css/src/css/properties/typography.css +0 -224
  173. data/brut-css/src/css/reset.css +0 -107
  174. data/brut-css/src/css/spacing.css +0 -585
  175. data/brut-css/src/css/typography.css +0 -519
  176. data/brut-css/src/css/utils.css +0 -104
  177. data/brut-css/src/docs/1_getting-started/1_overview.md +0 -46
  178. data/brut-css/src/docs/1_getting-started/2_installation.md +0 -25
  179. data/brut-css/src/docs/1_getting-started/3_core-concepts.md +0 -75
  180. data/brut-css/src/docs/1_getting-started/4_simple-example.md +0 -132
  181. data/brut-css/src/docs/1_getting-started/page.html.ejs +0 -10
  182. data/brut-css/src/docs/2_properties/page.html.ejs +0 -71
  183. data/brut-css/src/docs/3_classes/color-demo.html.ejs +0 -31
  184. data/brut-css/src/docs/3_classes/page.html.ejs +0 -87
  185. data/brut-css/src/docs/4_customization/1_design-system.md +0 -36
  186. data/brut-css/src/docs/4_customization/2_breakpoints.md +0 -75
  187. data/brut-css/src/docs/4_customization/3_pseudo-classes.md +0 -74
  188. data/brut-css/src/docs/4_customization/4_advanced-configuration.md +0 -40
  189. data/brut-css/src/docs/4_customization/page.html.ejs +0 -10
  190. data/brut-css/src/docs/docs.css +0 -98
  191. data/brut-css/src/docs/includes/body-and-header.html.ejs +0 -30
  192. data/brut-css/src/docs/includes/footer-and-rest.html.ejs +0 -9
  193. data/brut-css/src/docs/includes/head.html.ejs +0 -5
  194. data/brut-css/src/docs/includes/nav.html.ejs +0 -10
  195. data/brut-css/src/docs/index.html.ejs +0 -32
  196. data/brut-css/src/docs/prism-twilight.min.css +0 -1
  197. data/brut-css/src/js/Logger.js +0 -71
  198. data/brut-css/src/js/build.js +0 -111
  199. data/brut-css/src/js/cli/CLIArgError.js +0 -7
  200. data/brut-css/src/js/cli/Debug.js +0 -27
  201. data/brut-css/src/js/cli/DocsDir.js +0 -16
  202. data/brut-css/src/js/cli/DocsTemplateSourceDir.js +0 -16
  203. data/brut-css/src/js/cli/InputFile.js +0 -31
  204. data/brut-css/src/js/cli/MediaQueryConfigFile.js +0 -10
  205. data/brut-css/src/js/cli/OutputFile.js +0 -22
  206. data/brut-css/src/js/cli/ParsedArg.js +0 -17
  207. data/brut-css/src/js/cli/PathToBrutCSSRoot.js +0 -19
  208. data/brut-css/src/js/cli/PseudoClassConfigFile.js +0 -11
  209. data/brut-css/src/js/cli.js +0 -108
  210. data/brut-css/src/js/docGenerator.js +0 -467
  211. data/brut-css/src/js/mediaQueryConfigParser.js +0 -98
  212. data/brut-css/src/js/post-css-plugins/addMediaQueriesPlugin.js +0 -49
  213. data/brut-css/src/js/post-css-plugins/addPseudoClassesPlugin.js +0 -42
  214. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Category.js +0 -9
  215. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/DocState.js +0 -185
  216. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Documentable.js +0 -8
  217. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Group.js +0 -7
  218. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/ParsedComment.js +0 -73
  219. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Property.js +0 -9
  220. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyCategory.js +0 -4
  221. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyGroup.js +0 -8
  222. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Rule.js +0 -12
  223. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleCategory.js +0 -4
  224. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleGroup.js +0 -8
  225. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeRef.js +0 -5
  226. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeURL.js +0 -9
  227. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin.js +0 -49
  228. data/brut-css/src/js/post-css-plugins/generateRootCustomPropertiesPlugin.js +0 -45
  229. data/brut-css/src/js/pseudoClassConfigParser.js +0 -145
  230. data/brut-js/.projections.json +0 -10
  231. data/brut-js/README.md +0 -118
  232. data/brut-js/bin/build +0 -19
  233. data/brut-js/bin/ci +0 -5
  234. data/brut-js/bin/docs +0 -25
  235. data/brut-js/bin/publish +0 -21
  236. data/brut-js/bin/setup +0 -6
  237. data/brut-js/docs/README.md +0 -8
  238. data/brut-js/docs/jsdoc-plugins/customElementTag.js +0 -8
  239. data/brut-js/docs/jsdoc-theme/publish.js +0 -692
  240. data/brut-js/docs/jsdoc-theme/static/scripts/linenumber.js +0 -25
  241. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/Apache-License-2.0.txt +0 -202
  242. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/lang-css.js +0 -2
  243. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/prettify.js +0 -28
  244. data/brut-js/docs/jsdoc-theme/static/styles/jsdoc-default.css +0 -327
  245. data/brut-js/docs/jsdoc-theme/static/styles/prettify-jsdoc.css +0 -111
  246. data/brut-js/docs/jsdoc-theme/static/styles/prettify-tomorrow.css +0 -132
  247. data/brut-js/docs/jsdoc-theme/tmpl/augments.tmpl +0 -10
  248. data/brut-js/docs/jsdoc-theme/tmpl/container.tmpl +0 -199
  249. data/brut-js/docs/jsdoc-theme/tmpl/details.tmpl +0 -143
  250. data/brut-js/docs/jsdoc-theme/tmpl/example.tmpl +0 -2
  251. data/brut-js/docs/jsdoc-theme/tmpl/examples.tmpl +0 -13
  252. data/brut-js/docs/jsdoc-theme/tmpl/exceptions.tmpl +0 -32
  253. data/brut-js/docs/jsdoc-theme/tmpl/layout.tmpl +0 -38
  254. data/brut-js/docs/jsdoc-theme/tmpl/mainpage.tmpl +0 -14
  255. data/brut-js/docs/jsdoc-theme/tmpl/members.tmpl +0 -38
  256. data/brut-js/docs/jsdoc-theme/tmpl/method.tmpl +0 -131
  257. data/brut-js/docs/jsdoc-theme/tmpl/modifies.tmpl +0 -14
  258. data/brut-js/docs/jsdoc-theme/tmpl/params.tmpl +0 -131
  259. data/brut-js/docs/jsdoc-theme/tmpl/properties.tmpl +0 -108
  260. data/brut-js/docs/jsdoc-theme/tmpl/returns.tmpl +0 -19
  261. data/brut-js/docs/jsdoc-theme/tmpl/source.tmpl +0 -8
  262. data/brut-js/docs/jsdoc-theme/tmpl/tutorial.tmpl +0 -19
  263. data/brut-js/docs/jsdoc-theme/tmpl/type.tmpl +0 -7
  264. data/brut-js/docs/jsdoc.config.json +0 -23
  265. data/brut-js/docs/package-lock.json +0 -343
  266. data/brut-js/docs/package.json +0 -7
  267. data/brut-js/dx +0 -1
  268. data/brut-js/package-lock.json +0 -2210
  269. data/brut-js/package.json +0 -36
  270. data/brut-js/specs/AjaxSubmit.spec.js +0 -453
  271. data/brut-js/specs/Autosubmit.spec.js +0 -127
  272. data/brut-js/specs/ConfirmSubmit.spec.js +0 -224
  273. data/brut-js/specs/ConstraintViolationMessage.spec.js +0 -33
  274. data/brut-js/specs/ConstraintViolationMessages.spec.js +0 -32
  275. data/brut-js/specs/CopyToClipboard.spec.js +0 -35
  276. data/brut-js/specs/Form.spec.js +0 -137
  277. data/brut-js/specs/I18nTranslation.spec.js +0 -19
  278. data/brut-js/specs/LocaleDetection.spec.js +0 -22
  279. data/brut-js/specs/Message.spec.js +0 -15
  280. data/brut-js/specs/SpecHelper.js +0 -23
  281. data/brut-js/specs/Tabs.spec.js +0 -41
  282. data/brut-js/specs/Toast.spec.js +0 -34
  283. data/brut-js/specs/config/asset_metadata.json +0 -7
  284. data/brut-js/src/AjaxSubmit.js +0 -499
  285. data/brut-js/src/Autosubmit.js +0 -63
  286. data/brut-js/src/BaseCustomElement.js +0 -261
  287. data/brut-js/src/ConfirmSubmit.js +0 -137
  288. data/brut-js/src/ConfirmationDialog.js +0 -143
  289. data/brut-js/src/ConstraintViolationMessage.js +0 -140
  290. data/brut-js/src/ConstraintViolationMessages.js +0 -98
  291. data/brut-js/src/CopyToClipboard.js +0 -96
  292. data/brut-js/src/Form.js +0 -147
  293. data/brut-js/src/I18nTranslation.js +0 -64
  294. data/brut-js/src/LocaleDetection.js +0 -117
  295. data/brut-js/src/Logger.js +0 -90
  296. data/brut-js/src/Message.js +0 -62
  297. data/brut-js/src/RichString.js +0 -116
  298. data/brut-js/src/Tabs.js +0 -168
  299. data/brut-js/src/Toast.js +0 -102
  300. data/brut-js/src/Tracing.js +0 -247
  301. data/brut-js/src/appForTestingOnly.js +0 -15
  302. data/brut-js/src/index.js +0 -133
  303. data/brut-js/src/testing/AssetMetadata.js +0 -35
  304. data/brut-js/src/testing/AssetMetadataLoader.js +0 -25
  305. data/brut-js/src/testing/CustomElementTest.js +0 -235
  306. data/brut-js/src/testing/DOMCreator.js +0 -45
  307. data/brut-js/src/testing/index.js +0 -48
  308. data/brut.gemspec +0 -71
  309. data/brutrb.com/.vitepress/config.mjs +0 -164
  310. data/brutrb.com/.vitepress/plugins/jsdocLinker.js +0 -34
  311. data/brutrb.com/.vitepress/plugins/rdocLinker.js +0 -18
  312. data/brutrb.com/.vitepress/theme/custom.css +0 -14
  313. data/brutrb.com/.vitepress/theme/index.js +0 -18
  314. data/brutrb.com/.vitepress/theme/style.css +0 -139
  315. data/brutrb.com/adrs.md +0 -16
  316. data/brutrb.com/ai.md +0 -68
  317. data/brutrb.com/assets.md +0 -131
  318. data/brutrb.com/bin/build +0 -5
  319. data/brutrb.com/bin/deploy +0 -7
  320. data/brutrb.com/bin/dev +0 -5
  321. data/brutrb.com/bin/setup +0 -6
  322. data/brutrb.com/brut-js.md +0 -128
  323. data/brutrb.com/business-logic.md +0 -55
  324. data/brutrb.com/cli.md +0 -274
  325. data/brutrb.com/components.md +0 -265
  326. data/brutrb.com/configuration.md +0 -256
  327. data/brutrb.com/css.md +0 -103
  328. data/brutrb.com/custom-element-tests.md +0 -148
  329. data/brutrb.com/database-access.md +0 -201
  330. data/brutrb.com/database-schema.md +0 -320
  331. data/brutrb.com/deployment.md +0 -158
  332. data/brutrb.com/dev-environment.md +0 -186
  333. data/brutrb.com/dir-structure.md +0 -120
  334. data/brutrb.com/doc-conventions.md +0 -41
  335. data/brutrb.com/dx +0 -1
  336. data/brutrb.com/end-to-end-tests.md +0 -176
  337. data/brutrb.com/features.md +0 -373
  338. data/brutrb.com/flash-and-session.md +0 -208
  339. data/brutrb.com/form-constraints.md +0 -266
  340. data/brutrb.com/forms.md +0 -238
  341. data/brutrb.com/getting-started.md +0 -142
  342. data/brutrb.com/handlers.md +0 -177
  343. data/brutrb.com/hooks.md +0 -176
  344. data/brutrb.com/i18n.md +0 -190
  345. data/brutrb.com/images/DevEnvironment.graffle +0 -0
  346. data/brutrb.com/images/DevEnvironment.png +0 -0
  347. data/brutrb.com/images/LogoSquare.png +0 -0
  348. data/brutrb.com/images/LogoStop.png +0 -0
  349. data/brutrb.com/images/LogoTall.png +0 -0
  350. data/brutrb.com/images/Makefile +0 -10
  351. data/brutrb.com/images/OverviewMetro.graffle +0 -0
  352. data/brutrb.com/images/OverviewMetro.png +0 -0
  353. data/brutrb.com/images/dev-env-overview.dot +0 -54
  354. data/brutrb.com/images/dev-env-overview.png +0 -0
  355. data/brutrb.com/images/dev-env-protocol.dot +0 -37
  356. data/brutrb.com/images/dev-env-protocol.png +0 -0
  357. data/brutrb.com/images/overview.graffle +0 -0
  358. data/brutrb.com/images/overview.png +0 -0
  359. data/brutrb.com/images/spa.dot +0 -19
  360. data/brutrb.com/images/spa.png +0 -0
  361. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser-element-styled.png +0 -0
  362. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser-element.png +0 -0
  363. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser.png +0 -0
  364. data/brutrb.com/images/tutorial/02-confirmation-flow.graffle +0 -0
  365. data/brutrb.com/images/tutorial/02-confirmation-flow.png +0 -0
  366. data/brutrb.com/images/tutorial/basic-form-with-violations.png +0 -0
  367. data/brutrb.com/images/tutorial/basic-form.png +0 -0
  368. data/brutrb.com/images/tutorial/initial-home-page.png +0 -0
  369. data/brutrb.com/images/tutorial/new-post-editor.png +0 -0
  370. data/brutrb.com/images/tutorial/new-post-home-page.png +0 -0
  371. data/brutrb.com/images/tutorial/styled-form-with-server-side-violations.png +0 -0
  372. data/brutrb.com/images/tutorial/styled-form-with-violations.png +0 -0
  373. data/brutrb.com/images/tutorial/styled-home-page-with-posts.png +0 -0
  374. data/brutrb.com/images/tutorial/styled-home-page.png +0 -0
  375. data/brutrb.com/images/tutorial/welcome-to-brut.png +0 -0
  376. data/brutrb.com/images/workspace-protocol.dot +0 -44
  377. data/brutrb.com/images/workspace-protocol.png +0 -0
  378. data/brutrb.com/index.md +0 -34
  379. data/brutrb.com/instrumentation.md +0 -331
  380. data/brutrb.com/javascript.md +0 -122
  381. data/brutrb.com/jobs.md +0 -114
  382. data/brutrb.com/keyword-injection.md +0 -195
  383. data/brutrb.com/layouts.md +0 -156
  384. data/brutrb.com/lsp.md +0 -23
  385. data/brutrb.com/markdown-examples.md +0 -85
  386. data/brutrb.com/middleware.md +0 -80
  387. data/brutrb.com/overview.md +0 -68
  388. data/brutrb.com/package-lock.json +0 -2451
  389. data/brutrb.com/package.json +0 -11
  390. data/brutrb.com/pages.md +0 -290
  391. data/brutrb.com/public/SocialImage.png +0 -0
  392. data/brutrb.com/public/favicon.ico +0 -0
  393. data/brutrb.com/recipes/alternate-layouts.md +0 -32
  394. data/brutrb.com/recipes/authentication.md +0 -336
  395. data/brutrb.com/recipes/custom-flash.md +0 -51
  396. data/brutrb.com/recipes/dev-env-secrets.md +0 -87
  397. data/brutrb.com/recipes/form-errors.md +0 -148
  398. data/brutrb.com/recipes/indexed-forms.md +0 -149
  399. data/brutrb.com/recipes/migrations.md +0 -210
  400. data/brutrb.com/recipes/text-field-component.md +0 -182
  401. data/brutrb.com/roadmap.md +0 -52
  402. data/brutrb.com/routes.md +0 -189
  403. data/brutrb.com/security.md +0 -102
  404. data/brutrb.com/seed-data.md +0 -63
  405. data/brutrb.com/space-time-continuum.md +0 -81
  406. data/brutrb.com/tutorial.md +0 -138
  407. data/brutrb.com/tutorials/01-intro.md +0 -1654
  408. data/brutrb.com/tutorials/02-dialog.md +0 -569
  409. data/brutrb.com/unit-tests.md +0 -148
  410. data/brutrb.com/why.md +0 -19
  411. data/docker-compose.dx.yml +0 -25
  412. data/docs/404.html +0 -26
  413. data/docs/CNAME +0 -1
  414. data/docs/SocialImage.png +0 -0
  415. data/docs/adrs.html +0 -29
  416. data/docs/ai.html +0 -29
  417. data/docs/api/Brut/BackEnd/SeedData.html +0 -493
  418. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +0 -214
  419. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +0 -125
  420. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +0 -125
  421. data/docs/api/Brut/BackEnd/Sidekiq.html +0 -125
  422. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +0 -414
  423. data/docs/api/Brut/BackEnd/Validators.html +0 -128
  424. data/docs/api/Brut/BackEnd.html +0 -132
  425. data/docs/api/Brut/CLI/App.html +0 -1601
  426. data/docs/api/Brut/CLI/AppRunner.html +0 -491
  427. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +0 -264
  428. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +0 -306
  429. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +0 -262
  430. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +0 -314
  431. data/docs/api/Brut/CLI/Apps/BuildAssets.html +0 -183
  432. data/docs/api/Brut/CLI/Apps/DB/Create.html +0 -365
  433. data/docs/api/Brut/CLI/Apps/DB/Drop.html +0 -357
  434. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +0 -389
  435. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +0 -339
  436. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +0 -329
  437. data/docs/api/Brut/CLI/Apps/DB/Seed.html +0 -347
  438. data/docs/api/Brut/CLI/Apps/DB/Status.html +0 -383
  439. data/docs/api/Brut/CLI/Apps/DB.html +0 -183
  440. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +0 -270
  441. data/docs/api/Brut/CLI/Apps/DeployBase.html +0 -257
  442. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +0 -587
  443. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +0 -196
  444. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +0 -303
  445. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +0 -508
  446. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +0 -398
  447. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +0 -374
  448. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +0 -384
  449. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +0 -410
  450. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +0 -262
  451. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +0 -303
  452. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +0 -480
  453. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +0 -450
  454. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +0 -380
  455. data/docs/api/Brut/CLI/Apps/Scaffold.html +0 -253
  456. data/docs/api/Brut/CLI/Apps/Test/Audit.html +0 -470
  457. data/docs/api/Brut/CLI/Apps/Test/E2e.html +0 -407
  458. data/docs/api/Brut/CLI/Apps/Test/JS.html +0 -262
  459. data/docs/api/Brut/CLI/Apps/Test/Run.html +0 -578
  460. data/docs/api/Brut/CLI/Apps/Test.html +0 -253
  461. data/docs/api/Brut/CLI/Apps.html +0 -125
  462. data/docs/api/Brut/CLI/Command.html +0 -2425
  463. data/docs/api/Brut/CLI/Error.html +0 -139
  464. data/docs/api/Brut/CLI/ExecutionResults/Result.html +0 -664
  465. data/docs/api/Brut/CLI/ExecutionResults.html +0 -675
  466. data/docs/api/Brut/CLI/Executor.html +0 -561
  467. data/docs/api/Brut/CLI/InvalidOption.html +0 -245
  468. data/docs/api/Brut/CLI/Options.html +0 -880
  469. data/docs/api/Brut/CLI/Output.html +0 -699
  470. data/docs/api/Brut/CLI/SystemExecError.html +0 -451
  471. data/docs/api/Brut/CLI.html +0 -263
  472. data/docs/api/Brut/FactoryBot.html +0 -225
  473. data/docs/api/Brut/Framework/App.html +0 -1097
  474. data/docs/api/Brut/Framework/Config.html +0 -1071
  475. data/docs/api/Brut/Framework/Container.html +0 -1464
  476. data/docs/api/Brut/Framework/Error.html +0 -140
  477. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +0 -232
  478. data/docs/api/Brut/Framework/Errors/Bug.html +0 -234
  479. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +0 -257
  480. data/docs/api/Brut/Framework/Errors/MissingParameter.html +0 -273
  481. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +0 -471
  482. data/docs/api/Brut/Framework/Errors/NotFound.html +0 -308
  483. data/docs/api/Brut/Framework/Errors/NotImplemented.html +0 -234
  484. data/docs/api/Brut/Framework/Errors.html +0 -351
  485. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +0 -392
  486. data/docs/api/Brut/Framework/MCP.html +0 -871
  487. data/docs/api/Brut/Framework/ProjectEnvironment.html +0 -648
  488. data/docs/api/Brut/Framework.html +0 -129
  489. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +0 -317
  490. data/docs/api/Brut/FrontEnd/Component/Helpers.html +0 -420
  491. data/docs/api/Brut/FrontEnd/Component.html +0 -434
  492. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +0 -491
  493. data/docs/api/Brut/FrontEnd/Components/FormTag.html +0 -526
  494. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +0 -313
  495. data/docs/api/Brut/FrontEnd/Components/Input.html +0 -195
  496. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +0 -447
  497. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +0 -339
  498. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +0 -568
  499. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +0 -419
  500. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +0 -610
  501. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +0 -534
  502. data/docs/api/Brut/FrontEnd/Components/Inputs.html +0 -125
  503. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +0 -367
  504. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +0 -355
  505. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +0 -655
  506. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +0 -352
  507. data/docs/api/Brut/FrontEnd/Components.html +0 -156
  508. data/docs/api/Brut/FrontEnd/CsrfProtector.html +0 -250
  509. data/docs/api/Brut/FrontEnd/Download.html +0 -467
  510. data/docs/api/Brut/FrontEnd/Flash.html +0 -1150
  511. data/docs/api/Brut/FrontEnd/Form.html +0 -1227
  512. data/docs/api/Brut/FrontEnd/Forms/Button.html +0 -331
  513. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +0 -537
  514. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +0 -590
  515. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +0 -201
  516. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +0 -535
  517. data/docs/api/Brut/FrontEnd/Forms/Input.html +0 -1567
  518. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +0 -635
  519. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +0 -1336
  520. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +0 -730
  521. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +0 -587
  522. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +0 -734
  523. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +0 -582
  524. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +0 -659
  525. data/docs/api/Brut/FrontEnd/Forms.html +0 -127
  526. data/docs/api/Brut/FrontEnd/GenericResponse.html +0 -377
  527. data/docs/api/Brut/FrontEnd/Handler.html +0 -442
  528. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +0 -318
  529. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +0 -336
  530. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +0 -399
  531. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +0 -354
  532. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +0 -151
  533. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +0 -315
  534. data/docs/api/Brut/FrontEnd/Handlers.html +0 -125
  535. data/docs/api/Brut/FrontEnd/HandlingResults.html +0 -339
  536. data/docs/api/Brut/FrontEnd/HttpMethod.html +0 -661
  537. data/docs/api/Brut/FrontEnd/HttpStatus.html +0 -496
  538. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +0 -284
  539. data/docs/api/Brut/FrontEnd/Layout.html +0 -486
  540. data/docs/api/Brut/FrontEnd/Middleware.html +0 -135
  541. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +0 -288
  542. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +0 -292
  543. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +0 -324
  544. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +0 -376
  545. data/docs/api/Brut/FrontEnd/Middlewares.html +0 -125
  546. data/docs/api/Brut/FrontEnd/Page.html +0 -781
  547. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +0 -797
  548. data/docs/api/Brut/FrontEnd/Pages.html +0 -125
  549. data/docs/api/Brut/FrontEnd/RequestContext.html +0 -1312
  550. data/docs/api/Brut/FrontEnd/RouteHook.html +0 -424
  551. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +0 -242
  552. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +0 -249
  553. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +0 -264
  554. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +0 -261
  555. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +0 -284
  556. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +0 -252
  557. data/docs/api/Brut/FrontEnd/RouteHooks.html +0 -115
  558. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +0 -227
  559. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +0 -305
  560. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +0 -324
  561. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +0 -319
  562. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +0 -315
  563. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +0 -315
  564. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +0 -327
  565. data/docs/api/Brut/FrontEnd/Routing/Route.html +0 -761
  566. data/docs/api/Brut/FrontEnd/Routing.html +0 -927
  567. data/docs/api/Brut/FrontEnd/Session.html +0 -1195
  568. data/docs/api/Brut/FrontEnd.html +0 -134
  569. data/docs/api/Brut/I18n/BaseMethods.html +0 -931
  570. data/docs/api/Brut/I18n/ForBackEnd.html +0 -302
  571. data/docs/api/Brut/I18n/ForCLI.html +0 -302
  572. data/docs/api/Brut/I18n/ForHTML.html +0 -296
  573. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +0 -316
  574. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +0 -930
  575. data/docs/api/Brut/I18n.html +0 -127
  576. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +0 -435
  577. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +0 -596
  578. data/docs/api/Brut/Instrumentation/Methods.html +0 -173
  579. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +0 -286
  580. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +0 -302
  581. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +0 -866
  582. data/docs/api/Brut/Instrumentation.html +0 -128
  583. data/docs/api/Brut/RubocopConfig.html +0 -237
  584. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +0 -534
  585. data/docs/api/Brut/SinatraHelpers.html +0 -281
  586. data/docs/api/Brut/SpecSupport/ClockSupport.html +0 -383
  587. data/docs/api/Brut/SpecSupport/ComponentSupport.html +0 -496
  588. data/docs/api/Brut/SpecSupport/E2ETestServer.html +0 -503
  589. data/docs/api/Brut/SpecSupport/E2eSupport.html +0 -142
  590. data/docs/api/Brut/SpecSupport/EnhancedNode.html +0 -403
  591. data/docs/api/Brut/SpecSupport/FlashSupport.html +0 -278
  592. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +0 -401
  593. data/docs/api/Brut/SpecSupport/GeneralSupport.html +0 -195
  594. data/docs/api/Brut/SpecSupport/HandlerSupport.html +0 -160
  595. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +0 -142
  596. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +0 -142
  597. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +0 -155
  598. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +0 -583
  599. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +0 -149
  600. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +0 -466
  601. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +0 -149
  602. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +0 -149
  603. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +0 -165
  604. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +0 -158
  605. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +0 -156
  606. data/docs/api/Brut/SpecSupport/Matchers.html +0 -125
  607. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +0 -335
  608. data/docs/api/Brut/SpecSupport/RSpecSetup.html +0 -637
  609. data/docs/api/Brut/SpecSupport/SessionSupport.html +0 -196
  610. data/docs/api/Brut/SpecSupport.html +0 -129
  611. data/docs/api/Brut.html +0 -341
  612. data/docs/api/Clock.html +0 -603
  613. data/docs/api/ModuleName.html +0 -595
  614. data/docs/api/RichString.html +0 -775
  615. data/docs/api/SemanticLogger/Appender/Async.html +0 -219
  616. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +0 -119
  617. data/docs/api/Sequel/Extensions/BrutMigrations.html +0 -541
  618. data/docs/api/Sequel/Extensions.html +0 -117
  619. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +0 -105
  620. data/docs/api/Sequel/Plugins/CreatedAt.html +0 -125
  621. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +0 -207
  622. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +0 -186
  623. data/docs/api/Sequel/Plugins/ExternalId.html +0 -218
  624. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +0 -202
  625. data/docs/api/Sequel/Plugins/FindBang.html +0 -125
  626. data/docs/api/Sequel/Plugins.html +0 -117
  627. data/docs/api/Sequel.html +0 -117
  628. data/docs/api/_index.html +0 -1719
  629. data/docs/api/class_list.html +0 -54
  630. data/docs/api/css/common.css +0 -1
  631. data/docs/api/css/full_list.css +0 -59
  632. data/docs/api/css/style.css +0 -504
  633. data/docs/api/file.README.html +0 -172
  634. data/docs/api/file_list.html +0 -59
  635. data/docs/api/frames.html +0 -22
  636. data/docs/api/index.html +0 -172
  637. data/docs/api/js/app.js +0 -344
  638. data/docs/api/js/full_list.js +0 -242
  639. data/docs/api/js/jquery.js +0 -4
  640. data/docs/api/method_list.html +0 -4422
  641. data/docs/api/top-level-namespace.html +0 -112
  642. data/docs/assets/02-confirmation-dialog-browser-element-styled.3NEGM20-.png +0 -0
  643. data/docs/assets/02-confirmation-dialog-browser-element.DPsf0xUW.png +0 -0
  644. data/docs/assets/02-confirmation-dialog-browser.DH8ALFO4.png +0 -0
  645. data/docs/assets/02-confirmation-flow.D9gZ0S5U.png +0 -0
  646. data/docs/assets/DevEnvironment.DaFcVfwP.png +0 -0
  647. data/docs/assets/LogoStop.Gb3tDhL1.png +0 -0
  648. data/docs/assets/OverviewMetro.DUS-5fUZ.png +0 -0
  649. data/docs/assets/adrs.md.YglbWtQe.js +0 -1
  650. data/docs/assets/adrs.md.YglbWtQe.lean.js +0 -1
  651. data/docs/assets/ai.md.ChLnvDAX.js +0 -1
  652. data/docs/assets/ai.md.ChLnvDAX.lean.js +0 -1
  653. data/docs/assets/app.CovevI7X.js +0 -1
  654. data/docs/assets/assets.md.BEF6Oz6K.js +0 -19
  655. data/docs/assets/assets.md.BEF6Oz6K.lean.js +0 -1
  656. data/docs/assets/basic-form-with-violations.Cv6Y9-Q_.png +0 -0
  657. data/docs/assets/basic-form.DbHnu0oW.png +0 -0
  658. data/docs/assets/brut-js.md.BMz0X1Rz.js +0 -12
  659. data/docs/assets/brut-js.md.BMz0X1Rz.lean.js +0 -1
  660. data/docs/assets/business-logic.md.DbuaOYGU.js +0 -1
  661. data/docs/assets/business-logic.md.DbuaOYGU.lean.js +0 -1
  662. data/docs/assets/chunks/@localSearchIndexroot.BiNc3tFI.js +0 -1
  663. data/docs/assets/chunks/VPLocalSearchBox.CrvLAvKW.js +0 -8
  664. data/docs/assets/chunks/framework.C4nOkCZI.js +0 -18
  665. data/docs/assets/chunks/theme.BAi5_yQI.js +0 -2
  666. data/docs/assets/cli.md.DDMar_51.js +0 -122
  667. data/docs/assets/cli.md.DDMar_51.lean.js +0 -1
  668. data/docs/assets/components.md.9sqJ27Oc.js +0 -96
  669. data/docs/assets/components.md.9sqJ27Oc.lean.js +0 -1
  670. data/docs/assets/configuration.md.Cb_oAR8Z.js +0 -78
  671. data/docs/assets/configuration.md.Cb_oAR8Z.lean.js +0 -1
  672. data/docs/assets/css.md.K5rOCOQY.js +0 -21
  673. data/docs/assets/css.md.K5rOCOQY.lean.js +0 -1
  674. data/docs/assets/custom-element-tests.md.DiLe-eFw.js +0 -69
  675. data/docs/assets/custom-element-tests.md.DiLe-eFw.lean.js +0 -1
  676. data/docs/assets/database-access.md.Dc8l2Plf.js +0 -63
  677. data/docs/assets/database-access.md.Dc8l2Plf.lean.js +0 -1
  678. data/docs/assets/database-schema.md.BJ_JhXmO.js +0 -70
  679. data/docs/assets/database-schema.md.BJ_JhXmO.lean.js +0 -1
  680. data/docs/assets/deployment.md.CHTx2eTR.js +0 -55
  681. data/docs/assets/deployment.md.CHTx2eTR.lean.js +0 -1
  682. data/docs/assets/dev-env-protocol.DysDAtnz.png +0 -0
  683. data/docs/assets/dev-environment.md.B1S9p5ZK.js +0 -16
  684. data/docs/assets/dev-environment.md.B1S9p5ZK.lean.js +0 -1
  685. data/docs/assets/dir-structure.md.D1T2kGwj.js +0 -46
  686. data/docs/assets/dir-structure.md.D1T2kGwj.lean.js +0 -1
  687. data/docs/assets/doc-conventions.md.CDnWaEFg.js +0 -1
  688. data/docs/assets/doc-conventions.md.CDnWaEFg.lean.js +0 -1
  689. data/docs/assets/end-to-end-tests.md.BJJdNDYL.js +0 -28
  690. data/docs/assets/end-to-end-tests.md.BJJdNDYL.lean.js +0 -1
  691. data/docs/assets/features.md.BDWxnyNO.js +0 -154
  692. data/docs/assets/features.md.BDWxnyNO.lean.js +0 -1
  693. data/docs/assets/flash-and-session.md.CUsMxoNl.js +0 -79
  694. data/docs/assets/flash-and-session.md.CUsMxoNl.lean.js +0 -1
  695. data/docs/assets/form-constraints.md.KlfXSKm2.js +0 -90
  696. data/docs/assets/form-constraints.md.KlfXSKm2.lean.js +0 -1
  697. data/docs/assets/forms.md.BdpYpNIk.js +0 -64
  698. data/docs/assets/forms.md.BdpYpNIk.lean.js +0 -1
  699. data/docs/assets/getting-started.md.CKpNGvno.js +0 -31
  700. data/docs/assets/getting-started.md.CKpNGvno.lean.js +0 -1
  701. data/docs/assets/handlers.md.C5tUwmmo.js +0 -54
  702. data/docs/assets/handlers.md.C5tUwmmo.lean.js +0 -1
  703. data/docs/assets/hooks.md.CoiYCKRc.js +0 -80
  704. data/docs/assets/hooks.md.CoiYCKRc.lean.js +0 -1
  705. data/docs/assets/i18n.md.DxkCKhUw.js +0 -23
  706. data/docs/assets/i18n.md.DxkCKhUw.lean.js +0 -1
  707. data/docs/assets/index.md.DnphWyQd.js +0 -1
  708. data/docs/assets/index.md.DnphWyQd.lean.js +0 -1
  709. data/docs/assets/initial-home-page.DNIaYmgP.png +0 -0
  710. data/docs/assets/instrumentation.md.BcxjC4jd.js +0 -90
  711. data/docs/assets/instrumentation.md.BcxjC4jd.lean.js +0 -1
  712. data/docs/assets/javascript.md.D6fxhaQb.js +0 -31
  713. data/docs/assets/javascript.md.D6fxhaQb.lean.js +0 -1
  714. data/docs/assets/jobs.md.Bi3qb3v6.js +0 -25
  715. data/docs/assets/jobs.md.Bi3qb3v6.lean.js +0 -1
  716. data/docs/assets/keyword-injection.md.CqLnnzIz.js +0 -21
  717. data/docs/assets/keyword-injection.md.CqLnnzIz.lean.js +0 -1
  718. data/docs/assets/layouts.md.HEbeK7Jr.js +0 -68
  719. data/docs/assets/layouts.md.HEbeK7Jr.lean.js +0 -1
  720. data/docs/assets/lsp.md.bE9dW8n9.js +0 -1
  721. data/docs/assets/lsp.md.bE9dW8n9.lean.js +0 -1
  722. data/docs/assets/markdown-examples.md.BPmtHlc-.js +0 -33
  723. data/docs/assets/markdown-examples.md.BPmtHlc-.lean.js +0 -1
  724. data/docs/assets/middleware.md.BhOIsg59.js +0 -20
  725. data/docs/assets/middleware.md.BhOIsg59.lean.js +0 -1
  726. data/docs/assets/new-post-editor.DrHr-5oh.png +0 -0
  727. data/docs/assets/new-post-home-page.Bm34lyMg.png +0 -0
  728. data/docs/assets/overview.md.BpWAgPFH.js +0 -1
  729. data/docs/assets/overview.md.BpWAgPFH.lean.js +0 -1
  730. data/docs/assets/pages.md.B3sQXpEd.js +0 -45
  731. data/docs/assets/pages.md.B3sQXpEd.lean.js +0 -1
  732. data/docs/assets/recipes_alternate-layouts.md.C1QzVkA7.js +0 -22
  733. data/docs/assets/recipes_alternate-layouts.md.C1QzVkA7.lean.js +0 -1
  734. data/docs/assets/recipes_authentication.md.CyvoIW82.js +0 -157
  735. data/docs/assets/recipes_authentication.md.CyvoIW82.lean.js +0 -1
  736. data/docs/assets/recipes_custom-flash.md.6gFqf2uL.js +0 -26
  737. data/docs/assets/recipes_custom-flash.md.6gFqf2uL.lean.js +0 -1
  738. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.js +0 -12
  739. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.lean.js +0 -1
  740. data/docs/assets/recipes_form-errors.md.B5ptSzMO.js +0 -66
  741. data/docs/assets/recipes_form-errors.md.B5ptSzMO.lean.js +0 -1
  742. data/docs/assets/recipes_indexed-forms.md.BYYQGW2C.js +0 -74
  743. data/docs/assets/recipes_indexed-forms.md.BYYQGW2C.lean.js +0 -1
  744. data/docs/assets/recipes_migrations.md.Cid7-3cu.js +0 -97
  745. data/docs/assets/recipes_migrations.md.Cid7-3cu.lean.js +0 -1
  746. data/docs/assets/recipes_text-field-component.md.VhOsCtKI.js +0 -101
  747. data/docs/assets/recipes_text-field-component.md.VhOsCtKI.lean.js +0 -1
  748. data/docs/assets/roadmap.md.DqC1Y7Zt.js +0 -1
  749. data/docs/assets/roadmap.md.DqC1Y7Zt.lean.js +0 -1
  750. data/docs/assets/routes.md.C1dgIBtD.js +0 -21
  751. data/docs/assets/routes.md.C1dgIBtD.lean.js +0 -1
  752. data/docs/assets/security.md.Jn4SY1uK.js +0 -1
  753. data/docs/assets/security.md.Jn4SY1uK.lean.js +0 -1
  754. data/docs/assets/seed-data.md.UZW0WxYN.js +0 -14
  755. data/docs/assets/seed-data.md.UZW0WxYN.lean.js +0 -1
  756. data/docs/assets/spa.qejUdp-5.png +0 -0
  757. data/docs/assets/space-time-continuum.md.D9rYGDFH.js +0 -1
  758. data/docs/assets/space-time-continuum.md.D9rYGDFH.lean.js +0 -1
  759. data/docs/assets/style.B1z60PPQ.css +0 -1
  760. data/docs/assets/styled-form-with-server-side-violations.Bjxd8Dpv.png +0 -0
  761. data/docs/assets/styled-form-with-violations.Bv_sa9tg.png +0 -0
  762. data/docs/assets/styled-home-page-with-posts.Dd4kG89D.png +0 -0
  763. data/docs/assets/styled-home-page.BzdI7dWz.png +0 -0
  764. data/docs/assets/tutorial.md.BX6f6l00.js +0 -27
  765. data/docs/assets/tutorial.md.BX6f6l00.lean.js +0 -1
  766. data/docs/assets/tutorials_01-intro.md.CzZ3kpF_.js +0 -708
  767. data/docs/assets/tutorials_01-intro.md.CzZ3kpF_.lean.js +0 -1
  768. data/docs/assets/tutorials_02-dialog.md.Z_DOF2mU.js +0 -274
  769. data/docs/assets/tutorials_02-dialog.md.Z_DOF2mU.lean.js +0 -1
  770. data/docs/assets/unit-tests.md.vDsdBbO_.js +0 -13
  771. data/docs/assets/unit-tests.md.vDsdBbO_.lean.js +0 -1
  772. data/docs/assets/welcome-to-brut.VSWzl17-.png +0 -0
  773. data/docs/assets/why.md.4WpxdrQ2.js +0 -1
  774. data/docs/assets/why.md.4WpxdrQ2.lean.js +0 -1
  775. data/docs/assets/workspace-protocol.C0gXsoDb.png +0 -0
  776. data/docs/assets.html +0 -47
  777. data/docs/brut-css/brut.max.css +0 -22372
  778. data/docs/brut-css/classes/appearances.html +0 -783
  779. data/docs/brut-css/classes/background-colors.html +0 -3529
  780. data/docs/brut-css/classes/border-colors.html +0 -3529
  781. data/docs/brut-css/classes/borders.html +0 -2293
  782. data/docs/brut-css/classes/dimensions.html +0 -2581
  783. data/docs/brut-css/classes/flex.html +0 -917
  784. data/docs/brut-css/classes/foreground-colors.html +0 -3261
  785. data/docs/brut-css/classes/junk-drawer.html +0 -431
  786. data/docs/brut-css/classes/layout.html +0 -668
  787. data/docs/brut-css/classes/lists.html +0 -331
  788. data/docs/brut-css/classes/positioning.html +0 -1751
  789. data/docs/brut-css/classes/spacings.html +0 -2633
  790. data/docs/brut-css/classes/typography.html +0 -2206
  791. data/docs/brut-css/customization/advanced-configuration.html +0 -204
  792. data/docs/brut-css/customization/breakpoints.html +0 -227
  793. data/docs/brut-css/customization/design-system.html +0 -197
  794. data/docs/brut-css/customization/pseudo-classes.html +0 -228
  795. data/docs/brut-css/docs.css +0 -98
  796. data/docs/brut-css/getting-started/core-concepts.html +0 -234
  797. data/docs/brut-css/getting-started/installation.html +0 -190
  798. data/docs/brut-css/getting-started/overview.html +0 -210
  799. data/docs/brut-css/getting-started/simple-example.html +0 -285
  800. data/docs/brut-css/index.html +0 -193
  801. data/docs/brut-css/prism-twilight.min.css +0 -1
  802. data/docs/brut-css/properties/colors.html +0 -1548
  803. data/docs/brut-css/properties/spacings.html +0 -614
  804. data/docs/brut-css/properties/typography.html +0 -777
  805. data/docs/brut-js/api/AjaxSubmit.html +0 -452
  806. data/docs/brut-js/api/AjaxSubmit.js.html +0 -550
  807. data/docs/brut-js/api/Autosubmit.html +0 -192
  808. data/docs/brut-js/api/Autosubmit.js.html +0 -114
  809. data/docs/brut-js/api/BaseCustomElement.html +0 -1091
  810. data/docs/brut-js/api/BaseCustomElement.js.html +0 -312
  811. data/docs/brut-js/api/BrutCustomElements.html +0 -172
  812. data/docs/brut-js/api/BufferedLogger.html +0 -173
  813. data/docs/brut-js/api/ConfirmSubmit.html +0 -286
  814. data/docs/brut-js/api/ConfirmSubmit.js.html +0 -188
  815. data/docs/brut-js/api/ConfirmationDialog.html +0 -425
  816. data/docs/brut-js/api/ConfirmationDialog.js.html +0 -194
  817. data/docs/brut-js/api/ConstraintViolationMessage.html +0 -498
  818. data/docs/brut-js/api/ConstraintViolationMessage.js.html +0 -191
  819. data/docs/brut-js/api/ConstraintViolationMessages.html +0 -590
  820. data/docs/brut-js/api/ConstraintViolationMessages.js.html +0 -149
  821. data/docs/brut-js/api/CopyToClipboard.html +0 -345
  822. data/docs/brut-js/api/CopyToClipboard.js.html +0 -147
  823. data/docs/brut-js/api/Form.html +0 -291
  824. data/docs/brut-js/api/Form.js.html +0 -198
  825. data/docs/brut-js/api/I18nTranslation.html +0 -409
  826. data/docs/brut-js/api/I18nTranslation.js.html +0 -115
  827. data/docs/brut-js/api/LocaleDetection.html +0 -312
  828. data/docs/brut-js/api/LocaleDetection.js.html +0 -168
  829. data/docs/brut-js/api/Logger.html +0 -702
  830. data/docs/brut-js/api/Logger.js.html +0 -141
  831. data/docs/brut-js/api/Message.html +0 -238
  832. data/docs/brut-js/api/Message.js.html +0 -113
  833. data/docs/brut-js/api/PrefixedLogger.html +0 -369
  834. data/docs/brut-js/api/RichString.html +0 -1049
  835. data/docs/brut-js/api/RichString.js.html +0 -167
  836. data/docs/brut-js/api/Tabs.html +0 -295
  837. data/docs/brut-js/api/Tabs.js.html +0 -219
  838. data/docs/brut-js/api/Toast.html +0 -270
  839. data/docs/brut-js/api/Toast.js.html +0 -153
  840. data/docs/brut-js/api/Tracing.html +0 -277
  841. data/docs/brut-js/api/Tracing.js.html +0 -298
  842. data/docs/brut-js/api/external-CustomElementRegistry.html +0 -140
  843. data/docs/brut-js/api/external-Performance.html +0 -138
  844. data/docs/brut-js/api/external-Promise.html +0 -138
  845. data/docs/brut-js/api/external-ValidityState.html +0 -138
  846. data/docs/brut-js/api/external-Window.html +0 -233
  847. data/docs/brut-js/api/external-fetch.html +0 -138
  848. data/docs/brut-js/api/global.html +0 -400
  849. data/docs/brut-js/api/index.html +0 -168
  850. data/docs/brut-js/api/index.js.html +0 -184
  851. data/docs/brut-js/api/module-testing.html +0 -383
  852. data/docs/brut-js/api/scripts/linenumber.js +0 -25
  853. data/docs/brut-js/api/scripts/prettify/Apache-License-2.0.txt +0 -202
  854. data/docs/brut-js/api/scripts/prettify/lang-css.js +0 -2
  855. data/docs/brut-js/api/scripts/prettify/prettify.js +0 -28
  856. data/docs/brut-js/api/styles/jsdoc-default.css +0 -327
  857. data/docs/brut-js/api/styles/prettify-jsdoc.css +0 -111
  858. data/docs/brut-js/api/styles/prettify-tomorrow.css +0 -132
  859. data/docs/brut-js/api/testing.AssetMetadata.html +0 -172
  860. data/docs/brut-js/api/testing.AssetMetadataLoader.html +0 -171
  861. data/docs/brut-js/api/testing.CustomElementTest.html +0 -679
  862. data/docs/brut-js/api/testing.DOMCreator.html +0 -171
  863. data/docs/brut-js/api/testing_AssetMetadata.js.html +0 -86
  864. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +0 -76
  865. data/docs/brut-js/api/testing_CustomElementTest.js.html +0 -286
  866. data/docs/brut-js/api/testing_DOMCreator.js.html +0 -96
  867. data/docs/brut-js/api/testing_index.js.html +0 -99
  868. data/docs/brut-js.html +0 -40
  869. data/docs/business-logic.html +0 -29
  870. data/docs/cli.html +0 -150
  871. data/docs/components.html +0 -124
  872. data/docs/configuration.html +0 -106
  873. data/docs/css.html +0 -49
  874. data/docs/custom-element-tests.html +0 -97
  875. data/docs/database-access.html +0 -91
  876. data/docs/database-schema.html +0 -98
  877. data/docs/deployment.html +0 -83
  878. data/docs/dev-environment.html +0 -44
  879. data/docs/dir-structure.html +0 -74
  880. data/docs/doc-conventions.html +0 -29
  881. data/docs/end-to-end-tests.html +0 -56
  882. data/docs/favicon.ico +0 -0
  883. data/docs/features.html +0 -182
  884. data/docs/flash-and-session.html +0 -107
  885. data/docs/form-constraints.html +0 -118
  886. data/docs/forms.html +0 -92
  887. data/docs/getting-started.html +0 -59
  888. data/docs/handlers.html +0 -82
  889. data/docs/hashmap.json +0 -1
  890. data/docs/hooks.html +0 -108
  891. data/docs/i18n.html +0 -51
  892. data/docs/index.html +0 -29
  893. data/docs/instrumentation.html +0 -118
  894. data/docs/javascript.html +0 -59
  895. data/docs/jobs.html +0 -53
  896. data/docs/keyword-injection.html +0 -49
  897. data/docs/layouts.html +0 -96
  898. data/docs/lsp.html +0 -29
  899. data/docs/markdown-examples.html +0 -61
  900. data/docs/middleware.html +0 -48
  901. data/docs/overview.html +0 -29
  902. data/docs/pages.html +0 -73
  903. data/docs/recipes/alternate-layouts.html +0 -50
  904. data/docs/recipes/authentication.html +0 -185
  905. data/docs/recipes/custom-flash.html +0 -54
  906. data/docs/recipes/dev-env-secrets.html +0 -40
  907. data/docs/recipes/form-errors.html +0 -94
  908. data/docs/recipes/indexed-forms.html +0 -102
  909. data/docs/recipes/migrations.html +0 -125
  910. data/docs/recipes/text-field-component.html +0 -129
  911. data/docs/roadmap.html +0 -29
  912. data/docs/routes.html +0 -49
  913. data/docs/security.html +0 -29
  914. data/docs/seed-data.html +0 -42
  915. data/docs/space-time-continuum.html +0 -29
  916. data/docs/tutorial.html +0 -55
  917. data/docs/tutorials/01-intro.html +0 -736
  918. data/docs/tutorials/02-dialog.html +0 -302
  919. data/docs/unit-tests.html +0 -41
  920. data/docs/vp-icons.css +0 -1
  921. data/docs/why.html +0 -29
  922. data/docs-todo.md +0 -32
  923. data/dx/bash_customizations +0 -6
  924. data/dx/build +0 -73
  925. data/dx/build.pre +0 -15
  926. data/dx/docker-compose.env +0 -22
  927. data/dx/dx.sh.lib +0 -24
  928. data/dx/exec +0 -75
  929. data/dx/setupkit.sh.lib +0 -144
  930. data/dx/show-help-in-app-container-then-wait.sh +0 -38
  931. data/lib/brut/cli/app.rb +0 -238
  932. data/lib/brut/cli/app_runner.rb +0 -252
  933. data/lib/brut/cli/command.rb +0 -258
  934. data/lib/brut/cli/execution_results.rb +0 -119
  935. data/lib/brut/front_end/layouts/_internal.html.erb +0 -68
  936. data/lib/brut/front_end/pages/_missing_page.html.erb +0 -17
  937. data/mkbrut/.gitignore +0 -16
  938. data/mkbrut/CODE_OF_CONDUCT.txt +0 -100
  939. data/mkbrut/Gemfile +0 -3
  940. data/mkbrut/Gemfile.lock +0 -20
  941. data/mkbrut/LICENSE.txt +0 -370
  942. data/mkbrut/README.md +0 -145
  943. data/mkbrut/Rakefile +0 -2
  944. data/mkbrut/bin/build +0 -36
  945. data/mkbrut/bin/ci +0 -19
  946. data/mkbrut/bin/docs +0 -19
  947. data/mkbrut/bin/publish +0 -129
  948. data/mkbrut/bin/rake +0 -16
  949. data/mkbrut/bin/setup +0 -30
  950. data/mkbrut/brut-welcome.png +0 -0
  951. data/mkbrut/deploy/.dockerignore +0 -2
  952. data/mkbrut/deploy/Dockerfile +0 -25
  953. data/mkbrut/dx +0 -1
  954. data/mkbrut/exe/mkbrut +0 -5
  955. data/mkbrut/lib/mkbrut/app_name.rb +0 -29
  956. data/mkbrut/lib/mkbrut/app_options.rb +0 -36
  957. data/mkbrut/lib/mkbrut/cli.rb +0 -189
  958. data/mkbrut/lib/mkbrut/erb_binding_delegate.rb +0 -20
  959. data/mkbrut/lib/mkbrut/ops.rb +0 -17
  960. data/mkbrut/lib/mkbrut/organization.rb +0 -5
  961. data/mkbrut/lib/mkbrut/segments.rb +0 -8
  962. data/mkbrut/lib/mkbrut/version.rb +0 -3
  963. data/mkbrut/lib/mkbrut.rb +0 -20
  964. data/mkbrut/mkbrut.gemspec +0 -34
  965. data/mkbrut/templates/Base/app/src/front_end/images/LogoPylon.png +0 -0
  966. data/mkbrut/templates/Base/bin/build-assets +0 -7
  967. data/mkbrut/templates/Base/bin/ci +0 -39
  968. data/mkbrut/templates/Base/bin/db +0 -9
  969. data/mkbrut/templates/Base/bin/scaffold +0 -9
  970. data/mkbrut/templates/Base/bin/setup +0 -287
  971. data/mkbrut/templates/Base/bin/test +0 -9
  972. data/mkbrut/templates/Base/bin/test-server +0 -29
  973. data/mkbrut/templates/Base/dx/prune +0 -19
  974. data/mkbrut/templates/Base/dx/start +0 -30
  975. data/mkbrut/templates/Base/dx/stop +0 -23
  976. data/mkbrut/templates/segments/Heroku/deploy/heroku_config.rb +0 -27
  977. data/specs/brut/front_end/forms/input.spec.rb +0 -978
  978. data/specs/brut/front_end/forms/radio_button_group_input.spec.rb +0 -54
  979. data/specs/brut/front_end/forms/select_input.spec.rb +0 -54
  980. data/specs/brut/instrumentation/methods.spec.rb +0 -399
  981. data/specs/brut/junk_drawer.spec.rb +0 -79
  982. data/specs/spec_helper.rb +0 -27
  983. data/specs/support/matchers/have_constraint_violation.rb +0 -23
  984. data/specs/support/matchers.rb +0 -5
  985. data/specs/support.rb +0 -3
  986. /data/{mkbrut/lib/mkbrut → lib/brut/cli/apps/new}/prefixed_io.rb +0 -0
  987. /data/{mkbrut/templates → templates}/Base/.dockerignore +0 -0
  988. /data/{mkbrut/templates → templates}/Base/.env.development.erb +0 -0
  989. /data/{mkbrut/templates → templates}/Base/.env.test.erb +0 -0
  990. /data/{mkbrut/templates → templates}/Base/.gitignore +0 -0
  991. /data/{mkbrut/templates → templates}/Base/.projections.json +0 -0
  992. /data/{mkbrut/templates → templates}/Base/Dockerfile.dx +0 -0
  993. /data/{mkbrut/templates → templates}/Base/Gemfile.erb +0 -0
  994. /data/{mkbrut/templates → templates}/Base/Procfile.development +0 -0
  995. /data/{mkbrut/templates → templates}/Base/Procfile.test +0 -0
  996. /data/{mkbrut/templates → templates}/Base/README.md +0 -0
  997. /data/{mkbrut/templates → templates}/Base/README.md.erb +0 -0
  998. /data/{mkbrut/templates → templates}/Base/app/bootstrap.rb +0 -0
  999. /data/{mkbrut/templates → templates}/Base/app/config/i18n/en/1_defaults.rb +0 -0
  1000. /data/{mkbrut/templates → templates}/Base/app/config/i18n/en/2_app.rb +0 -0
  1001. /data/{mkbrut/templates → templates}/Base/app/public/static/manifest.json.erb +0 -0
  1002. /data/{mkbrut/templates → templates}/Base/app/src/app.rb.erb +0 -0
  1003. /data/{mkbrut/templates → templates}/Base/app/src/back_end/data_models/app_data_model.rb +0 -0
  1004. /data/{mkbrut/templates → templates}/Base/app/src/back_end/data_models/db.rb +0 -0
  1005. /data/{mkbrut/templates → templates}/Base/app/src/back_end/data_models/migrations/20240101130000_citext.rb +0 -0
  1006. /data/{mkbrut/templates → templates}/Base/app/src/back_end/data_models/seed/seed_data.rb +0 -0
  1007. /data/{mkbrut/templates → templates}/Base/app/src/front_end/components/app_component.rb +0 -0
  1008. /data/{mkbrut/templates → templates}/Base/app/src/front_end/components/custom_element_registration.rb.erb +0 -0
  1009. /data/{mkbrut/templates → templates}/Base/app/src/front_end/css/index.css +0 -0
  1010. /data/{mkbrut/templates → templates}/Base/app/src/front_end/css/svgs.css +0 -0
  1011. /data/{mkbrut/templates → templates}/Base/app/src/front_end/forms/app_form.rb +0 -0
  1012. /data/{mkbrut/templates → templates}/Base/app/src/front_end/handlers/app_handler.rb +0 -0
  1013. /data/{brutrb.com → templates/Base/app/src/front_end}/images/LogoPylon.png +0 -0
  1014. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/LogoTransit.png +0 -0
  1015. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/apple-touch-icon-120x120.png +0 -0
  1016. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/apple-touch-icon-152x152.png +0 -0
  1017. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/apple-touch-icon-167x167.png +0 -0
  1018. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/apple-touch-icon-180x180.png +0 -0
  1019. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/favicon.ico +0 -0
  1020. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/icon.png +0 -0
  1021. /data/{mkbrut/templates → templates}/Base/app/src/front_end/images/mkicons.sh +0 -0
  1022. /data/{mkbrut/templates → templates}/Base/app/src/front_end/js/index.js +0 -0
  1023. /data/{mkbrut/templates → templates}/Base/app/src/front_end/layouts/blank_layout.rb +0 -0
  1024. /data/{mkbrut/templates → templates}/Base/app/src/front_end/layouts/default_layout.rb.erb +0 -0
  1025. /data/{mkbrut/templates → templates}/Base/app/src/front_end/pages/app_page.rb +0 -0
  1026. /data/{mkbrut/templates → templates}/Base/app/src/front_end/pages/home_page.rb +0 -0
  1027. /data/{mkbrut/templates → templates}/Base/app/src/front_end/support/app_session.rb +0 -0
  1028. /data/{mkbrut/templates → templates}/Base/app/src/front_end/svgs/README.md +0 -0
  1029. /data/{mkbrut/templates → templates}/Base/app/src/front_end/svgs/comment-button.svg +0 -0
  1030. /data/{mkbrut/templates → templates}/Base/bin/README.md.erb +0 -0
  1031. /data/{mkbrut/templates → templates}/Base/bin/console +0 -0
  1032. /data/{mkbrut/templates → templates}/Base/bin/dbconsole +0 -0
  1033. /data/{mkbrut/templates → templates}/Base/bin/dev +0 -0
  1034. /data/{mkbrut/templates → templates}/Base/bin/run +0 -0
  1035. /data/{mkbrut/templates → templates}/Base/bin/run.run +0 -0
  1036. /data/{mkbrut/templates → templates}/Base/bin/startup-message +0 -0
  1037. /data/{mkbrut/templates → templates}/Base/config.ru +0 -0
  1038. /data/{mkbrut/templates → templates}/Base/docker-compose.dx.yml +0 -0
  1039. /data/{mkbrut/templates → templates}/Base/dx/README.md +0 -0
  1040. /data/{mkbrut/templates → templates}/Base/dx/bash_customizations +0 -0
  1041. /data/{mkbrut/templates → templates}/Base/dx/bash_customizations.local +0 -0
  1042. /data/{mkbrut/templates → templates}/Base/dx/build +0 -0
  1043. /data/{mkbrut/templates → templates}/Base/dx/dx.sh.lib +0 -0
  1044. /data/{mkbrut/templates → templates}/Base/dx/exec +0 -0
  1045. /data/{dx → templates/Base/dx}/prune +0 -0
  1046. /data/{mkbrut/templates → templates}/Base/dx/show-help-in-app-container-then-wait.sh +0 -0
  1047. /data/{dx → templates/Base/dx}/start +0 -0
  1048. /data/{dx → templates/Base/dx}/stop +0 -0
  1049. /data/{mkbrut/templates → templates}/Base/package.json.erb +0 -0
  1050. /data/{mkbrut/templates → templates}/Base/puma.config.rb +0 -0
  1051. /data/{mkbrut/templates → templates}/Base/specs/e2e/home_page.spec.rb.erb +0 -0
  1052. /data/{mkbrut/templates → templates}/Base/specs/front_end/js/SpecHelper.js +0 -0
  1053. /data/{mkbrut/templates → templates}/Base/specs/front_end/pages/home_page.spec.rb +0 -0
  1054. /data/{mkbrut/templates → templates}/Base/specs/lint_factories.spec.rb +0 -0
  1055. /data/{mkbrut/templates → templates}/Base/specs/spec_helper.rb +0 -0
  1056. /data/{mkbrut/templates → templates}/Base/specs/support.rb +0 -0
  1057. /data/{mkbrut/templates → templates}/segments/BareBones/app/src/front_end/handlers/trigger_exception_handler.rb +0 -0
  1058. /data/{mkbrut/templates → templates}/segments/BareBones/app/src/front_end/js/Example.js.erb +0 -0
  1059. /data/{mkbrut/templates → templates}/segments/BareBones/specs/front_end/handlers/trigger_exception_handler.spec.rb +0 -0
  1060. /data/{mkbrut/templates → templates}/segments/BareBones/specs/front_end/js/Example.spec.js.erb +0 -0
  1061. /data/{mkbrut/templates → templates}/segments/Demo/app/src/back_end/data_models/db/guestbook_message.rb +0 -0
  1062. /data/{mkbrut/templates → templates}/segments/Demo/app/src/back_end/data_models/migrations/20250628194124_guestbook.rb +0 -0
  1063. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/components/flash_component.rb +0 -0
  1064. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/css/constraint-violations.css +0 -0
  1065. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/fonts/monaspace-xenon.ttf +0 -0
  1066. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/forms/guestbook_message_form.rb +0 -0
  1067. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/handlers/guestbook_message_handler.rb +0 -0
  1068. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/pages/guestbook_page/message_component.rb +0 -0
  1069. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/pages/guestbook_page.rb +0 -0
  1070. /data/{mkbrut/templates → templates}/segments/Demo/app/src/front_end/pages/new_guestbook_message_page.rb +0 -0
  1071. /data/{mkbrut/templates → templates}/segments/Demo/specs/back_end/data_models/db/guestbook_message.spec.rb +0 -0
  1072. /data/{mkbrut/templates → templates}/segments/Demo/specs/e2e/guest_message.spec.rb +0 -0
  1073. /data/{mkbrut/templates → templates}/segments/Demo/specs/factories/db/guestbook_message.factory.rb +0 -0
  1074. /data/{mkbrut/templates → templates}/segments/Demo/specs/front_end/components/flash_component.spec.rb +0 -0
  1075. /data/{mkbrut/templates → templates}/segments/Demo/specs/front_end/handlers/guestbook_message_handler.spec.rb +0 -0
  1076. /data/{mkbrut/templates → templates}/segments/Demo/specs/front_end/pages/guestbook_page/message_component.spec.rb +0 -0
  1077. /data/{mkbrut/templates → templates}/segments/Demo/specs/front_end/pages/guestbook_page.spec.rb +0 -0
  1078. /data/{mkbrut/templates → templates}/segments/Demo/specs/front_end/pages/new_guestbook_message_page.spec.rb +0 -0
  1079. /data/{mkbrut/templates → templates}/segments/Heroku/bin/deploy +0 -0
  1080. /data/{mkbrut/templates → templates}/segments/Heroku/deploy/docker-entrypoint +0 -0
  1081. /data/{mkbrut/templates → templates}/segments/Sidekiq/app/boot_sidekiq.rb +0 -0
  1082. /data/{mkbrut/templates → templates}/segments/Sidekiq/app/config/sidekiq.yml +0 -0
  1083. /data/{mkbrut/templates → templates}/segments/Sidekiq/app/src/back_end/jobs/app_job.rb +0 -0
  1084. /data/{mkbrut/templates → templates}/segments/Sidekiq/app/src/back_end/jobs/example_job.rb +0 -0
  1085. /data/{mkbrut/templates → templates}/segments/Sidekiq/app/src/back_end/segments/sidekiq_segment.rb +0 -0
  1086. /data/{mkbrut/templates → templates}/segments/Sidekiq/bin/run.sidekiq +0 -0
  1087. /data/{mkbrut/templates → templates}/segments/Sidekiq/specs/back_end/jobs/example_job.spec.rb +0 -0
  1088. /data/{mkbrut/templates → templates}/segments/Sidekiq/specs/integration/sidekiq_works.spec.rb +0 -0
@@ -1,2425 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: Brut::CLI::Command
8
-
9
- &mdash; Documentation by YARD 0.9.37
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
-
15
- <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
-
17
- <script type="text/javascript">
18
- pathId = "Brut::CLI::Command";
19
- relpath = '../../';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../../class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../../_index.html">Index (C)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../../Brut.html" title="Brut (module)">Brut</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../CLI.html" title="Brut::CLI (module)">CLI</a></span></span>
41
- &raquo;
42
- <span class="title">Command</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Class: Brut::CLI::Command
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName">Object</span>
73
-
74
- <ul class="fullTree">
75
- <li>Object</li>
76
-
77
- <li class="next">Brut::CLI::Command</li>
78
-
79
- </ul>
80
- <a href="#" class="inheritanceTree">show all</a>
81
-
82
- </dd>
83
- </dl>
84
-
85
-
86
-
87
-
88
-
89
-
90
- <dl>
91
- <dt>Includes:</dt>
92
- <dd><span class='object_link'><a href="ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span>, <span class='object_link'><a href="../Framework/Errors.html" title="Brut::Framework::Errors (module)">Framework::Errors</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html" title="Brut::I18n::ForCLI (module)">I18n::ForCLI</a></span></dd>
93
- </dl>
94
-
95
-
96
-
97
-
98
-
99
-
100
- <dl>
101
- <dt>Defined in:</dt>
102
- <dd>lib/brut/cli/command.rb</dd>
103
- </dl>
104
-
105
- </div>
106
-
107
- <h2>Overview</h2><div class="docstring">
108
- <div class="discussion">
109
- <p>Base class for subcommands of a <span class='object_link'><a href="App.html" title="Brut::CLI::App (class)">App</a></span>. You must implement <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to perform whatever action this command must perform.</p>
110
-
111
-
112
- </div>
113
- </div>
114
- <div class="tags">
115
-
116
-
117
- </div><div id="subclasses">
118
- <h2>Direct Known Subclasses</h2>
119
- <p class="children"><span class='object_link'><a href="Apps/BuildAssets/All.html" title="Brut::CLI::Apps::BuildAssets::All (class)">Apps::BuildAssets::All</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Css.html" title="Brut::CLI::Apps::BuildAssets::Css (class)">Apps::BuildAssets::Css</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Images.html" title="Brut::CLI::Apps::BuildAssets::Images (class)">Apps::BuildAssets::Images</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Js.html" title="Brut::CLI::Apps::BuildAssets::Js (class)">Apps::BuildAssets::Js</a></span>, <span class='object_link'><a href="Apps/DB/Create.html" title="Brut::CLI::Apps::DB::Create (class)">Apps::DB::Create</a></span>, <span class='object_link'><a href="Apps/DB/Drop.html" title="Brut::CLI::Apps::DB::Drop (class)">Apps::DB::Drop</a></span>, <span class='object_link'><a href="Apps/DB/Migrate.html" title="Brut::CLI::Apps::DB::Migrate (class)">Apps::DB::Migrate</a></span>, <span class='object_link'><a href="Apps/DB/NewMigration.html" title="Brut::CLI::Apps::DB::NewMigration (class)">Apps::DB::NewMigration</a></span>, <span class='object_link'><a href="Apps/DB/Rebuild.html" title="Brut::CLI::Apps::DB::Rebuild (class)">Apps::DB::Rebuild</a></span>, <span class='object_link'><a href="Apps/DB/Seed.html" title="Brut::CLI::Apps::DB::Seed (class)">Apps::DB::Seed</a></span>, <span class='object_link'><a href="Apps/DB/Status.html" title="Brut::CLI::Apps::DB::Status (class)">Apps::DB::Status</a></span>, <span class='object_link'><a href="Apps/HerokuContainerBasedDeploy/Deploy.html" title="Brut::CLI::Apps::HerokuContainerBasedDeploy::Deploy (class)">Apps::HerokuContainerBasedDeploy::Deploy</a></span>, <span class='object_link'><a href="Apps/Scaffold/Action.html" title="Brut::CLI::Apps::Scaffold::Action (class)">Apps::Scaffold::Action</a></span>, <span class='object_link'><a href="Apps/Scaffold/Component.html" title="Brut::CLI::Apps::Scaffold::Component (class)">Apps::Scaffold::Component</a></span>, <span class='object_link'><a href="Apps/Scaffold/CustomElementTest.html" title="Brut::CLI::Apps::Scaffold::CustomElementTest (class)">Apps::Scaffold::CustomElementTest</a></span>, <span class='object_link'><a href="Apps/Scaffold/DbModel.html" title="Brut::CLI::Apps::Scaffold::DbModel (class)">Apps::Scaffold::DbModel</a></span>, <span class='object_link'><a href="Apps/Scaffold/E2ETest.html" title="Brut::CLI::Apps::Scaffold::E2ETest (class)">Apps::Scaffold::E2ETest</a></span>, <span class='object_link'><a href="Apps/Scaffold/Page.html" title="Brut::CLI::Apps::Scaffold::Page (class)">Apps::Scaffold::Page</a></span>, <span class='object_link'><a href="Apps/Scaffold/Test.html" title="Brut::CLI::Apps::Scaffold::Test (class)">Apps::Scaffold::Test</a></span>, <span class='object_link'><a href="Apps/Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Apps::Test::Audit</a></span>, <span class='object_link'><a href="Apps/Test/Js.html" title="Brut::CLI::Apps::Test::Js (class)">Apps::Test::Js</a></span>, <span class='object_link'><a href="Apps/Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Apps::Test::Run</a></span></p>
120
- </div>
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
- <h2>
130
- Class Method Summary
131
- <small><a href="#" class="summary_toggle">collapse</a></small>
132
- </h2>
133
-
134
- <ul class="summary">
135
-
136
- <li class="public ">
137
- <span class="summary_signature">
138
-
139
- <a href="#args-class_method" title="args (class method)">.<strong>args</strong>(new_args = nil) &#x21d2; String the current value (if called with no parameters) </a>
140
-
141
-
142
-
143
- </span>
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
- <span class="summary_desc"><div class='inline'><p>Set a description of the command line args this command accepts.</p>
154
- </div></span>
155
-
156
- </li>
157
-
158
-
159
- <li class="public ">
160
- <span class="summary_signature">
161
-
162
- <a href="#command_name-class_method" title="command_name (class method)">.<strong>command_name</strong> &#x21d2; Object </a>
163
-
164
-
165
-
166
- </span>
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
- <span class="summary_desc"><div class='inline'><p>Returns the name of this command, for use on the command line.</p>
177
- </div></span>
178
-
179
- </li>
180
-
181
-
182
- <li class="public ">
183
- <span class="summary_signature">
184
-
185
- <a href="#default_env-class_method" title="default_env (class method)">.<strong>default_env</strong> &#x21d2; Object </a>
186
-
187
-
188
-
189
- </span>
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
- <span class="summary_desc"><div class='inline'><p>Returns the default project env, based on the logic described in <span class='object_link'><a href="#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">Command.requires_project_env</a></span>.</p>
200
- </div></span>
201
-
202
- </li>
203
-
204
-
205
- <li class="public ">
206
- <span class="summary_signature">
207
-
208
- <a href="#description-class_method" title="description (class method)">.<strong>description</strong>(new_description = nil) &#x21d2; String </a>
209
-
210
-
211
-
212
- </span>
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
- <span class="summary_desc"><div class='inline'><p>Call this to set the one-line description of this command.</p>
223
- </div></span>
224
-
225
- </li>
226
-
227
-
228
- <li class="public ">
229
- <span class="summary_signature">
230
-
231
- <a href="#detailed_description-class_method" title="detailed_description (class method)">.<strong>detailed_description</strong>(new_description = nil) &#x21d2; String </a>
232
-
233
-
234
-
235
- </span>
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
- <span class="summary_desc"><div class='inline'><p>Call this to set a an additional detailed description of this command.</p>
246
- </div></span>
247
-
248
- </li>
249
-
250
-
251
- <li class="public ">
252
- <span class="summary_signature">
253
-
254
- <a href="#env_var-class_method" title="env_var (class method)">.<strong>env_var</strong>(var_name, purpose:) &#x21d2; Object </a>
255
-
256
-
257
-
258
- </span>
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
- <span class="summary_desc"><div class='inline'><p>Call this for each environment variable this <em>command</em> responds to.</p>
269
- </div></span>
270
-
271
- </li>
272
-
273
-
274
- <li class="public ">
275
- <span class="summary_signature">
276
-
277
- <a href="#name_matches%3F-class_method" title="name_matches? (class method)">.<strong>name_matches?</strong>(string) &#x21d2; true|false </a>
278
-
279
-
280
-
281
- </span>
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
- <span class="summary_desc"><div class='inline'><p>Checks if a given string matches this command name.</p>
292
- </div></span>
293
-
294
- </li>
295
-
296
-
297
- <li class="public ">
298
- <span class="summary_signature">
299
-
300
- <a href="#option_parser-class_method" title="option_parser (class method)">.<strong>option_parser</strong> &#x21d2; OptionParser </a>
301
-
302
-
303
-
304
- </span>
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
- <span class="summary_desc"><div class='inline'><p>Returns the configured <code>OptionParser</code> used to parse the command portion of the command line.</p>
315
- </div></span>
316
-
317
- </li>
318
-
319
-
320
- <li class="public ">
321
- <span class="summary_signature">
322
-
323
- <a href="#opts-class_method" title="opts (class method)">.<strong>opts</strong> &#x21d2; OptionParser </a>
324
-
325
-
326
-
327
- </span>
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
- <span class="summary_desc"><div class='inline'><p>Provides access to an <code>OptionParser</code> you can use to declare flags and switches that should be accepted only by this command.</p>
338
- </div></span>
339
-
340
- </li>
341
-
342
-
343
- <li class="public ">
344
- <span class="summary_signature">
345
-
346
- <a href="#requires_project_env-class_method" title="requires_project_env (class method)">.<strong>requires_project_env</strong>(default: &quot;development&quot;) &#x21d2; Object </a>
347
-
348
-
349
-
350
- </span>
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
- <span class="summary_desc"><div class='inline'><p>Call this if this command requires a project environment as context for what it does.</p>
361
- </div></span>
362
-
363
- </li>
364
-
365
-
366
- <li class="public ">
367
- <span class="summary_signature">
368
-
369
- <a href="#requires_project_env%3F-class_method" title="requires_project_env? (class method)">.<strong>requires_project_env?</strong> &#x21d2; Boolean </a>
370
-
371
-
372
-
373
- </span>
374
-
375
-
376
-
377
-
378
-
379
-
380
-
381
-
382
-
383
- <span class="summary_desc"><div class='inline'><p>Returns true if this app requires a project env.</p>
384
- </div></span>
385
-
386
- </li>
387
-
388
-
389
- </ul>
390
-
391
- <h2>
392
- Instance Method Summary
393
- <small><a href="#" class="summary_toggle">collapse</a></small>
394
- </h2>
395
-
396
- <ul class="summary">
397
-
398
- <li class="public ">
399
- <span class="summary_signature">
400
-
401
- <a href="#after_bootstrap-instance_method" title="#after_bootstrap (instance method)">#<strong>after_bootstrap</strong>(app:) &#x21d2; Object </a>
402
-
403
-
404
-
405
- </span>
406
-
407
-
408
-
409
-
410
-
411
-
412
-
413
-
414
-
415
- <span class="summary_desc"><div class='inline'><p>Called after all setup has been executed.</p>
416
- </div></span>
417
-
418
- </li>
419
-
420
-
421
- <li class="public ">
422
- <span class="summary_signature">
423
-
424
- <a href="#args-instance_method" title="#args (instance method)">#<strong>args</strong> &#x21d2; Array&lt;String&gt; </a>
425
-
426
-
427
-
428
- </span>
429
-
430
-
431
-
432
-
433
-
434
-
435
-
436
-
437
-
438
- <span class="summary_desc"><div class='inline'><p>The arguments parsed from the command line.</p>
439
- </div></span>
440
-
441
- </li>
442
-
443
-
444
- <li class="public ">
445
- <span class="summary_signature">
446
-
447
- <a href="#before_execute-instance_method" title="#before_execute (instance method)">#<strong>before_execute</strong> &#x21d2; Object </a>
448
-
449
-
450
-
451
- </span>
452
-
453
-
454
-
455
-
456
-
457
-
458
-
459
-
460
-
461
- <span class="summary_desc"><div class='inline'><p>Called before any execution or bootstrapping happens but after <span class='object_link'><a href="App.html#before_execute-instance_method" title="Brut::CLI::App#before_execute (method)">App#before_execute</a></span> is called.</p>
462
- </div></span>
463
-
464
- </li>
465
-
466
-
467
- <li class="public ">
468
- <span class="summary_signature">
469
-
470
- <a href="#delegate_to_commands-instance_method" title="#delegate_to_commands (instance method)">#<strong>delegate_to_commands</strong>(*command_klasses) &#x21d2; Brut::CLI::ExecutionResults::Result </a>
471
-
472
-
473
-
474
- </span>
475
-
476
-
477
-
478
-
479
-
480
-
481
-
482
-
483
-
484
- <span class="summary_desc"><div class='inline'><p>Use this inside <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to createa compound command that executes other commands that are a part of your CLI app.</p>
485
- </div></span>
486
-
487
- </li>
488
-
489
-
490
- <li class="public ">
491
- <span class="summary_signature">
492
-
493
- <a href="#err-instance_method" title="#err (instance method)">#<strong>err</strong> &#x21d2; Brut::CLI::Output </a>
494
-
495
-
496
-
497
- </span>
498
-
499
-
500
-
501
-
502
-
503
-
504
-
505
-
506
-
507
- <span class="summary_desc"><div class='inline'><p>IO to use for sending messages to the standard error.</p>
508
- </div></span>
509
-
510
- </li>
511
-
512
-
513
- <li class="public ">
514
- <span class="summary_signature">
515
-
516
- <a href="#execute-instance_method" title="#execute (instance method)">#<strong>execute</strong> &#x21d2; Brut::CLI::ExecutionResults::Result </a>
517
-
518
-
519
-
520
- </span>
521
-
522
-
523
-
524
-
525
-
526
-
527
-
528
-
529
-
530
- <span class="summary_desc"><div class='inline'><p>You must implement this to perform whatever action your command needs to perform.</p>
531
- </div></span>
532
-
533
- </li>
534
-
535
-
536
- <li class="public ">
537
- <span class="summary_signature">
538
-
539
- <a href="#global_options-instance_method" title="#global_options (instance method)">#<strong>global_options</strong> &#x21d2; Brut::CLI::Options </a>
540
-
541
-
542
-
543
- </span>
544
-
545
-
546
-
547
-
548
-
549
-
550
-
551
-
552
-
553
- <span class="summary_desc"><div class='inline'><p>The global options parsed on the command line.</p>
554
- </div></span>
555
-
556
- </li>
557
-
558
-
559
- <li class="public ">
560
- <span class="summary_signature">
561
-
562
- <a href="#handle_bootstrap_exception-instance_method" title="#handle_bootstrap_exception (instance method)">#<strong>handle_bootstrap_exception</strong>(ex) &#x21d2; void </a>
563
-
564
-
565
-
566
- </span>
567
-
568
-
569
-
570
-
571
-
572
-
573
-
574
-
575
-
576
- <span class="summary_desc"><div class='inline'><p>Called if there is an exception during bootstrapping.</p>
577
- </div></span>
578
-
579
- </li>
580
-
581
-
582
- <li class="public ">
583
- <span class="summary_signature">
584
-
585
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(command_options:, global_options:, args:, out:, err:, executor:) &#x21d2; Command </a>
586
-
587
-
588
-
589
- </span>
590
-
591
-
592
- <span class="note title constructor">constructor</span>
593
-
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
- <span class="summary_desc"><div class='inline'><p>Creates the command before executing it.</p>
602
- </div></span>
603
-
604
- </li>
605
-
606
-
607
- <li class="public ">
608
- <span class="summary_signature">
609
-
610
- <a href="#options-instance_method" title="#options (instance method)">#<strong>options</strong> &#x21d2; Brut::CLI::Options </a>
611
-
612
-
613
-
614
- </span>
615
-
616
-
617
-
618
-
619
-
620
-
621
-
622
-
623
-
624
- <span class="summary_desc"><div class='inline'><p>The command options parsed on the command line.</p>
625
- </div></span>
626
-
627
- </li>
628
-
629
-
630
- <li class="public ">
631
- <span class="summary_signature">
632
-
633
- <a href="#out-instance_method" title="#out (instance method)">#<strong>out</strong> &#x21d2; Brut::CLI::Output </a>
634
-
635
-
636
-
637
- </span>
638
-
639
-
640
-
641
-
642
-
643
-
644
-
645
-
646
-
647
- <span class="summary_desc"><div class='inline'><p>IO to use for sending messages to the standard output.</p>
648
- </div></span>
649
-
650
- </li>
651
-
652
-
653
- <li class="public ">
654
- <span class="summary_signature">
655
-
656
- <a href="#system!-instance_method" title="#system! (instance method)">#<strong>system!</strong>(*args) &#x21d2; int </a>
657
-
658
-
659
-
660
- </span>
661
-
662
-
663
-
664
-
665
-
666
-
667
-
668
-
669
-
670
- <span class="summary_desc"><div class='inline'><p>Convienince method to call <span class='object_link'><a href="Executor.html#system!-instance_method" title="Brut::CLI::Executor#system! (method)">Executor#system!</a></span> on the executor given in the constructor.</p>
671
- </div></span>
672
-
673
- </li>
674
-
675
-
676
- </ul>
677
-
678
-
679
-
680
-
681
-
682
-
683
-
684
-
685
-
686
-
687
-
688
- <h3 class="inherited">Methods included from <span class='object_link'><a href="../Framework/Errors.html" title="Brut::Framework::Errors (module)">Framework::Errors</a></span></h3>
689
- <p class="inherited"><span class='object_link'><a href="../Framework/Errors.html#abstract_method!-instance_method" title="Brut::Framework::Errors#abstract_method! (method)">#abstract_method!</a></span>, <span class='object_link'><a href="../Framework/Errors.html#bug!-instance_method" title="Brut::Framework::Errors#bug! (method)">#bug!</a></span></p>
690
-
691
-
692
-
693
-
694
-
695
-
696
-
697
-
698
-
699
- <h3 class="inherited">Methods included from <span class='object_link'><a href="../I18n/ForCLI.html" title="Brut::I18n::ForCLI (module)">I18n::ForCLI</a></span></h3>
700
- <p class="inherited"><span class='object_link'><a href="../I18n/ForCLI.html#capture-instance_method" title="Brut::I18n::ForCLI#capture (method)">#capture</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html#html_escape-instance_method" title="Brut::I18n::ForCLI#html_escape (method)">#html_escape</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html#safe-instance_method" title="Brut::I18n::ForCLI#safe (method)">#safe</a></span></p>
701
-
702
-
703
-
704
-
705
-
706
-
707
-
708
-
709
-
710
- <h3 class="inherited">Methods included from <span class='object_link'><a href="../I18n/BaseMethods.html" title="Brut::I18n::BaseMethods (module)">I18n::BaseMethods</a></span></h3>
711
- <p class="inherited"><span class='object_link'><a href="../I18n/BaseMethods.html#l-instance_method" title="Brut::I18n::BaseMethods#l (method)">#l</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#t-instance_method" title="Brut::I18n::BaseMethods#t (method)">#t</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#t_direct-instance_method" title="Brut::I18n::BaseMethods#t_direct (method)">#t_direct</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#this_field_value-instance_method" title="Brut::I18n::BaseMethods#this_field_value (method)">#this_field_value</a></span></p>
712
-
713
-
714
-
715
-
716
-
717
-
718
-
719
-
720
-
721
- <h3 class="inherited">Methods included from <span class='object_link'><a href="ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span></h3>
722
- <p class="inherited"><span class='object_link'><a href="ExecutionResults.html#abort_execution-instance_method" title="Brut::CLI::ExecutionResults#abort_execution (method)">#abort_execution</a></span>, <span class='object_link'><a href="ExecutionResults.html#as_execution_result-instance_method" title="Brut::CLI::ExecutionResults#as_execution_result (method)">#as_execution_result</a></span>, <span class='object_link'><a href="ExecutionResults.html#cli_usage_error-instance_method" title="Brut::CLI::ExecutionResults#cli_usage_error (method)">#cli_usage_error</a></span>, <span class='object_link'><a href="ExecutionResults.html#continue_execution-instance_method" title="Brut::CLI::ExecutionResults#continue_execution (method)">#continue_execution</a></span>, <span class='object_link'><a href="ExecutionResults.html#show_cli_usage-instance_method" title="Brut::CLI::ExecutionResults#show_cli_usage (method)">#show_cli_usage</a></span>, <span class='object_link'><a href="ExecutionResults.html#stop_execution-instance_method" title="Brut::CLI::ExecutionResults#stop_execution (method)">#stop_execution</a></span></p>
723
- <div id="constructor_details" class="method_details_list">
724
- <h2>Constructor Details</h2>
725
-
726
- <div class="method_details first">
727
- <h3 class="signature first" id="initialize-instance_method">
728
-
729
- #<strong>initialize</strong>(command_options:, global_options:, args:, out:, err:, executor:) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::CLI::Command (class)">Command</a></span></tt>
730
-
731
-
732
-
733
-
734
-
735
- </h3><div class="docstring">
736
- <div class="discussion">
737
- <p>Creates the command before executing it. Generally you would not call this directly.</p>
738
-
739
-
740
- </div>
741
- </div>
742
- <div class="tags">
743
- <p class="tag_title">Parameters:</p>
744
- <ul class="param">
745
-
746
- <li>
747
-
748
- <span class='name'>command_options</span>
749
-
750
-
751
- <span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
752
-
753
-
754
-
755
- &mdash;
756
- <div class='inline'><p>the command options parsed from the command line.</p>
757
- </div>
758
-
759
- </li>
760
-
761
- <li>
762
-
763
- <span class='name'>global_options</span>
764
-
765
-
766
- <span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
767
-
768
-
769
-
770
- &mdash;
771
- <div class='inline'><p>the global options parsed from the command line.</p>
772
- </div>
773
-
774
- </li>
775
-
776
- <li>
777
-
778
- <span class='name'>args</span>
779
-
780
-
781
- <span class='type'>(<tt>Array</tt>)</span>
782
-
783
-
784
-
785
- &mdash;
786
- <div class='inline'><p>Any unparsed arguments</p>
787
- </div>
788
-
789
- </li>
790
-
791
- <li>
792
-
793
- <span class='name'>out</span>
794
-
795
-
796
- <span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
797
-
798
-
799
-
800
- &mdash;
801
- <div class='inline'><p>an IO used to send messages to the standard output</p>
802
- </div>
803
-
804
- </li>
805
-
806
- <li>
807
-
808
- <span class='name'>err</span>
809
-
810
-
811
- <span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
812
-
813
-
814
-
815
- &mdash;
816
- <div class='inline'><p>an IO used to send messages to the standard error</p>
817
- </div>
818
-
819
- </li>
820
-
821
- <li>
822
-
823
- <span class='name'>executor</span>
824
-
825
-
826
- <span class='type'>(<tt><span class='object_link'><a href="Executor.html" title="Brut::CLI::Executor (class)">Brut::CLI::Executor</a></span></tt>)</span>
827
-
828
-
829
-
830
- &mdash;
831
- <div class='inline'><p>used to execute child processes instead of e.g. <code>system</code></p>
832
- </div>
833
-
834
- </li>
835
-
836
- </ul>
837
-
838
-
839
- </div><table class="source_code">
840
- <tr>
841
- <td>
842
- <pre class="lines">
843
-
844
-
845
- 139
846
- 140
847
- 141
848
- 142
849
- 143
850
- 144
851
- 145
852
- 146
853
- 147
854
- 148
855
- 149</pre>
856
- </td>
857
- <td>
858
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 139</span>
859
-
860
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>command_options:</span><span class='comma'>,</span><span class='label'>global_options:</span><span class='comma'>,</span> <span class='label'>args:</span><span class='comma'>,</span><span class='label'>out:</span><span class='comma'>,</span><span class='label'>err:</span><span class='comma'>,</span><span class='label'>executor:</span><span class='rparen'>)</span>
861
- <span class='ivar'>@command_options</span> <span class='op'>=</span> <span class='id identifier rubyid_command_options'>command_options</span>
862
- <span class='ivar'>@global_options</span> <span class='op'>=</span> <span class='id identifier rubyid_global_options'>global_options</span>
863
- <span class='ivar'>@args</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span>
864
- <span class='ivar'>@out</span> <span class='op'>=</span> <span class='id identifier rubyid_out'>out</span>
865
- <span class='ivar'>@err</span> <span class='op'>=</span> <span class='id identifier rubyid_err'>err</span>
866
- <span class='ivar'>@executor</span> <span class='op'>=</span> <span class='id identifier rubyid_executor'>executor</span>
867
- <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_default_env'>default_env</span>
868
- <span class='ivar'>@command_options</span><span class='period'>.</span><span class='id identifier rubyid_set_default'>set_default</span><span class='lparen'>(</span><span class='symbol'>:env</span><span class='comma'>,</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_default_env'>default_env</span><span class='rparen'>)</span>
869
- <span class='kw'>end</span>
870
- <span class='kw'>end</span></pre>
871
- </td>
872
- </tr>
873
- </table>
874
- </div>
875
-
876
- </div>
877
-
878
-
879
- <div id="class_method_details" class="method_details_list">
880
- <h2>Class Method Details</h2>
881
-
882
-
883
- <div class="method_details first">
884
- <h3 class="signature first" id="args-class_method">
885
-
886
- .<strong>args</strong>(new_args = nil) &#x21d2; <tt>String the current value (if called with no parameters)</tt>
887
-
888
-
889
-
890
-
891
-
892
- </h3><div class="docstring">
893
- <div class="discussion">
894
- <p>Set a description of the command line args this command accepts. Args are any part of the command line that is not a switch or
895
- flag. The string you give will be used only for documentation. Typically, you would format it in one a few ways:</p>
896
-
897
- <ul>
898
- <li><code>args "some_arg"</code> indicates that exactly one arg called <code>some_arg</code> is required</li>
899
- <li><code>args "[some_arg]"</code> indicates that exactly one arg called <code>some_arg</code> is optional</li>
900
- <li><code>args "args..."</code> indicates that</li>
901
- <li><code>args "[args...]"</code> indicates that zero or more args called <code>args</code> are accepted</li>
902
- </ul>
903
-
904
-
905
-
906
- </div>
907
- </div>
908
- <div class="tags">
909
- <p class="tag_title">Parameters:</p>
910
- <ul class="param">
911
-
912
- <li>
913
-
914
- <span class='name'>new_args</span>
915
-
916
-
917
- <span class='type'>(<tt>String</tt>)</span>
918
-
919
-
920
- <em class="default">(defaults to: <tt>nil</tt>)</em>
921
-
922
-
923
- &mdash;
924
- <div class='inline'><p>documentation for this command's args. If omitted, returns the current value.</p>
925
- </div>
926
-
927
- </li>
928
-
929
- </ul>
930
-
931
- <p class="tag_title">Returns:</p>
932
- <ul class="return">
933
-
934
- <li>
935
-
936
-
937
- <span class='type'>(<tt>String the current value (if called with no parameters)</tt>)</span>
938
-
939
-
940
-
941
- &mdash;
942
- <div class='inline'><p>String the current value (if called with no parameters)</p>
943
- </div>
944
-
945
- </li>
946
-
947
- </ul>
948
-
949
- </div><table class="source_code">
950
- <tr>
951
- <td>
952
- <pre class="lines">
953
-
954
-
955
- 46
956
- 47
957
- 48
958
- 49
959
- 50
960
- 51
961
- 52</pre>
962
- </td>
963
- <td>
964
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 46</span>
965
-
966
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_args'>args</span><span class='lparen'>(</span><span class='id identifier rubyid_new_args'>new_args</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
967
- <span class='kw'>if</span> <span class='id identifier rubyid_new_args'>new_args</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
968
- <span class='kw'>return</span> <span class='ivar'>@args</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
969
- <span class='kw'>else</span>
970
- <span class='ivar'>@args</span> <span class='op'>=</span> <span class='id identifier rubyid_new_args'>new_args</span>
971
- <span class='kw'>end</span>
972
- <span class='kw'>end</span></pre>
973
- </td>
974
- </tr>
975
- </table>
976
- </div>
977
-
978
- <div class="method_details ">
979
- <h3 class="signature " id="command_name-class_method">
980
-
981
- .<strong>command_name</strong> &#x21d2; <tt>Object</tt>
982
-
983
-
984
-
985
-
986
-
987
- </h3><div class="docstring">
988
- <div class="discussion">
989
- <p>Returns the name of this command, for use on the command line. By default, returns the "underscorized" name of this class
990
- (excluding any module namespaces). For exaple, if your command's class is <code>MyApp::CLI::Commands::ClearFiles::DryRun</code>, the command
991
- name would be <code>"dry_run"</code>. You can override this if you want something different. It is recommended that it not include spaces
992
- or other characters meaningful to the shell, but if you like quotes, cool.</p>
993
-
994
-
995
- </div>
996
- </div>
997
- <div class="tags">
998
-
999
-
1000
- </div><table class="source_code">
1001
- <tr>
1002
- <td>
1003
- <pre class="lines">
1004
-
1005
-
1006
- 74</pre>
1007
- </td>
1008
- <td>
1009
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 74</span>
1010
-
1011
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'>underscorized</span></pre>
1012
- </td>
1013
- </tr>
1014
- </table>
1015
- </div>
1016
-
1017
- <div class="method_details ">
1018
- <h3 class="signature " id="default_env-class_method">
1019
-
1020
- .<strong>default_env</strong> &#x21d2; <tt>Object</tt>
1021
-
1022
-
1023
-
1024
-
1025
-
1026
- </h3><div class="docstring">
1027
- <div class="discussion">
1028
- <p>Returns the default project env, based on the logic described in <span class='object_link'><a href="#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span></p>
1029
-
1030
-
1031
- </div>
1032
- </div>
1033
- <div class="tags">
1034
-
1035
-
1036
- </div><table class="source_code">
1037
- <tr>
1038
- <td>
1039
- <pre class="lines">
1040
-
1041
-
1042
- 127
1043
- 128</pre>
1044
- </td>
1045
- <td>
1046
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 127</span>
1047
-
1048
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_default_env'>default_env</span> <span class='op'>=</span> <span class='ivar'>@default_env</span>
1049
- <span class='comment'># Returns true if this app requires a project env</span></pre>
1050
- </td>
1051
- </tr>
1052
- </table>
1053
- </div>
1054
-
1055
- <div class="method_details ">
1056
- <h3 class="signature " id="description-class_method">
1057
-
1058
- .<strong>description</strong>(new_description = nil) &#x21d2; <tt>String</tt>
1059
-
1060
-
1061
-
1062
-
1063
-
1064
- </h3><div class="docstring">
1065
- <div class="discussion">
1066
- <p>Call this to set the one-line description of this command</p>
1067
-
1068
-
1069
- </div>
1070
- </div>
1071
- <div class="tags">
1072
- <p class="tag_title">Parameters:</p>
1073
- <ul class="param">
1074
-
1075
- <li>
1076
-
1077
- <span class='name'>new_description</span>
1078
-
1079
-
1080
- <span class='type'>(<tt>String</tt>)</span>
1081
-
1082
-
1083
- <em class="default">(defaults to: <tt>nil</tt>)</em>
1084
-
1085
-
1086
- &mdash;
1087
- <div class='inline'><p>When present, sets the description of this command. When omitted, returns the current description.</p>
1088
- </div>
1089
-
1090
- </li>
1091
-
1092
- </ul>
1093
-
1094
- <p class="tag_title">Returns:</p>
1095
- <ul class="return">
1096
-
1097
- <li>
1098
-
1099
-
1100
- <span class='type'>(<tt>String</tt>)</span>
1101
-
1102
-
1103
-
1104
- &mdash;
1105
- <div class='inline'><p>the current description (if called with no parameters)</p>
1106
- </div>
1107
-
1108
- </li>
1109
-
1110
- </ul>
1111
-
1112
- </div><table class="source_code">
1113
- <tr>
1114
- <td>
1115
- <pre class="lines">
1116
-
1117
-
1118
- 12
1119
- 13
1120
- 14
1121
- 15
1122
- 16
1123
- 17
1124
- 18</pre>
1125
- </td>
1126
- <td>
1127
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 12</span>
1128
-
1129
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_description'>description</span><span class='lparen'>(</span><span class='id identifier rubyid_new_description'>new_description</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
1130
- <span class='kw'>if</span> <span class='id identifier rubyid_new_description'>new_description</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1131
- <span class='kw'>return</span> <span class='ivar'>@description</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1132
- <span class='kw'>else</span>
1133
- <span class='ivar'>@description</span> <span class='op'>=</span> <span class='id identifier rubyid_new_description'>new_description</span>
1134
- <span class='kw'>end</span>
1135
- <span class='kw'>end</span></pre>
1136
- </td>
1137
- </tr>
1138
- </table>
1139
- </div>
1140
-
1141
- <div class="method_details ">
1142
- <h3 class="signature " id="detailed_description-class_method">
1143
-
1144
- .<strong>detailed_description</strong>(new_description = nil) &#x21d2; <tt>String</tt>
1145
-
1146
-
1147
-
1148
-
1149
-
1150
- </h3><div class="docstring">
1151
- <div class="discussion">
1152
- <p>Call this to set a an additional detailed description of this command. Currently, this should not be formatted and will be shown all on one line. This is shown after the <code>description</code>, so this text can follow from that, without having to restate it.</p>
1153
-
1154
-
1155
- </div>
1156
- </div>
1157
- <div class="tags">
1158
- <p class="tag_title">Parameters:</p>
1159
- <ul class="param">
1160
-
1161
- <li>
1162
-
1163
- <span class='name'>new_description</span>
1164
-
1165
-
1166
- <span class='type'>(<tt>String</tt>)</span>
1167
-
1168
-
1169
- <em class="default">(defaults to: <tt>nil</tt>)</em>
1170
-
1171
-
1172
- &mdash;
1173
- <div class='inline'><p>When present, sets the detailed description of this command. When omitted, returns the current detailed description.</p>
1174
- </div>
1175
-
1176
- </li>
1177
-
1178
- </ul>
1179
-
1180
- <p class="tag_title">Returns:</p>
1181
- <ul class="return">
1182
-
1183
- <li>
1184
-
1185
-
1186
- <span class='type'>(<tt>String</tt>)</span>
1187
-
1188
-
1189
-
1190
- &mdash;
1191
- <div class='inline'><p>the current detailed description (if called with no parameters)</p>
1192
- </div>
1193
-
1194
- </li>
1195
-
1196
- </ul>
1197
-
1198
- </div><table class="source_code">
1199
- <tr>
1200
- <td>
1201
- <pre class="lines">
1202
-
1203
-
1204
- 25
1205
- 26
1206
- 27
1207
- 28
1208
- 29
1209
- 30
1210
- 31
1211
- 32
1212
- 33
1213
- 34</pre>
1214
- </td>
1215
- <td>
1216
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 25</span>
1217
-
1218
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_detailed_description'>detailed_description</span><span class='lparen'>(</span><span class='id identifier rubyid_new_description'>new_description</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
1219
- <span class='kw'>if</span> <span class='id identifier rubyid_new_description'>new_description</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1220
- <span class='kw'>if</span> <span class='ivar'>@detailed_description</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1221
- <span class='kw'>return</span> <span class='ivar'>@detailed_description</span>
1222
- <span class='kw'>end</span>
1223
- <span class='kw'>return</span> <span class='ivar'>@detailed_description</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1224
- <span class='kw'>else</span>
1225
- <span class='ivar'>@detailed_description</span> <span class='op'>=</span> <span class='id identifier rubyid_new_description'>new_description</span>
1226
- <span class='kw'>end</span>
1227
- <span class='kw'>end</span></pre>
1228
- </td>
1229
- </tr>
1230
- </table>
1231
- </div>
1232
-
1233
- <div class="method_details ">
1234
- <h3 class="signature " id="env_var-class_method">
1235
-
1236
- .<strong>env_var</strong>(var_name, purpose:) &#x21d2; <tt>Object</tt>
1237
-
1238
-
1239
-
1240
-
1241
-
1242
- </h3><div class="docstring">
1243
- <div class="discussion">
1244
- <p>Call this for each environment variable this <em>command</em> responds to. These would be variables that affect only this command. For
1245
- app-wide environment variables, see <span class='object_link'><a href="App.html#env_var-class_method" title="Brut::CLI::App.env_var (method)">App.env_var</a></span>.</p>
1246
-
1247
-
1248
- </div>
1249
- </div>
1250
- <div class="tags">
1251
- <p class="tag_title">Parameters:</p>
1252
- <ul class="param">
1253
-
1254
- <li>
1255
-
1256
- <span class='name'>var_name</span>
1257
-
1258
-
1259
- <span class='type'>(<tt>String</tt>)</span>
1260
-
1261
-
1262
-
1263
- &mdash;
1264
- <div class='inline'><p>Declares that this command recognizes this environment variable.</p>
1265
- </div>
1266
-
1267
- </li>
1268
-
1269
- <li>
1270
-
1271
- <span class='name'>purpose</span>
1272
-
1273
-
1274
- <span class='type'>(<tt>String</tt>)</span>
1275
-
1276
-
1277
-
1278
- &mdash;
1279
- <div class='inline'><p>An explanation for how this environment variable affects the command. Used in documentation.</p>
1280
- </div>
1281
-
1282
- </li>
1283
-
1284
- </ul>
1285
-
1286
-
1287
- </div><table class="source_code">
1288
- <tr>
1289
- <td>
1290
- <pre class="lines">
1291
-
1292
-
1293
- 59
1294
- 60
1295
- 61</pre>
1296
- </td>
1297
- <td>
1298
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 59</span>
1299
-
1300
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_env_var'>env_var</span><span class='lparen'>(</span><span class='id identifier rubyid_var_name'>var_name</span><span class='comma'>,</span><span class='label'>purpose:</span><span class='rparen'>)</span>
1301
- <span class='id identifier rubyid_env_vars'>env_vars</span><span class='lbracket'>[</span><span class='id identifier rubyid_var_name'>var_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_purpose'>purpose</span>
1302
- <span class='kw'>end</span></pre>
1303
- </td>
1304
- </tr>
1305
- </table>
1306
- </div>
1307
-
1308
- <div class="method_details ">
1309
- <h3 class="signature " id="name_matches?-class_method">
1310
-
1311
- .<strong>name_matches?</strong>(string) &#x21d2; <tt>true|false</tt>
1312
-
1313
-
1314
-
1315
-
1316
-
1317
- </h3><div class="docstring">
1318
- <div class="discussion">
1319
- <p>Checks if a given string matches this command name. This exists to allow the use of underscores or dashes as delimiters. Ruby
1320
- likes underscores, but the shell vibe is often dashes.</p>
1321
-
1322
-
1323
- </div>
1324
- </div>
1325
- <div class="tags">
1326
- <p class="tag_title">Parameters:</p>
1327
- <ul class="param">
1328
-
1329
- <li>
1330
-
1331
- <span class='name'>string</span>
1332
-
1333
-
1334
- <span class='type'>(<tt>String</tt>)</span>
1335
-
1336
-
1337
-
1338
- &mdash;
1339
- <div class='inline'><p>the command given on the command line</p>
1340
- </div>
1341
-
1342
- </li>
1343
-
1344
- </ul>
1345
-
1346
- <p class="tag_title">Returns:</p>
1347
- <ul class="return">
1348
-
1349
- <li>
1350
-
1351
-
1352
- <span class='type'>(<tt>true|false</tt>)</span>
1353
-
1354
-
1355
-
1356
- &mdash;
1357
- <div class='inline'><p>true if <code>string</code> is considered an exact match for this command's name.</p>
1358
- </div>
1359
-
1360
- </li>
1361
-
1362
- </ul>
1363
-
1364
- </div><table class="source_code">
1365
- <tr>
1366
- <td>
1367
- <pre class="lines">
1368
-
1369
-
1370
- 81
1371
- 82
1372
- 83</pre>
1373
- </td>
1374
- <td>
1375
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 81</span>
1376
-
1377
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name_matches?'>name_matches?</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
1378
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>==</span> <span class='id identifier rubyid_string'>string</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_</span><span class='regexp_end'>/</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>-</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id identifier rubyid_string'>string</span>
1379
- <span class='kw'>end</span></pre>
1380
- </td>
1381
- </tr>
1382
- </table>
1383
- </div>
1384
-
1385
- <div class="method_details ">
1386
- <h3 class="signature " id="option_parser-class_method">
1387
-
1388
- .<strong>option_parser</strong> &#x21d2; <tt>OptionParser</tt>
1389
-
1390
-
1391
-
1392
-
1393
-
1394
- </h3><div class="docstring">
1395
- <div class="discussion">
1396
- <p>Returns the configured <code>OptionParser</code> used to parse the command portion of the command line.
1397
- If you don't want to call <span class='object_link'><a href="#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, you can create and return
1398
- a fully-formed <code>OptionParser</code> by overriding this method. By default, it will create one with a conventional banner.</p>
1399
-
1400
-
1401
- </div>
1402
- </div>
1403
- <div class="tags">
1404
-
1405
- <p class="tag_title">Returns:</p>
1406
- <ul class="return">
1407
-
1408
- <li>
1409
-
1410
-
1411
- <span class='type'>(<tt>OptionParser</tt>)</span>
1412
-
1413
-
1414
-
1415
- </li>
1416
-
1417
- </ul>
1418
-
1419
- </div><table class="source_code">
1420
- <tr>
1421
- <td>
1422
- <pre class="lines">
1423
-
1424
-
1425
- 100
1426
- 101
1427
- 102
1428
- 103
1429
- 104</pre>
1430
- </td>
1431
- <td>
1432
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 100</span>
1433
-
1434
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
1435
- <span class='ivar'>@option_parser</span> <span class='op'>||=</span> <span class='const'>OptionParser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>|</span>
1436
- <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_banner'>banner</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>%{app} %{global_options} </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command_name'>command_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> %{command_options} %{args}</span><span class='tstring_end'>&quot;</span></span>
1437
- <span class='kw'>end</span>
1438
- <span class='kw'>end</span></pre>
1439
- </td>
1440
- </tr>
1441
- </table>
1442
- </div>
1443
-
1444
- <div class="method_details ">
1445
- <h3 class="signature " id="opts-class_method">
1446
-
1447
- .<strong>opts</strong> &#x21d2; <tt>OptionParser</tt>
1448
-
1449
-
1450
-
1451
-
1452
-
1453
- </h3><div class="docstring">
1454
- <div class="discussion">
1455
- <p>Provides access to an <code>OptionParser</code> you can use to declare flags and switches that should be accepted only by this command.
1456
- The way to use this is to call <code>.on</code> and provide a description for an option as you would to <code>OptionParser</code>.
1457
- The only difference is that you should not pass a block to this. When the command line is parsed, the results will be placed
1458
- into a <span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Options</a></span> instance made available to your command.</p>
1459
-
1460
-
1461
- </div>
1462
- </div>
1463
- <div class="tags">
1464
-
1465
- <p class="tag_title">Returns:</p>
1466
- <ul class="return">
1467
-
1468
- <li>
1469
-
1470
-
1471
- <span class='type'>(<tt>OptionParser</tt>)</span>
1472
-
1473
-
1474
-
1475
- </li>
1476
-
1477
- </ul>
1478
-
1479
- </div><table class="source_code">
1480
- <tr>
1481
- <td>
1482
- <pre class="lines">
1483
-
1484
-
1485
- 91
1486
- 92
1487
- 93</pre>
1488
- </td>
1489
- <td>
1490
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 91</span>
1491
-
1492
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_opts'>opts</span>
1493
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
1494
- <span class='kw'>end</span></pre>
1495
- </td>
1496
- </tr>
1497
- </table>
1498
- </div>
1499
-
1500
- <div class="method_details ">
1501
- <h3 class="signature " id="requires_project_env-class_method">
1502
-
1503
- .<strong>requires_project_env</strong>(default: &quot;development&quot;) &#x21d2; <tt>Object</tt>
1504
-
1505
-
1506
-
1507
-
1508
-
1509
- </h3><div class="docstring">
1510
- <div class="discussion">
1511
- <p>Call this if this command requires a project environment as context for what it does. When called, this will do a few things:</p>
1512
-
1513
- <ul>
1514
- <li>Your command (not app) will recognize <code>--env=ENVIRONMENT</code> as a global option</li>
1515
- <li>Your command will document that it recognizes the <code>RACK_ENV</code> environment variable.</li>
1516
- </ul>
1517
-
1518
-
1519
-
1520
- </div>
1521
- </div>
1522
- <div class="tags">
1523
- <p class="tag_title">Parameters:</p>
1524
- <ul class="param">
1525
-
1526
- <li>
1527
-
1528
- <span class='name'>default</span>
1529
-
1530
-
1531
- <span class='type'>(<tt>String</tt>)</span>
1532
-
1533
-
1534
- <em class="default">(defaults to: <tt>&quot;development&quot;</tt>)</em>
1535
-
1536
-
1537
- &mdash;
1538
- <div class='inline'><p>name of the environment to use if none was specified. <code>nil</code> should be used to require the environment to be specified explicitly.</p>
1539
- </div>
1540
-
1541
- </li>
1542
-
1543
- </ul>
1544
-
1545
-
1546
- <p class="tag_title">See Also:</p>
1547
- <ul class="see">
1548
-
1549
- <li><span class='object_link'><a href="App.html#requires_project_env-class_method" title="Brut::CLI::App.requires_project_env (method)">App.requires_project_env</a></span></li>
1550
-
1551
- </ul>
1552
-
1553
- </div><table class="source_code">
1554
- <tr>
1555
- <td>
1556
- <pre class="lines">
1557
-
1558
-
1559
- 114
1560
- 115
1561
- 116
1562
- 117
1563
- 118
1564
- 119
1565
- 120
1566
- 121
1567
- 122
1568
- 123
1569
- 124</pre>
1570
- </td>
1571
- <td>
1572
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 114</span>
1573
-
1574
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_requires_project_env'>requires_project_env</span><span class='lparen'>(</span><span class='label'>default:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>development</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1575
- <span class='id identifier rubyid_default_message'>default_message</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_default'>default</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1576
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1577
- <span class='kw'>else</span>
1578
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> (default &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_default'>default</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;)</span><span class='tstring_end'>&quot;</span></span>
1579
- <span class='kw'>end</span>
1580
- <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--env=ENVIRONMENT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Project environment</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_default_message'>default_message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1581
- <span class='ivar'>@default_env</span> <span class='op'>=</span> <span class='id identifier rubyid_default'>default</span>
1582
- <span class='ivar'>@requires_project_env</span> <span class='op'>=</span> <span class='kw'>true</span>
1583
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_env_var'>env_var</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RACK_ENV</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>default project environment when --env is omitted</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1584
- <span class='kw'>end</span></pre>
1585
- </td>
1586
- </tr>
1587
- </table>
1588
- </div>
1589
-
1590
- <div class="method_details ">
1591
- <h3 class="signature " id="requires_project_env?-class_method">
1592
-
1593
- .<strong>requires_project_env?</strong> &#x21d2; <tt>Boolean</tt>
1594
-
1595
-
1596
-
1597
-
1598
-
1599
- </h3><div class="docstring">
1600
- <div class="discussion">
1601
- <p>Returns true if this app requires a project env</p>
1602
-
1603
-
1604
- </div>
1605
- </div>
1606
- <div class="tags">
1607
-
1608
- <p class="tag_title">Returns:</p>
1609
- <ul class="return">
1610
-
1611
- <li>
1612
-
1613
-
1614
- <span class='type'>(<tt>Boolean</tt>)</span>
1615
-
1616
-
1617
-
1618
- </li>
1619
-
1620
- </ul>
1621
-
1622
- </div><table class="source_code">
1623
- <tr>
1624
- <td>
1625
- <pre class="lines">
1626
-
1627
-
1628
- 129</pre>
1629
- </td>
1630
- <td>
1631
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 129</span>
1632
-
1633
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_requires_project_env?'>requires_project_env?</span> <span class='op'>=</span> <span class='ivar'>@requires_project_env</span></pre>
1634
- </td>
1635
- </tr>
1636
- </table>
1637
- </div>
1638
-
1639
- </div>
1640
-
1641
- <div id="instance_method_details" class="method_details_list">
1642
- <h2>Instance Method Details</h2>
1643
-
1644
-
1645
- <div class="method_details first">
1646
- <h3 class="signature first" id="after_bootstrap-instance_method">
1647
-
1648
- #<strong>after_bootstrap</strong>(app:) &#x21d2; <tt>Object</tt>
1649
-
1650
-
1651
-
1652
-
1653
-
1654
- </h3><div class="docstring">
1655
- <div class="discussion">
1656
- <p>Called after all setup has been executed. Brut will have been started/loaded.
1657
- This will <em>not</em> be called if anything caused execution to be aborted.</p>
1658
-
1659
-
1660
- </div>
1661
- </div>
1662
- <div class="tags">
1663
- <p class="tag_title">Parameters:</p>
1664
- <ul class="param">
1665
-
1666
- <li>
1667
-
1668
- <span class='name'>app</span>
1669
-
1670
-
1671
- <span class='type'>(<tt><span class='object_link'><a href="../Framework/App.html" title="Brut::Framework::App (class)">Brut::Framework::App</a></span></tt>)</span>
1672
-
1673
-
1674
-
1675
- &mdash;
1676
- <div class='inline'><p>Your Brut app.</p>
1677
- </div>
1678
-
1679
- </li>
1680
-
1681
- </ul>
1682
-
1683
-
1684
- </div><table class="source_code">
1685
- <tr>
1686
- <td>
1687
- <pre class="lines">
1688
-
1689
-
1690
- 204
1691
- 205</pre>
1692
- </td>
1693
- <td>
1694
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 204</span>
1695
-
1696
- <span class='kw'>def</span> <span class='id identifier rubyid_after_bootstrap'>after_bootstrap</span><span class='lparen'>(</span><span class='label'>app:</span><span class='rparen'>)</span>
1697
- <span class='kw'>end</span></pre>
1698
- </td>
1699
- </tr>
1700
- </table>
1701
- </div>
1702
-
1703
- <div class="method_details ">
1704
- <h3 class="signature " id="args-instance_method">
1705
-
1706
- #<strong>args</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
1707
-
1708
-
1709
-
1710
-
1711
-
1712
- </h3><div class="docstring">
1713
- <div class="discussion">
1714
- <p>Returns the arguments parsed from the command line.</p>
1715
-
1716
-
1717
- </div>
1718
- </div>
1719
- <div class="tags">
1720
-
1721
- <p class="tag_title">Returns:</p>
1722
- <ul class="return">
1723
-
1724
- <li>
1725
-
1726
-
1727
- <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1728
-
1729
-
1730
-
1731
- &mdash;
1732
- <div class='inline'><p>the arguments parsed from the command line</p>
1733
- </div>
1734
-
1735
- </li>
1736
-
1737
- </ul>
1738
-
1739
- </div><table class="source_code">
1740
- <tr>
1741
- <td>
1742
- <pre class="lines">
1743
-
1744
-
1745
- 238
1746
- 239
1747
- 240</pre>
1748
- </td>
1749
- <td>
1750
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 238</span>
1751
-
1752
- <span class='kw'>def</span> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='ivar'>@args</span>
1753
- <span class='comment'># @!visibility public
1754
- </span><span class='comment'># @return [Brut::CLI::Output] IO to use for sending messages to the standard output</span></pre>
1755
- </td>
1756
- </tr>
1757
- </table>
1758
- </div>
1759
-
1760
- <div class="method_details ">
1761
- <h3 class="signature " id="before_execute-instance_method">
1762
-
1763
- #<strong>before_execute</strong> &#x21d2; <tt>Object</tt>
1764
-
1765
-
1766
-
1767
-
1768
-
1769
- </h3><div class="docstring">
1770
- <div class="discussion">
1771
- <p>Called before any execution or bootstrapping happens but after <span class='object_link'><a href="App.html#before_execute-instance_method" title="Brut::CLI::App#before_execute (method)">App#before_execute</a></span> is called. This will have access
1772
- to everything <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> can access.</p>
1773
-
1774
-
1775
- </div>
1776
- </div>
1777
- <div class="tags">
1778
-
1779
- <p class="tag_title">Raises:</p>
1780
- <ul class="raise">
1781
-
1782
- <li>
1783
-
1784
-
1785
- <span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
1786
-
1787
-
1788
-
1789
- &mdash;
1790
- <div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span> and execution will be aborted.</p>
1791
- </div>
1792
-
1793
- </li>
1794
-
1795
- <li>
1796
-
1797
-
1798
- <span class='type'>(<tt>StandardError</tt>)</span>
1799
-
1800
-
1801
-
1802
- &mdash;
1803
- <div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
1804
- </div>
1805
-
1806
- </li>
1807
-
1808
- </ul>
1809
-
1810
- </div><table class="source_code">
1811
- <tr>
1812
- <td>
1813
- <pre class="lines">
1814
-
1815
-
1816
- 197
1817
- 198</pre>
1818
- </td>
1819
- <td>
1820
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 197</span>
1821
-
1822
- <span class='kw'>def</span> <span class='id identifier rubyid_before_execute'>before_execute</span>
1823
- <span class='kw'>end</span></pre>
1824
- </td>
1825
- </tr>
1826
- </table>
1827
- </div>
1828
-
1829
- <div class="method_details ">
1830
- <h3 class="signature " id="delegate_to_commands-instance_method">
1831
-
1832
- #<strong>delegate_to_commands</strong>(*command_klasses) &#x21d2; <tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>
1833
-
1834
-
1835
-
1836
-
1837
-
1838
- </h3><div class="docstring">
1839
- <div class="discussion">
1840
- <p>Use this inside <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to createa compound command that executes other commands that are a part of your CLI app.
1841
- Note that each command will be given the same global and commmand options and the same arguments, so these commands must be able
1842
- to complete as desired in that way.</p>
1843
-
1844
- <p>Note that since commands are just classes, you can certianly create them however you like and call <code>execute</code> yourself.</p>
1845
-
1846
- <p>result of the last class executed.</p>
1847
-
1848
-
1849
- </div>
1850
- </div>
1851
- <div class="tags">
1852
- <p class="tag_title">Parameters:</p>
1853
- <ul class="param">
1854
-
1855
- <li>
1856
-
1857
- <span class='name'>command_klasses</span>
1858
-
1859
-
1860
- <span class='type'>(<tt>Enumerable&lt;Class&gt;</tt>)</span>
1861
-
1862
-
1863
-
1864
- &mdash;
1865
- <div class='inline'><p>one or more classes that subclass <span class='object_link'><a href="" title="Brut::CLI::Command (class)">Brut::CLI::Command</a></span> to delegate to.</p>
1866
- </div>
1867
-
1868
- </li>
1869
-
1870
- </ul>
1871
-
1872
- <p class="tag_title">Returns:</p>
1873
- <ul class="return">
1874
-
1875
- <li>
1876
-
1877
-
1878
- <span class='type'>(<tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>)</span>
1879
-
1880
-
1881
-
1882
- &mdash;
1883
- <div class='inline'><p>the first non successful result is returned and processing is stopped, otherwise returns the</p>
1884
- </div>
1885
-
1886
- </li>
1887
-
1888
- </ul>
1889
-
1890
- </div><table class="source_code">
1891
- <tr>
1892
- <td>
1893
- <pre class="lines">
1894
-
1895
-
1896
- 165
1897
- 166
1898
- 167
1899
- 168
1900
- 169
1901
- 170
1902
- 171
1903
- 172
1904
- 173
1905
- 174
1906
- 175</pre>
1907
- </td>
1908
- <td>
1909
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 165</span>
1910
-
1911
- <span class='kw'>def</span> <span class='id identifier rubyid_delegate_to_commands'>delegate_to_commands</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_command_klasses'>command_klasses</span><span class='rparen'>)</span>
1912
- <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='kw'>nil</span>
1913
- <span class='id identifier rubyid_command_klasses'>command_klasses</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='op'>|</span>
1914
- <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_delegate_to_command'>delegate_to_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='rparen'>)</span>
1915
- <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_ok?'>ok?</span>
1916
- <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed</span><span class='tstring_end'>&quot;</span></span>
1917
- <span class='kw'>return</span> <span class='id identifier rubyid_result'>result</span>
1918
- <span class='kw'>end</span>
1919
- <span class='kw'>end</span>
1920
- <span class='id identifier rubyid_result'>result</span>
1921
- <span class='kw'>end</span></pre>
1922
- </td>
1923
- </tr>
1924
- </table>
1925
- </div>
1926
-
1927
- <div class="method_details ">
1928
- <h3 class="signature " id="err-instance_method">
1929
-
1930
- #<strong>err</strong> &#x21d2; <tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>
1931
-
1932
-
1933
-
1934
-
1935
-
1936
- </h3><div class="docstring">
1937
- <div class="discussion">
1938
- <p>Returns IO to use for sending messages to the standard error.</p>
1939
-
1940
-
1941
- </div>
1942
- </div>
1943
- <div class="tags">
1944
-
1945
- <p class="tag_title">Returns:</p>
1946
- <ul class="return">
1947
-
1948
- <li>
1949
-
1950
-
1951
- <span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
1952
-
1953
-
1954
-
1955
- &mdash;
1956
- <div class='inline'><p>IO to use for sending messages to the standard error</p>
1957
- </div>
1958
-
1959
- </li>
1960
-
1961
- </ul>
1962
-
1963
- </div><table class="source_code">
1964
- <tr>
1965
- <td>
1966
- <pre class="lines">
1967
-
1968
-
1969
- 244</pre>
1970
- </td>
1971
- <td>
1972
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 244</span>
1973
-
1974
- <span class='kw'>def</span> <span class='id identifier rubyid_err'>err</span> <span class='op'>=</span> <span class='ivar'>@err</span></pre>
1975
- </td>
1976
- </tr>
1977
- </table>
1978
- </div>
1979
-
1980
- <div class="method_details ">
1981
- <h3 class="signature " id="execute-instance_method">
1982
-
1983
- #<strong>execute</strong> &#x21d2; <tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>
1984
-
1985
-
1986
-
1987
-
1988
-
1989
- </h3><div class="docstring">
1990
- <div class="discussion">
1991
- <p>You must implement this to perform whatever action your command needs to perform. In order to do this, you will have access to:</p>
1992
-
1993
- <ul>
1994
- <li><span class='object_link'><a href="#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span> - the command options passed on the command line</li>
1995
- <li><span class='object_link'><a href="#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span> - the global options passed on the command line</li>
1996
- <li><span class='object_link'><a href="#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span> - the args passed on the command line</li>
1997
- <li><span class='object_link'><a href="#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span> - an IO you should use to print messages to the standard out.</li>
1998
- <li><span class='object_link'><a href="#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span> - on IO you should use to print messages to the standard error.</li>
1999
- <li><span class='object_link'><a href="#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span> - the method you should use to spawn child processes.</li>
2000
- </ul>
2001
-
2002
-
2003
-
2004
- </div>
2005
- </div>
2006
- <div class="tags">
2007
-
2008
- <p class="tag_title">Returns:</p>
2009
- <ul class="return">
2010
-
2011
- <li>
2012
-
2013
-
2014
- <span class='type'>(<tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>)</span>
2015
-
2016
-
2017
-
2018
- &mdash;
2019
- <div class='inline'><p>a description of what happened during processing. It is preferable to try to return something instead of raising an exception.</p>
2020
- </div>
2021
-
2022
- </li>
2023
-
2024
- </ul>
2025
- <p class="tag_title">Raises:</p>
2026
- <ul class="raise">
2027
-
2028
- <li>
2029
-
2030
-
2031
- <span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
2032
-
2033
-
2034
-
2035
- &mdash;
2036
- <div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span>.</p>
2037
- </div>
2038
-
2039
- </li>
2040
-
2041
- <li>
2042
-
2043
-
2044
- <span class='type'>(<tt>StandardError</tt>)</span>
2045
-
2046
-
2047
-
2048
- &mdash;
2049
- <div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
2050
- </div>
2051
-
2052
- </li>
2053
-
2054
- </ul>
2055
-
2056
- </div><table class="source_code">
2057
- <tr>
2058
- <td>
2059
- <pre class="lines">
2060
-
2061
-
2062
- 189
2063
- 190
2064
- 191</pre>
2065
- </td>
2066
- <td>
2067
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 189</span>
2068
-
2069
- <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span>
2070
- <span class='id identifier rubyid_abstract_method!'>abstract_method!</span>
2071
- <span class='kw'>end</span></pre>
2072
- </td>
2073
- </tr>
2074
- </table>
2075
- </div>
2076
-
2077
- <div class="method_details ">
2078
- <h3 class="signature " id="global_options-instance_method">
2079
-
2080
- #<strong>global_options</strong> &#x21d2; <tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>
2081
-
2082
-
2083
-
2084
-
2085
-
2086
- </h3><div class="docstring">
2087
- <div class="discussion">
2088
- <p>Returns the global options parsed on the command line.</p>
2089
-
2090
-
2091
- </div>
2092
- </div>
2093
- <div class="tags">
2094
-
2095
- <p class="tag_title">Returns:</p>
2096
- <ul class="return">
2097
-
2098
- <li>
2099
-
2100
-
2101
- <span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
2102
-
2103
-
2104
-
2105
- &mdash;
2106
- <div class='inline'><p>the global options parsed on the command line</p>
2107
- </div>
2108
-
2109
- </li>
2110
-
2111
- </ul>
2112
-
2113
- </div><table class="source_code">
2114
- <tr>
2115
- <td>
2116
- <pre class="lines">
2117
-
2118
-
2119
- 235
2120
- 236
2121
- 237</pre>
2122
- </td>
2123
- <td>
2124
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 235</span>
2125
-
2126
- <span class='kw'>def</span> <span class='id identifier rubyid_global_options'>global_options</span> <span class='op'>=</span> <span class='ivar'>@global_options</span>
2127
- <span class='comment'># @!visibility public
2128
- </span><span class='comment'># @return [Array&lt;String&gt;] the arguments parsed from the command line</span></pre>
2129
- </td>
2130
- </tr>
2131
- </table>
2132
- </div>
2133
-
2134
- <div class="method_details ">
2135
- <h3 class="signature " id="handle_bootstrap_exception-instance_method">
2136
-
2137
- #<strong>handle_bootstrap_exception</strong>(ex) &#x21d2; <tt>void</tt>
2138
-
2139
-
2140
-
2141
-
2142
-
2143
- </h3><div class="docstring">
2144
- <div class="discussion">
2145
- <p class="note returns_void">This method returns an undefined value.</p><p>Called if there is an exception during bootstrapping. By default, it re-raises the exception, which cases the command to abort.
2146
- The reason you may want to overrid this is that your command line app may exist to handle a bootstrapping exception. For example,
2147
- the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::Apps::DB (class)">Apps::DB</a></span> app will catch various database connection errors and then create or migrate the database.</p>
2148
-
2149
- <p>Yes, I realize this means we are using exceptions for control flow. It's fine.</p>
2150
-
2151
-
2152
- </div>
2153
- </div>
2154
- <div class="tags">
2155
- <p class="tag_title">Parameters:</p>
2156
- <ul class="param">
2157
-
2158
- <li>
2159
-
2160
- <span class='name'>ex</span>
2161
-
2162
-
2163
- <span class='type'>(<tt>StandardError</tt>)</span>
2164
-
2165
-
2166
-
2167
- &mdash;
2168
- <div class='inline'><p>whichever exception was caught during bootstrapping</p>
2169
- </div>
2170
-
2171
- </li>
2172
-
2173
- </ul>
2174
-
2175
- <p class="tag_title">Raises:</p>
2176
- <ul class="raise">
2177
-
2178
- <li>
2179
-
2180
-
2181
- <span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
2182
-
2183
-
2184
-
2185
- &mdash;
2186
- <div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span> and execution will be aborted.</p>
2187
- </div>
2188
-
2189
- </li>
2190
-
2191
- <li>
2192
-
2193
-
2194
- <span class='type'>(<tt>StandardError</tt>)</span>
2195
-
2196
-
2197
-
2198
- &mdash;
2199
- <div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
2200
- </div>
2201
-
2202
- </li>
2203
-
2204
- </ul>
2205
-
2206
- </div><table class="source_code">
2207
- <tr>
2208
- <td>
2209
- <pre class="lines">
2210
-
2211
-
2212
- 224
2213
- 225
2214
- 226</pre>
2215
- </td>
2216
- <td>
2217
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 224</span>
2218
-
2219
- <span class='kw'>def</span> <span class='id identifier rubyid_handle_bootstrap_exception'>handle_bootstrap_exception</span><span class='lparen'>(</span><span class='id identifier rubyid_ex'>ex</span><span class='rparen'>)</span>
2220
- <span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_ex'>ex</span>
2221
- <span class='kw'>end</span></pre>
2222
- </td>
2223
- </tr>
2224
- </table>
2225
- </div>
2226
-
2227
- <div class="method_details ">
2228
- <h3 class="signature " id="options-instance_method">
2229
-
2230
- #<strong>options</strong> &#x21d2; <tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>
2231
-
2232
-
2233
-
2234
-
2235
-
2236
- </h3><div class="docstring">
2237
- <div class="discussion">
2238
- <p>Returns the command options parsed on the command line.</p>
2239
-
2240
-
2241
- </div>
2242
- </div>
2243
- <div class="tags">
2244
-
2245
- <p class="tag_title">Returns:</p>
2246
- <ul class="return">
2247
-
2248
- <li>
2249
-
2250
-
2251
- <span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
2252
-
2253
-
2254
-
2255
- &mdash;
2256
- <div class='inline'><p>the command options parsed on the command line</p>
2257
- </div>
2258
-
2259
- </li>
2260
-
2261
- </ul>
2262
-
2263
- </div><table class="source_code">
2264
- <tr>
2265
- <td>
2266
- <pre class="lines">
2267
-
2268
-
2269
- 232
2270
- 233
2271
- 234</pre>
2272
- </td>
2273
- <td>
2274
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 232</span>
2275
-
2276
- <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command_options</span>
2277
- <span class='comment'># @!visibility public
2278
- </span><span class='comment'># @return [Brut::CLI::Options] the global options parsed on the command line</span></pre>
2279
- </td>
2280
- </tr>
2281
- </table>
2282
- </div>
2283
-
2284
- <div class="method_details ">
2285
- <h3 class="signature " id="out-instance_method">
2286
-
2287
- #<strong>out</strong> &#x21d2; <tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>
2288
-
2289
-
2290
-
2291
-
2292
-
2293
- </h3><div class="docstring">
2294
- <div class="discussion">
2295
- <p>Returns IO to use for sending messages to the standard output.</p>
2296
-
2297
-
2298
- </div>
2299
- </div>
2300
- <div class="tags">
2301
-
2302
- <p class="tag_title">Returns:</p>
2303
- <ul class="return">
2304
-
2305
- <li>
2306
-
2307
-
2308
- <span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
2309
-
2310
-
2311
-
2312
- &mdash;
2313
- <div class='inline'><p>IO to use for sending messages to the standard output</p>
2314
- </div>
2315
-
2316
- </li>
2317
-
2318
- </ul>
2319
-
2320
- </div><table class="source_code">
2321
- <tr>
2322
- <td>
2323
- <pre class="lines">
2324
-
2325
-
2326
- 241
2327
- 242
2328
- 243</pre>
2329
- </td>
2330
- <td>
2331
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 241</span>
2332
-
2333
- <span class='kw'>def</span> <span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='ivar'>@out</span>
2334
- <span class='comment'># @!visibility public
2335
- </span><span class='comment'># @return [Brut::CLI::Output] IO to use for sending messages to the standard error</span></pre>
2336
- </td>
2337
- </tr>
2338
- </table>
2339
- </div>
2340
-
2341
- <div class="method_details ">
2342
- <h3 class="signature " id="system!-instance_method">
2343
-
2344
- #<strong>system!</strong>(*args) &#x21d2; <tt>int</tt>
2345
-
2346
-
2347
-
2348
-
2349
-
2350
- </h3><div class="docstring">
2351
- <div class="discussion">
2352
- <p>Convienince method to call <span class='object_link'><a href="Executor.html#system!-instance_method" title="Brut::CLI::Executor#system! (method)">Executor#system!</a></span> on the executor given in the constructor.</p>
2353
-
2354
-
2355
- </div>
2356
- </div>
2357
- <div class="tags">
2358
- <p class="tag_title">Parameters:</p>
2359
- <ul class="param">
2360
-
2361
- <li>
2362
-
2363
- <span class='name'>args</span>
2364
-
2365
-
2366
- <span class='type'>(<tt>String|Array</tt>)</span>
2367
-
2368
-
2369
-
2370
- &mdash;
2371
- <div class='inline'><p>Whatever you would give to <code>Kernel#system</code> or <code>Open3.popen3</code>.</p>
2372
- </div>
2373
-
2374
- </li>
2375
-
2376
- </ul>
2377
-
2378
- <p class="tag_title">Returns:</p>
2379
- <ul class="return">
2380
-
2381
- <li>
2382
-
2383
-
2384
- <span class='type'>(<tt>int</tt>)</span>
2385
-
2386
-
2387
-
2388
- &mdash;
2389
- <div class='inline'><p>Always returns 0</p>
2390
- </div>
2391
-
2392
- </li>
2393
-
2394
- </ul>
2395
-
2396
- </div><table class="source_code">
2397
- <tr>
2398
- <td>
2399
- <pre class="lines">
2400
-
2401
-
2402
- 154</pre>
2403
- </td>
2404
- <td>
2405
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 154</span>
2406
-
2407
- <span class='kw'>def</span> <span class='id identifier rubyid_system!'>system!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='ivar'>@executor</span><span class='period'>.</span><span class='id identifier rubyid_system!'>system!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span></pre>
2408
- </td>
2409
- </tr>
2410
- </table>
2411
- </div>
2412
-
2413
- </div>
2414
-
2415
- </div>
2416
-
2417
- <div id="footer">
2418
- Generated on Mon Sep 29 18:39:06 2025 by
2419
- <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2420
- 0.9.37 (ruby-3.4.6).
2421
- </div>
2422
-
2423
- </div>
2424
- </body>
2425
- </html>