brut 0.0.26 → 0.0.28

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 (386) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/brutrb.com/.vitepress/config.mjs +2 -0
  4. data/brutrb.com/ai.md +6 -1
  5. data/brutrb.com/components.md +1 -1
  6. data/brutrb.com/dev-environment.md +6 -5
  7. data/brutrb.com/doc-conventions.md +1 -1
  8. data/brutrb.com/forms.md +22 -26
  9. data/brutrb.com/getting-started.md +94 -23
  10. data/brutrb.com/instrumentation.md +12 -0
  11. data/brutrb.com/layouts.md +130 -0
  12. data/brutrb.com/lsp.md +23 -0
  13. data/docs/404.html +2 -2
  14. data/docs/ai.html +5 -5
  15. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  16. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  17. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  18. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  19. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  20. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  21. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  22. data/docs/api/Brut/BackEnd.html +1 -1
  23. data/docs/api/Brut/CLI/App.html +38 -13
  24. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  25. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
  26. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +2 -2
  27. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
  29. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/DB/Create.html +2 -2
  31. data/docs/api/Brut/CLI/Apps/DB/Drop.html +2 -2
  32. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +9 -3
  33. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +11 -11
  34. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +2 -2
  35. data/docs/api/Brut/CLI/Apps/DB/Seed.html +2 -2
  36. data/docs/api/Brut/CLI/Apps/DB/Status.html +12 -12
  37. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +270 -0
  39. data/docs/api/Brut/CLI/Apps/DeployBase.html +257 -0
  40. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +585 -0
  41. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +196 -0
  42. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +2 -2
  44. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +2 -2
  45. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +2 -2
  46. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
  48. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  50. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
  52. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Test/Audit.html +12 -10
  54. data/docs/api/Brut/CLI/Apps/Test/E2e.html +8 -8
  55. data/docs/api/Brut/CLI/Apps/Test/JS.html +9 -9
  56. data/docs/api/Brut/CLI/Apps/Test/Run.html +18 -18
  57. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  58. data/docs/api/Brut/CLI/Apps.html +2 -2
  59. data/docs/api/Brut/CLI/Command.html +113 -28
  60. data/docs/api/Brut/CLI/Error.html +1 -1
  61. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  62. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  63. data/docs/api/Brut/CLI/Executor.html +169 -38
  64. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  65. data/docs/api/Brut/CLI/Options.html +68 -19
  66. data/docs/api/Brut/CLI/Output.html +1 -1
  67. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  68. data/docs/api/Brut/CLI.html +1 -1
  69. data/docs/api/Brut/FactoryBot.html +1 -1
  70. data/docs/api/Brut/Framework/App.html +1 -1
  71. data/docs/api/Brut/Framework/Config.html +1 -1
  72. data/docs/api/Brut/Framework/Container.html +110 -29
  73. data/docs/api/Brut/Framework/Error.html +1 -1
  74. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +89 -1
  75. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  76. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  77. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  81. data/docs/api/Brut/Framework/Errors.html +31 -8
  82. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  83. data/docs/api/Brut/Framework/MCP.html +1 -1
  84. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  85. data/docs/api/Brut/Framework.html +1 -1
  86. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  87. data/docs/api/Brut/FrontEnd/Component/Helpers.html +36 -26
  88. data/docs/api/Brut/FrontEnd/Component.html +7 -7
  89. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Components/FormTag.html +37 -29
  91. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +20 -117
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +25 -23
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +73 -380
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +22 -138
  98. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components.html +23 -2
  104. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +24 -68
  108. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +4 -4
  110. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +72 -22
  116. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  117. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  126. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  127. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  128. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  129. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  132. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +6 -2
  136. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  140. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  141. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  142. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  143. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  144. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  145. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  146. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  147. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  148. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  155. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  156. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  159. data/docs/api/Brut/FrontEnd.html +1 -1
  160. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  161. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  162. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  163. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  164. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  165. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  166. data/docs/api/Brut/I18n.html +1 -1
  167. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  168. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  169. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  170. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  171. data/docs/api/Brut/Instrumentation.html +1 -1
  172. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  173. data/docs/api/Brut/SinatraHelpers.html +1 -1
  174. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  175. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  176. data/docs/api/Brut/SpecSupport/E2ETestServer.html +20 -20
  177. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  178. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  179. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  180. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  181. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  182. data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
  183. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +142 -0
  184. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +142 -0
  185. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +155 -0
  186. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +55 -25
  187. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +149 -0
  188. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +46 -19
  189. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +149 -0
  190. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +149 -0
  191. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +165 -0
  192. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +158 -0
  193. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +156 -0
  194. data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
  195. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +24 -24
  196. data/docs/api/Brut/SpecSupport/RSpecSetup.html +55 -20
  197. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  198. data/docs/api/Brut/SpecSupport.html +1 -1
  199. data/docs/api/Brut.html +1 -1
  200. data/docs/api/Clock.html +1 -1
  201. data/docs/api/RichString.html +1 -1
  202. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  203. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +5 -1
  204. data/docs/api/Sequel/Extensions/BrutMigrations.html +36 -28
  205. data/docs/api/Sequel/Extensions.html +1 -1
  206. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  207. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  208. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  209. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  210. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  211. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  212. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  213. data/docs/api/Sequel/Plugins.html +1 -1
  214. data/docs/api/Sequel.html +1 -1
  215. data/docs/api/SpecSupport/Matchers/BeABug.html +143 -0
  216. data/docs/api/_index.html +92 -1
  217. data/docs/api/class_list.html +1 -1
  218. data/docs/api/file.README.html +1 -1
  219. data/docs/api/index.html +1 -1
  220. data/docs/api/method_list.html +392 -336
  221. data/docs/api/top-level-namespace.html +1 -1
  222. data/docs/assets/{ai.md.tZrjP9im.js → ai.md._6HCDL6d.js} +1 -1
  223. data/docs/assets/ai.md._6HCDL6d.lean.js +1 -0
  224. data/docs/assets/{app.D_yaTITQ.js → app.BX81XO4N.js} +1 -1
  225. data/docs/assets/chunks/@localSearchIndexroot.CoYzciVi.js +1 -0
  226. data/docs/assets/chunks/{VPLocalSearchBox.B2-ZzyTY.js → VPLocalSearchBox.gABXcTWp.js} +1 -1
  227. data/docs/assets/chunks/{theme.CfGFVRvE.js → theme.DwUXXAL3.js} +2 -2
  228. data/docs/assets/{components.md.eCttGlN-.js → components.md.CRUMdRoN.js} +1 -1
  229. data/docs/assets/{configuration.md.BRriU0cL.js → configuration.md.BGHl8oRC.js} +1 -1
  230. data/docs/assets/{dev-environment.md.BNc8AYiK.js → dev-environment.md.GZv6xvi9.js} +1 -1
  231. data/docs/assets/doc-conventions.md.-kN3Xo5C.js +1 -0
  232. data/docs/assets/{doc-conventions.md.DCfRXXi-.lean.js → doc-conventions.md.-kN3Xo5C.lean.js} +1 -1
  233. data/docs/assets/{forms.md.CBTYQ_Cz.js → forms.md.B-koVgyw.js} +23 -23
  234. data/docs/assets/{forms.md.CBTYQ_Cz.lean.js → forms.md.B-koVgyw.lean.js} +1 -1
  235. data/docs/assets/getting-started.md.Ciz82L0m.js +25 -0
  236. data/docs/assets/getting-started.md.Ciz82L0m.lean.js +1 -0
  237. data/docs/assets/{instrumentation.md.CL6ax7nT.js → instrumentation.md.a9Pjps4P.js} +2 -2
  238. data/docs/assets/{instrumentation.md.CL6ax7nT.lean.js → instrumentation.md.a9Pjps4P.lean.js} +1 -1
  239. data/docs/assets/layouts.md.cPnh3NId.js +51 -0
  240. data/docs/assets/layouts.md.cPnh3NId.lean.js +1 -0
  241. data/docs/assets/lsp.md.Bsu-f6VU.js +1 -0
  242. data/docs/assets/lsp.md.Bsu-f6VU.lean.js +1 -0
  243. data/docs/assets/{overview.md.CDalkuxV.js → overview.md.C5wlBcR5.js} +3 -3
  244. data/docs/assets/recipes_authentication.md.CAsXf7hk.js +1 -0
  245. data/docs/assets/recipes_authentication.md.CAsXf7hk.lean.js +1 -0
  246. data/docs/assets.html +4 -4
  247. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  248. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  249. data/docs/brut-js/api/Autosubmit.html +1 -1
  250. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  251. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  252. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  253. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  254. data/docs/brut-js/api/BufferedLogger.html +1 -1
  255. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  256. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  257. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  258. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  259. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  260. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  261. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  262. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  263. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  264. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  265. data/docs/brut-js/api/Form.html +1 -1
  266. data/docs/brut-js/api/Form.js.html +1 -1
  267. data/docs/brut-js/api/I18nTranslation.html +1 -1
  268. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  269. data/docs/brut-js/api/LocaleDetection.html +1 -1
  270. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  271. data/docs/brut-js/api/Logger.html +1 -1
  272. data/docs/brut-js/api/Logger.js.html +1 -1
  273. data/docs/brut-js/api/Message.html +1 -1
  274. data/docs/brut-js/api/Message.js.html +1 -1
  275. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  276. data/docs/brut-js/api/RichString.html +1 -1
  277. data/docs/brut-js/api/RichString.js.html +1 -1
  278. data/docs/brut-js/api/Tabs.html +1 -1
  279. data/docs/brut-js/api/Tabs.js.html +1 -1
  280. data/docs/brut-js/api/Tracing.html +1 -1
  281. data/docs/brut-js/api/Tracing.js.html +1 -1
  282. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  283. data/docs/brut-js/api/external-Performance.html +1 -1
  284. data/docs/brut-js/api/external-Promise.html +1 -1
  285. data/docs/brut-js/api/external-ValidityState.html +1 -1
  286. data/docs/brut-js/api/external-Window.html +1 -1
  287. data/docs/brut-js/api/external-fetch.html +1 -1
  288. data/docs/brut-js/api/global.html +1 -1
  289. data/docs/brut-js/api/index.html +1 -1
  290. data/docs/brut-js/api/index.js.html +1 -1
  291. data/docs/brut-js/api/module-testing.html +1 -1
  292. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  293. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  294. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  295. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  296. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  297. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  298. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  299. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  300. data/docs/brut-js/api/testing_index.js.html +1 -1
  301. data/docs/brut-js.html +4 -4
  302. data/docs/business-logic.html +4 -4
  303. data/docs/cli.html +4 -4
  304. data/docs/components.html +6 -6
  305. data/docs/configuration.html +5 -5
  306. data/docs/css.html +4 -4
  307. data/docs/custom-element-tests.html +4 -4
  308. data/docs/database-access.html +4 -4
  309. data/docs/database-schema.html +4 -4
  310. data/docs/deployment.html +4 -4
  311. data/docs/dev-environment.html +5 -5
  312. data/docs/doc-conventions.html +5 -5
  313. data/docs/end-to-end-tests.html +4 -4
  314. data/docs/flash-and-session.html +4 -4
  315. data/docs/forms.html +27 -27
  316. data/docs/getting-started.html +29 -6
  317. data/docs/handlers.html +4 -4
  318. data/docs/hashmap.json +1 -1
  319. data/docs/hooks.html +4 -4
  320. data/docs/i18n.html +4 -4
  321. data/docs/index.html +3 -3
  322. data/docs/instrumentation.html +5 -5
  323. data/docs/javascript.html +4 -4
  324. data/docs/jobs.html +4 -4
  325. data/docs/keyword-injection.html +4 -4
  326. data/docs/layouts.html +74 -0
  327. data/docs/lsp.html +24 -0
  328. data/docs/markdown-examples.html +4 -4
  329. data/docs/middleware.html +4 -4
  330. data/docs/not-released.html +4 -4
  331. data/docs/overview.html +8 -8
  332. data/docs/pages.html +5 -5
  333. data/docs/recipes/authentication.html +24 -0
  334. data/docs/routes.html +4 -4
  335. data/docs/security.html +4 -4
  336. data/docs/seed-data.html +4 -4
  337. data/docs/space-time-continuum.html +4 -4
  338. data/docs/tutorial.html +4 -4
  339. data/docs/unit-tests.html +4 -4
  340. data/lib/brut/cli/app.rb +7 -2
  341. data/lib/brut/cli/apps/deploy_base.rb +86 -0
  342. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +194 -0
  343. data/lib/brut/cli/apps/test.rb +2 -1
  344. data/lib/brut/cli/command.rb +7 -13
  345. data/lib/brut/cli/executor.rb +31 -5
  346. data/lib/brut/cli/options.rb +4 -0
  347. data/lib/brut/cli.rb +4 -3
  348. data/lib/brut/framework/container.rb +25 -7
  349. data/lib/brut/framework/errors/abstract_method.rb +7 -0
  350. data/lib/brut/framework/errors.rb +4 -2
  351. data/lib/brut/front_end/component.rb +33 -9
  352. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +16 -74
  353. data/lib/brut/front_end/forms/constraint_violation.rb +2 -18
  354. data/lib/brut/front_end/forms/input.rb +8 -8
  355. data/lib/brut/front_end/forms/input_declarations.rb +3 -3
  356. data/lib/brut/front_end/forms/radio_button_group_input.rb +1 -1
  357. data/lib/brut/front_end/forms/select_input.rb +1 -1
  358. data/lib/brut/front_end/forms/validity_state.rb +23 -0
  359. data/lib/brut/front_end/middlewares/reload_app.rb +2 -0
  360. data/lib/brut/spec_support/handler_support.rb +1 -1
  361. data/lib/brut/spec_support/matcher.rb +1 -1
  362. data/lib/brut/spec_support/matchers/be_a_bug.rb +11 -0
  363. data/lib/brut/spec_support/matchers/be_page_for.rb +10 -0
  364. data/lib/brut/spec_support/matchers/be_routing_for.rb +18 -0
  365. data/lib/brut/spec_support/matchers/have_constraint_violation.rb +10 -0
  366. data/lib/brut/spec_support/matchers/have_generated.rb +28 -0
  367. data/lib/brut/spec_support/matchers/have_html_attribute.rb +10 -0
  368. data/lib/brut/spec_support/matchers/have_i18n_string.rb +13 -0
  369. data/lib/brut/spec_support/matchers/have_link_to.rb +15 -0
  370. data/lib/brut/spec_support/matchers/have_redirected_to.rb +23 -0
  371. data/lib/brut/spec_support/matchers/have_returned_http_status.rb +20 -0
  372. data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +22 -0
  373. data/lib/brut/spec_support/rspec_setup.rb +42 -2
  374. data/lib/brut/version.rb +1 -1
  375. data/lib/sequel/extensions/brut_instrumentation.rb +4 -0
  376. metadata +51 -24
  377. data/docs/assets/ai.md.tZrjP9im.lean.js +0 -1
  378. data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +0 -1
  379. data/docs/assets/doc-conventions.md.DCfRXXi-.js +0 -1
  380. data/docs/assets/getting-started.md.Bz2s1Vjb.js +0 -2
  381. data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +0 -1
  382. data/lib/brut/spec_support/matchers/have_rendered.rb +0 -14
  383. /data/docs/assets/{components.md.eCttGlN-.lean.js → components.md.CRUMdRoN.lean.js} +0 -0
  384. /data/docs/assets/{configuration.md.BRriU0cL.lean.js → configuration.md.BGHl8oRC.lean.js} +0 -0
  385. /data/docs/assets/{dev-environment.md.BNc8AYiK.lean.js → dev-environment.md.GZv6xvi9.lean.js} +0 -0
  386. /data/docs/assets/{overview.md.CDalkuxV.lean.js → overview.md.C5wlBcR5.lean.js} +0 -0
@@ -211,7 +211,7 @@
211
211
 
212
212
 
213
213
  <h3 class="inherited">Methods inherited from <span class='object_link'><a href="../../Command.html" title="Brut::CLI::Command (class)">Command</a></span></h3>
214
- <p class="inherited"><span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
214
+ <p class="inherited"><span class='object_link'><a href="../../Command.html#after_bootstrap-instance_method" title="Brut::CLI::Command#after_bootstrap (method)">#after_bootstrap</a></span>, <span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
215
215
 
216
216
 
217
217
 
@@ -306,10 +306,10 @@
306
306
  <pre class="lines">
307
307
 
308
308
 
309
- 83</pre>
309
+ 88</pre>
310
310
  </td>
311
311
  <td>
312
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 83</span>
312
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 88</span>
313
313
 
314
314
  <span class='kw'>def</span> <span class='id identifier rubyid_rebuild_after_by_default?'>rebuild_after_by_default?</span> <span class='op'>=</span> <span class='kw'>true</span></pre>
315
315
  </td>
@@ -355,10 +355,10 @@
355
355
  <pre class="lines">
356
356
 
357
357
 
358
- 82</pre>
358
+ 87</pre>
359
359
  </td>
360
360
  <td>
361
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 82</span>
361
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 87</span>
362
362
 
363
363
  <span class='kw'>def</span> <span class='id identifier rubyid_rebuild_by_default?'>rebuild_by_default?</span> <span class='op'>=</span> <span class='kw'>true</span></pre>
364
364
  </td>
@@ -381,10 +381,10 @@
381
381
  <pre class="lines">
382
382
 
383
383
 
384
- 81</pre>
384
+ 86</pre>
385
385
  </td>
386
386
  <td>
387
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 81</span>
387
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 86</span>
388
388
 
389
389
  <span class='kw'>def</span> <span class='id identifier rubyid_rspec_cli_args'>rspec_cli_args</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--tag e2e</span><span class='tstring_end'>&quot;</span></span></pre>
390
390
  </td>
@@ -397,7 +397,7 @@
397
397
  </div>
398
398
 
399
399
  <div id="footer">
400
- Generated on Wed Jun 25 22:57:20 2025 by
400
+ Generated on Wed Jul 2 21:45:27 2025 by
401
401
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
402
402
  0.9.37 (ruby-3.4.4).
403
403
  </div>
@@ -152,7 +152,7 @@
152
152
 
153
153
 
154
154
  <h3 class="inherited">Methods inherited from <span class='object_link'><a href="../../Command.html" title="Brut::CLI::Command (class)">Command</a></span></h3>
155
- <p class="inherited"><span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
155
+ <p class="inherited"><span class='object_link'><a href="../../Command.html#after_bootstrap-instance_method" title="Brut::CLI::Command#after_bootstrap (method)">#after_bootstrap</a></span>, <span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
156
156
 
157
157
 
158
158
 
@@ -224,16 +224,16 @@
224
224
  <pre class="lines">
225
225
 
226
226
 
227
- 88
228
- 89
229
- 90
230
- 91
231
- 92
232
227
  93
233
- 94</pre>
228
+ 94
229
+ 95
230
+ 96
231
+ 97
232
+ 98
233
+ 99</pre>
234
234
  </td>
235
235
  <td>
236
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 88</span>
236
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 93</span>
237
237
 
238
238
  <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span>
239
239
  <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_build_assets?'>build_assets?</span>
@@ -252,7 +252,7 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Wed Jun 25 22:57:20 2025 by
255
+ Generated on Wed Jul 2 21:45:27 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
257
  0.9.37 (ruby-3.4.4).
258
258
  </div>
@@ -248,7 +248,7 @@
248
248
 
249
249
 
250
250
  <h3 class="inherited">Methods inherited from <span class='object_link'><a href="../../Command.html" title="Brut::CLI::Command (class)">Command</a></span></h3>
251
- <p class="inherited"><span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
251
+ <p class="inherited"><span class='object_link'><a href="../../Command.html#after_bootstrap-instance_method" title="Brut::CLI::Command#after_bootstrap (method)">#after_bootstrap</a></span>, <span class='object_link'><a href="../../Command.html#args-class_method" title="Brut::CLI::Command.args (method)">args</a></span>, <span class='object_link'><a href="../../Command.html#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span>, <span class='object_link'><a href="../../Command.html#before_execute-instance_method" title="Brut::CLI::Command#before_execute (method)">#before_execute</a></span>, <span class='object_link'><a href="../../Command.html#command_name-class_method" title="Brut::CLI::Command.command_name (method)">command_name</a></span>, <span class='object_link'><a href="../../Command.html#default_env-class_method" title="Brut::CLI::Command.default_env (method)">default_env</a></span>, <span class='object_link'><a href="../../Command.html#delegate_to_commands-instance_method" title="Brut::CLI::Command#delegate_to_commands (method)">#delegate_to_commands</a></span>, <span class='object_link'><a href="../../Command.html#description-class_method" title="Brut::CLI::Command.description (method)">description</a></span>, <span class='object_link'><a href="../../Command.html#detailed_description-class_method" title="Brut::CLI::Command.detailed_description (method)">detailed_description</a></span>, <span class='object_link'><a href="../../Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">env_var</a></span>, <span class='object_link'><a href="../../Command.html#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span>, <span class='object_link'><a href="../../Command.html#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span>, <span class='object_link'><a href="../../Command.html#handle_bootstrap_exception-instance_method" title="Brut::CLI::Command#handle_bootstrap_exception (method)">#handle_bootstrap_exception</a></span>, <span class='object_link'><a href="../../Command.html#initialize-instance_method" title="Brut::CLI::Command#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="../../Command.html#name_matches%3F-class_method" title="Brut::CLI::Command.name_matches? (method)">name_matches?</a></span>, <span class='object_link'><a href="../../Command.html#option_parser-class_method" title="Brut::CLI::Command.option_parser (method)">option_parser</a></span>, <span class='object_link'><a href="../../Command.html#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span>, <span class='object_link'><a href="../../Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, <span class='object_link'><a href="../../Command.html#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env-class_method" title="Brut::CLI::Command.requires_project_env (method)">requires_project_env</a></span>, <span class='object_link'><a href="../../Command.html#requires_project_env%3F-class_method" title="Brut::CLI::Command.requires_project_env? (method)">requires_project_env?</a></span>, <span class='object_link'><a href="../../Command.html#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span></p>
252
252
 
253
253
 
254
254
 
@@ -320,9 +320,6 @@
320
320
  <pre class="lines">
321
321
 
322
322
 
323
- 40
324
- 41
325
- 42
326
323
  43
327
324
  44
328
325
  45
@@ -348,10 +345,13 @@
348
345
  65
349
346
  66
350
347
  67
351
- 68</pre>
348
+ 68
349
+ 69
350
+ 70
351
+ 71</pre>
352
352
  </td>
353
353
  <td>
354
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 40</span>
354
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 43</span>
355
355
 
356
356
  <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span>
357
357
  <span class='const'><span class='object_link'><a href="../../../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='period'>.</span><span class='id identifier rubyid_container'><span class='object_link'><a href="../../../../Brut.html#container-class_method" title="Brut.container (method)">container</a></span></span><span class='period'>.</span><span class='id identifier rubyid_sequel_db_handle'>sequel_db_handle</span><span class='period'>.</span><span class='id identifier rubyid_disconnect'>disconnect</span>
@@ -425,10 +425,10 @@
425
425
  <pre class="lines">
426
426
 
427
427
 
428
- 38</pre>
428
+ 41</pre>
429
429
  </td>
430
430
  <td>
431
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 38</span>
431
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 41</span>
432
432
 
433
433
  <span class='kw'>def</span> <span class='id identifier rubyid_rebuild_after_by_default?'>rebuild_after_by_default?</span> <span class='op'>=</span> <span class='kw'>false</span></pre>
434
434
  </td>
@@ -474,10 +474,10 @@
474
474
  <pre class="lines">
475
475
 
476
476
 
477
- 37</pre>
477
+ 40</pre>
478
478
  </td>
479
479
  <td>
480
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 37</span>
480
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 40</span>
481
481
 
482
482
  <span class='kw'>def</span> <span class='id identifier rubyid_rebuild_by_default?'>rebuild_by_default?</span> <span class='op'>=</span> <span class='kw'>false</span></pre>
483
483
  </td>
@@ -500,10 +500,10 @@
500
500
  <pre class="lines">
501
501
 
502
502
 
503
- 35</pre>
503
+ 38</pre>
504
504
  </td>
505
505
  <td>
506
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 35</span>
506
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 38</span>
507
507
 
508
508
  <span class='kw'>def</span> <span class='id identifier rubyid_rspec_cli_args'>rspec_cli_args</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--tag ~e2e</span><span class='tstring_end'>&quot;</span></span></pre>
509
509
  </td>
@@ -526,9 +526,6 @@
526
526
  <pre class="lines">
527
527
 
528
528
 
529
- 20
530
- 21
531
- 22
532
529
  23
533
530
  24
534
531
  25
@@ -539,10 +536,13 @@
539
536
  30
540
537
  31
541
538
  32
542
- 33</pre>
539
+ 33
540
+ 34
541
+ 35
542
+ 36</pre>
543
543
  </td>
544
544
  <td>
545
- <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 20</span>
545
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/test.rb', line 23</span>
546
546
 
547
547
  <span class='kw'>def</span> <span class='id identifier rubyid_rspec_command'>rspec_command</span>
548
548
  <span class='id identifier rubyid_parts'>parts</span> <span class='op'>=</span> <span class='lbracket'>[</span>
@@ -568,7 +568,7 @@
568
568
  </div>
569
569
 
570
570
  <div id="footer">
571
- Generated on Wed Jun 25 22:57:20 2025 by
571
+ Generated on Wed Jul 2 21:45:27 2025 by
572
572
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
573
573
  0.9.37 (ruby-3.4.4).
574
574
  </div>
@@ -243,7 +243,7 @@
243
243
  </div>
244
244
 
245
245
  <div id="footer">
246
- Generated on Wed Jun 25 22:57:20 2025 by
246
+ Generated on Wed Jul 2 21:45:27 2025 by
247
247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
248
248
  0.9.37 (ruby-3.4.4).
249
249
  </div>
@@ -99,7 +99,7 @@
99
99
 
100
100
 
101
101
 
102
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Apps/BuildAssets.html" title="Brut::CLI::Apps::BuildAssets (class)">BuildAssets</a></span>, <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::Apps::DB (class)">DB</a></span>, <span class='object_link'><a href="Apps/Scaffold.html" title="Brut::CLI::Apps::Scaffold (class)">Scaffold</a></span>, <span class='object_link'><a href="Apps/Test.html" title="Brut::CLI::Apps::Test (class)">Test</a></span>
102
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Apps/BuildAssets.html" title="Brut::CLI::Apps::BuildAssets (class)">BuildAssets</a></span>, <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::Apps::DB (class)">DB</a></span>, <span class='object_link'><a href="Apps/DeployBase.html" title="Brut::CLI::Apps::DeployBase (class)">DeployBase</a></span>, <span class='object_link'><a href="Apps/HerokuContainerBasedDeploy.html" title="Brut::CLI::Apps::HerokuContainerBasedDeploy (class)">HerokuContainerBasedDeploy</a></span>, <span class='object_link'><a href="Apps/Scaffold.html" title="Brut::CLI::Apps::Scaffold (class)">Scaffold</a></span>, <span class='object_link'><a href="Apps/Test.html" title="Brut::CLI::Apps::Test (class)">Test</a></span>
103
103
 
104
104
 
105
105
  </p>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Wed Jun 25 22:57:19 2025 by
118
+ Generated on Wed Jul 2 21:45:26 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.4).
121
121
  </div>
@@ -116,7 +116,7 @@
116
116
 
117
117
  </div><div id="subclasses">
118
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/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/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>
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/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
120
  </div>
121
121
 
122
122
 
@@ -398,6 +398,29 @@
398
398
  <li class="public ">
399
399
  <span class="summary_signature">
400
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
+
401
424
  <a href="#args-instance_method" title="#args (instance method)">#<strong>args</strong> &#x21d2; Array&lt;String&gt; </a>
402
425
 
403
426
 
@@ -630,7 +653,7 @@
630
653
  <li class="public ">
631
654
  <span class="summary_signature">
632
655
 
633
- <a href="#system!-instance_method" title="#system! (instance method)">#<strong>system!</strong>(*args) &#x21d2; true </a>
656
+ <a href="#system!-instance_method" title="#system! (instance method)">#<strong>system!</strong>(*args) &#x21d2; int </a>
634
657
 
635
658
 
636
659
 
@@ -1620,7 +1643,65 @@ into a <span class='object_link'><a href="Options.html" title="Brut::CLI::Option
1620
1643
 
1621
1644
 
1622
1645
  <div class="method_details first">
1623
- <h3 class="signature first" id="args-instance_method">
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
+ 205
1691
+ 206</pre>
1692
+ </td>
1693
+ <td>
1694
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 205</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">
1624
1705
 
1625
1706
  #<strong>args</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
1626
1707
 
@@ -1661,12 +1742,12 @@ into a <span class='object_link'><a href="Options.html" title="Brut::CLI::Option
1661
1742
  <pre class="lines">
1662
1743
 
1663
1744
 
1664
- 245
1665
- 246
1666
- 247</pre>
1745
+ 239
1746
+ 240
1747
+ 241</pre>
1667
1748
  </td>
1668
1749
  <td>
1669
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 245</span>
1750
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 239</span>
1670
1751
 
1671
1752
  <span class='kw'>def</span> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='ivar'>@args</span>
1672
1753
  <span class='comment'># @!visibility public
@@ -1885,10 +1966,10 @@ to complete as desired in that way.</p>
1885
1966
  <pre class="lines">
1886
1967
 
1887
1968
 
1888
- 251</pre>
1969
+ 245</pre>
1889
1970
  </td>
1890
1971
  <td>
1891
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 251</span>
1972
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 245</span>
1892
1973
 
1893
1974
  <span class='kw'>def</span> <span class='id identifier rubyid_err'>err</span> <span class='op'>=</span> <span class='ivar'>@err</span></pre>
1894
1975
  </td>
@@ -2037,12 +2118,12 @@ to complete as desired in that way.</p>
2037
2118
  <pre class="lines">
2038
2119
 
2039
2120
 
2040
- 242
2041
- 243
2042
- 244</pre>
2121
+ 236
2122
+ 237
2123
+ 238</pre>
2043
2124
  </td>
2044
2125
  <td>
2045
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 242</span>
2126
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 236</span>
2046
2127
 
2047
2128
  <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>
2048
2129
  <span class='comment'># @!visibility public
@@ -2130,12 +2211,12 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2130
2211
  <pre class="lines">
2131
2212
 
2132
2213
 
2133
- 218
2134
- 219
2135
- 220</pre>
2214
+ 225
2215
+ 226
2216
+ 227</pre>
2136
2217
  </td>
2137
2218
  <td>
2138
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 218</span>
2219
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 225</span>
2139
2220
 
2140
2221
  <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>
2141
2222
  <span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_ex'>ex</span>
@@ -2187,12 +2268,12 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2187
2268
  <pre class="lines">
2188
2269
 
2189
2270
 
2190
- 239
2191
- 240
2192
- 241</pre>
2271
+ 233
2272
+ 234
2273
+ 235</pre>
2193
2274
  </td>
2194
2275
  <td>
2195
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 239</span>
2276
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 233</span>
2196
2277
 
2197
2278
  <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command_options</span>
2198
2279
  <span class='comment'># @!visibility public
@@ -2244,12 +2325,12 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2244
2325
  <pre class="lines">
2245
2326
 
2246
2327
 
2247
- 248
2248
- 249
2249
- 250</pre>
2328
+ 242
2329
+ 243
2330
+ 244</pre>
2250
2331
  </td>
2251
2332
  <td>
2252
- <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 248</span>
2333
+ <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 242</span>
2253
2334
 
2254
2335
  <span class='kw'>def</span> <span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='ivar'>@out</span>
2255
2336
  <span class='comment'># @!visibility public
@@ -2262,7 +2343,7 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2262
2343
  <div class="method_details ">
2263
2344
  <h3 class="signature " id="system!-instance_method">
2264
2345
 
2265
- #<strong>system!</strong>(*args) &#x21d2; <tt>true</tt>
2346
+ #<strong>system!</strong>(*args) &#x21d2; <tt>int</tt>
2266
2347
 
2267
2348
 
2268
2349
 
@@ -2302,9 +2383,13 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2302
2383
  <li>
2303
2384
 
2304
2385
 
2305
- <span class='type'>(<tt>true</tt>)</span>
2386
+ <span class='type'>(<tt>int</tt>)</span>
2387
+
2306
2388
 
2307
2389
 
2390
+ &mdash;
2391
+ <div class='inline'><p>Always returns 0</p>
2392
+ </div>
2308
2393
 
2309
2394
  </li>
2310
2395
 
@@ -2332,7 +2417,7 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2332
2417
  </div>
2333
2418
 
2334
2419
  <div id="footer">
2335
- Generated on Wed Jun 25 22:57:20 2025 by
2420
+ Generated on Wed Jul 2 21:45:27 2025 by
2336
2421
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2337
2422
  0.9.37 (ruby-3.4.4).
2338
2423
  </div>
@@ -129,7 +129,7 @@ trace.</p>
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Wed Jun 25 22:57:20 2025 by
132
+ Generated on Wed Jul 2 21:45:27 2025 by
133
133
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
134
134
  0.9.37 (ruby-3.4.4).
135
135
  </div>
@@ -654,7 +654,7 @@
654
654
  </div>
655
655
 
656
656
  <div id="footer">
657
- Generated on Wed Jun 25 22:57:20 2025 by
657
+ Generated on Wed Jul 2 21:45:27 2025 by
658
658
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
659
659
  0.9.37 (ruby-3.4.4).
660
660
  </div>
@@ -665,7 +665,7 @@ command.</p>
665
665
  </div>
666
666
 
667
667
  <div id="footer">
668
- Generated on Wed Jun 25 22:57:19 2025 by
668
+ Generated on Wed Jul 2 21:45:26 2025 by
669
669
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
670
670
  0.9.37 (ruby-3.4.4).
671
671
  </div>