brut 0.16.0.pre.pre → 0.17.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 (456) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/CHANGELOG.md +9 -3
  4. data/Gemfile.lock +44 -34
  5. data/bin/docs +7 -0
  6. data/brut-css/package-lock.json +2 -2
  7. data/brut-css/package.json +1 -1
  8. data/brut-js/package-lock.json +311 -2
  9. data/brut-js/package.json +2 -1
  10. data/brut.gemspec +2 -0
  11. data/brutrb.com/jobs.md +1 -1
  12. data/docs/404.html +2 -2
  13. data/docs/adrs.html +4 -4
  14. data/docs/ai.html +4 -4
  15. data/docs/api/Brut/BackEnd/SeedData.html +2 -2
  16. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +2 -2
  17. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +2 -2
  18. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +2 -2
  19. data/docs/api/Brut/BackEnd/Sidekiq.html +2 -2
  20. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +2 -2
  21. data/docs/api/Brut/BackEnd/Validators.html +2 -2
  22. data/docs/api/Brut/BackEnd.html +2 -2
  23. data/docs/api/Brut/CLI/App.html +2 -2
  24. data/docs/api/Brut/CLI/AppRunner.html +2 -2
  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 +3 -3
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
  29. data/docs/api/Brut/CLI/Apps/BuildAssets.html +2 -2
  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 +2 -2
  33. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +2 -2
  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 +2 -2
  37. data/docs/api/Brut/CLI/Apps/DB.html +2 -2
  38. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +2 -2
  39. data/docs/api/Brut/CLI/Apps/DeployBase.html +2 -2
  40. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +8 -6
  41. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +2 -2
  42. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +2 -2
  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/DbModel.html +2 -2
  47. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
  48. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +2 -2
  50. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  51. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +2 -2
  52. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
  53. data/docs/api/Brut/CLI/Apps/Scaffold.html +2 -2
  54. data/docs/api/Brut/CLI/Apps/Test/Audit.html +15 -7
  55. data/docs/api/Brut/CLI/Apps/Test/E2e.html +2 -2
  56. data/docs/api/Brut/CLI/Apps/Test/JS.html +2 -2
  57. data/docs/api/Brut/CLI/Apps/Test/Run.html +2 -2
  58. data/docs/api/Brut/CLI/Apps/Test.html +2 -2
  59. data/docs/api/Brut/CLI/Apps.html +2 -2
  60. data/docs/api/Brut/CLI/Command.html +2 -2
  61. data/docs/api/Brut/CLI/Error.html +2 -2
  62. data/docs/api/Brut/CLI/ExecutionResults/Result.html +2 -2
  63. data/docs/api/Brut/CLI/ExecutionResults.html +2 -2
  64. data/docs/api/Brut/CLI/Executor.html +2 -2
  65. data/docs/api/Brut/CLI/InvalidOption.html +2 -2
  66. data/docs/api/Brut/CLI/Options.html +2 -2
  67. data/docs/api/Brut/CLI/Output.html +2 -2
  68. data/docs/api/Brut/CLI/SystemExecError.html +2 -2
  69. data/docs/api/Brut/CLI.html +2 -2
  70. data/docs/api/Brut/FactoryBot.html +2 -2
  71. data/docs/api/Brut/Framework/App.html +2 -2
  72. data/docs/api/Brut/Framework/Config.html +2 -2
  73. data/docs/api/Brut/Framework/Container.html +11 -7
  74. data/docs/api/Brut/Framework/Error.html +2 -2
  75. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +2 -2
  76. data/docs/api/Brut/Framework/Errors/Bug.html +2 -2
  77. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +2 -2
  78. data/docs/api/Brut/Framework/Errors/MissingParameter.html +2 -2
  79. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +2 -2
  80. data/docs/api/Brut/Framework/Errors/NotFound.html +2 -2
  81. data/docs/api/Brut/Framework/Errors/NotImplemented.html +2 -2
  82. data/docs/api/Brut/Framework/Errors.html +2 -2
  83. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +2 -2
  84. data/docs/api/Brut/Framework/MCP.html +3 -3
  85. data/docs/api/Brut/Framework/ProjectEnvironment.html +2 -2
  86. data/docs/api/Brut/Framework.html +2 -2
  87. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +2 -2
  88. data/docs/api/Brut/FrontEnd/Component/Helpers.html +2 -2
  89. data/docs/api/Brut/FrontEnd/Component.html +2 -2
  90. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +2 -2
  91. data/docs/api/Brut/FrontEnd/Components/FormTag.html +2 -2
  92. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +2 -2
  93. data/docs/api/Brut/FrontEnd/Components/Input.html +2 -2
  94. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +2 -2
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +2 -2
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +2 -2
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +2 -2
  98. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +2 -2
  99. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +2 -2
  100. data/docs/api/Brut/FrontEnd/Components/Inputs.html +2 -2
  101. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +2 -2
  102. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +2 -2
  103. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +2 -2
  104. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +2 -2
  105. data/docs/api/Brut/FrontEnd/Components.html +2 -2
  106. data/docs/api/Brut/FrontEnd/CsrfProtector.html +2 -2
  107. data/docs/api/Brut/FrontEnd/Download.html +2 -2
  108. data/docs/api/Brut/FrontEnd/Flash.html +2 -2
  109. data/docs/api/Brut/FrontEnd/Form.html +2 -2
  110. data/docs/api/Brut/FrontEnd/Forms/Button.html +2 -2
  111. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +2 -2
  112. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +2 -2
  113. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +2 -2
  114. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +2 -2
  115. data/docs/api/Brut/FrontEnd/Forms/Input.html +2 -2
  116. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +2 -2
  117. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +2 -2
  118. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +2 -2
  119. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +2 -2
  120. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +2 -2
  121. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +2 -2
  122. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +2 -2
  123. data/docs/api/Brut/FrontEnd/Forms.html +2 -2
  124. data/docs/api/Brut/FrontEnd/GenericResponse.html +2 -2
  125. data/docs/api/Brut/FrontEnd/Handler.html +2 -2
  126. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +2 -2
  127. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +2 -2
  128. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +2 -2
  129. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +2 -2
  130. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +2 -2
  131. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +2 -2
  132. data/docs/api/Brut/FrontEnd/Handlers.html +2 -2
  133. data/docs/api/Brut/FrontEnd/HandlingResults.html +2 -2
  134. data/docs/api/Brut/FrontEnd/HttpMethod.html +2 -2
  135. data/docs/api/Brut/FrontEnd/HttpStatus.html +2 -2
  136. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +2 -2
  137. data/docs/api/Brut/FrontEnd/Layout.html +2 -2
  138. data/docs/api/Brut/FrontEnd/Middleware.html +2 -2
  139. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +2 -2
  140. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +2 -2
  141. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +2 -2
  142. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +2 -2
  143. data/docs/api/Brut/FrontEnd/Middlewares.html +2 -2
  144. data/docs/api/Brut/FrontEnd/Page.html +2 -2
  145. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +2 -2
  146. data/docs/api/Brut/FrontEnd/Pages.html +2 -2
  147. data/docs/api/Brut/FrontEnd/RequestContext.html +2 -2
  148. data/docs/api/Brut/FrontEnd/RouteHook.html +2 -2
  149. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +2 -2
  150. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +2 -2
  151. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +2 -2
  152. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +2 -2
  153. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +2 -2
  154. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +2 -2
  155. data/docs/api/Brut/FrontEnd/RouteHooks.html +2 -2
  156. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +2 -2
  157. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +2 -2
  158. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +2 -2
  159. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +2 -2
  160. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +2 -2
  161. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +2 -2
  162. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +2 -2
  163. data/docs/api/Brut/FrontEnd/Routing/Route.html +2 -2
  164. data/docs/api/Brut/FrontEnd/Routing.html +2 -2
  165. data/docs/api/Brut/FrontEnd/Session.html +2 -2
  166. data/docs/api/Brut/FrontEnd.html +2 -2
  167. data/docs/api/Brut/I18n/BaseMethods.html +2 -2
  168. data/docs/api/Brut/I18n/ForBackEnd.html +2 -2
  169. data/docs/api/Brut/I18n/ForCLI.html +2 -2
  170. data/docs/api/Brut/I18n/ForHTML.html +2 -2
  171. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +2 -2
  172. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +2 -2
  173. data/docs/api/Brut/I18n.html +2 -2
  174. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +2 -2
  175. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +2 -2
  176. data/docs/api/Brut/Instrumentation/Methods.html +2 -2
  177. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +2 -2
  178. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +2 -2
  179. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +2 -2
  180. data/docs/api/Brut/Instrumentation.html +2 -2
  181. data/docs/api/Brut/RubocopConfig.html +2 -2
  182. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +2 -2
  183. data/docs/api/Brut/SinatraHelpers.html +2 -2
  184. data/docs/api/Brut/SpecSupport/ClockSupport.html +2 -2
  185. data/docs/api/Brut/SpecSupport/ComponentSupport.html +2 -2
  186. data/docs/api/Brut/SpecSupport/E2ETestServer.html +2 -2
  187. data/docs/api/Brut/SpecSupport/E2eSupport.html +2 -2
  188. data/docs/api/Brut/SpecSupport/EnhancedNode.html +2 -2
  189. data/docs/api/Brut/SpecSupport/FlashSupport.html +2 -2
  190. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +2 -2
  191. data/docs/api/Brut/SpecSupport/GeneralSupport.html +2 -2
  192. data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
  193. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +2 -2
  194. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +2 -2
  195. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +2 -2
  196. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +2 -2
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +2 -2
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +2 -2
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +2 -2
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +2 -2
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +2 -2
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +2 -2
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +2 -2
  204. data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
  205. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +2 -2
  206. data/docs/api/Brut/SpecSupport/RSpecSetup.html +2 -2
  207. data/docs/api/Brut/SpecSupport/SessionSupport.html +2 -2
  208. data/docs/api/Brut/SpecSupport.html +2 -2
  209. data/docs/api/Brut/TUI/AnsiEscapeCode/Mod.html +409 -0
  210. data/docs/api/Brut/TUI/AnsiEscapeCode.html +426 -0
  211. data/docs/api/Brut/TUI/EventLoop/Deque.html +531 -0
  212. data/docs/api/Brut/TUI/EventLoop.html +676 -0
  213. data/docs/api/Brut/TUI/Events/BaseEvent.html +449 -0
  214. data/docs/api/Brut/TUI/Events/EventBus.html +485 -0
  215. data/docs/api/Brut/TUI/Events/EventLoopStarted.html +211 -0
  216. data/docs/api/Brut/TUI/Events/Exception.html +523 -0
  217. data/docs/api/Brut/TUI/Events/Tick.html +294 -0
  218. data/docs/api/Brut/TUI/Events.html +131 -0
  219. data/docs/api/Brut/TUI/MarkupString.html +537 -0
  220. data/docs/api/Brut/TUI/Script/BlockStep.html +300 -0
  221. data/docs/api/Brut/TUI/Script/Events/CommandExecutionFailed.html +252 -0
  222. data/docs/api/Brut/TUI/Script/Events/CommandExecutionSucceeded.html +163 -0
  223. data/docs/api/Brut/TUI/Script/Events/CommandStdErr.html +163 -0
  224. data/docs/api/Brut/TUI/Script/Events/CommandStdOut.html +300 -0
  225. data/docs/api/Brut/TUI/Script/Events/ExecutingCommand.html +298 -0
  226. data/docs/api/Brut/TUI/Script/Events/Message.html +345 -0
  227. data/docs/api/Brut/TUI/Script/Events/PhaseCompleted.html +229 -0
  228. data/docs/api/Brut/TUI/Script/Events/PhaseStarted.html +350 -0
  229. data/docs/api/Brut/TUI/Script/Events/ScriptCompleted.html +282 -0
  230. data/docs/api/Brut/TUI/Script/Events/ScriptStarted.html +343 -0
  231. data/docs/api/Brut/TUI/Script/Events/StepCompleted.html +163 -0
  232. data/docs/api/Brut/TUI/Script/Events/StepStarted.html +346 -0
  233. data/docs/api/Brut/TUI/Script/Events.html +115 -0
  234. data/docs/api/Brut/TUI/Script/ExecStep/ProcessStatusFailed.html +210 -0
  235. data/docs/api/Brut/TUI/Script/ExecStep.html +493 -0
  236. data/docs/api/Brut/TUI/Script/LoggingSubscriber.html +914 -0
  237. data/docs/api/Brut/TUI/Script/PutsSubscriber.html +783 -0
  238. data/docs/api/Brut/TUI/Script/Step.html +313 -0
  239. data/docs/api/Brut/TUI/Script.html +1250 -0
  240. data/docs/api/Brut/TUI/Terminal.html +593 -0
  241. data/docs/api/Brut/TUI/TerminalTheme.html +1403 -0
  242. data/docs/api/Brut/TUI/Themes/Dark.html +706 -0
  243. data/docs/api/Brut/TUI/Themes/Light.html +804 -0
  244. data/docs/api/Brut/TUI/Themes/None.html +218 -0
  245. data/docs/api/Brut/TUI/Themes.html +115 -0
  246. data/docs/api/Brut/TUI.html +129 -0
  247. data/docs/api/Brut.html +4 -4
  248. data/docs/api/Clock.html +2 -2
  249. data/docs/api/ModuleName.html +2 -2
  250. data/docs/api/RichString.html +2 -2
  251. data/docs/api/SemanticLogger/Appender/Async.html +2 -2
  252. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +2 -2
  253. data/docs/api/Sequel/Extensions/BrutMigrations.html +2 -2
  254. data/docs/api/Sequel/Extensions.html +2 -2
  255. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +2 -2
  256. data/docs/api/Sequel/Plugins/CreatedAt.html +2 -2
  257. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +2 -2
  258. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +2 -2
  259. data/docs/api/Sequel/Plugins/ExternalId.html +2 -2
  260. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +2 -2
  261. data/docs/api/Sequel/Plugins/FindBang.html +2 -2
  262. data/docs/api/Sequel/Plugins.html +2 -2
  263. data/docs/api/Sequel.html +2 -2
  264. data/docs/api/_index.html +247 -2
  265. data/docs/api/class_list.html +1 -1
  266. data/docs/api/file.README.html +2 -2
  267. data/docs/api/index.html +2 -2
  268. data/docs/api/method_list.html +1551 -431
  269. data/docs/api/top-level-namespace.html +2 -2
  270. data/docs/assets/{app.Dm7v_ouO.js → app.B8jAEB7R.js} +1 -1
  271. data/docs/assets/chunks/@localSearchIndexroot.DJ8mocCj.js +1 -0
  272. data/docs/assets/chunks/{VPLocalSearchBox.DQK6jQou.js → VPLocalSearchBox.gF-Po_fz.js} +1 -1
  273. data/docs/assets/chunks/{theme.BuExsdM9.js → theme.BjPAOJkz.js} +2 -2
  274. data/docs/assets/{components.md.Dfd3w6UW.js → components.md.Ber8UBM0.js} +3 -3
  275. data/docs/assets/{configuration.md.DTYoV2Ea.js → configuration.md.DrJ6YVoZ.js} +1 -1
  276. data/docs/assets/{deployment.md.C1u5ep0g.js → deployment.md.CHTx2eTR.js} +10 -3
  277. data/docs/assets/{deployment.md.C1u5ep0g.lean.js → deployment.md.CHTx2eTR.lean.js} +1 -1
  278. data/docs/assets/{forms.md.DEkmJUvb.js → forms.md.RK0zkhm0.js} +2 -2
  279. data/docs/assets/{forms.md.DEkmJUvb.lean.js → forms.md.RK0zkhm0.lean.js} +1 -1
  280. data/docs/assets/{getting-started.md.DO-4eoGW.js → getting-started.md.CGJ44juQ.js} +2 -2
  281. data/docs/assets/jobs.md.Bi3qb3v6.js +25 -0
  282. data/docs/assets/jobs.md.Bi3qb3v6.lean.js +1 -0
  283. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.js +12 -0
  284. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.lean.js +1 -0
  285. data/docs/assets/roadmap.md.DqC1Y7Zt.js +1 -0
  286. data/docs/assets/{roadmap.md.CJsbUmK_.lean.js → roadmap.md.DqC1Y7Zt.lean.js} +1 -1
  287. data/docs/assets/{tutorials_02-dialog.md.D2vSjDVf.js → tutorials_02-dialog.md.DE5WfCXI.js} +1 -1
  288. data/docs/assets.html +4 -4
  289. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  290. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  291. data/docs/brut-js/api/Autosubmit.html +1 -1
  292. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  293. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  294. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  295. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  296. data/docs/brut-js/api/BufferedLogger.html +1 -1
  297. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  298. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  299. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  300. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  301. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  302. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  303. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  304. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  305. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  306. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  307. data/docs/brut-js/api/Form.html +1 -1
  308. data/docs/brut-js/api/Form.js.html +1 -1
  309. data/docs/brut-js/api/I18nTranslation.html +1 -1
  310. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  311. data/docs/brut-js/api/LocaleDetection.html +1 -1
  312. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  313. data/docs/brut-js/api/Logger.html +1 -1
  314. data/docs/brut-js/api/Logger.js.html +1 -1
  315. data/docs/brut-js/api/Message.html +1 -1
  316. data/docs/brut-js/api/Message.js.html +1 -1
  317. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  318. data/docs/brut-js/api/RichString.html +1 -1
  319. data/docs/brut-js/api/RichString.js.html +1 -1
  320. data/docs/brut-js/api/Tabs.html +1 -1
  321. data/docs/brut-js/api/Tabs.js.html +1 -1
  322. data/docs/brut-js/api/Toast.html +1 -1
  323. data/docs/brut-js/api/Toast.js.html +1 -1
  324. data/docs/brut-js/api/Tracing.html +1 -1
  325. data/docs/brut-js/api/Tracing.js.html +1 -1
  326. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  327. data/docs/brut-js/api/external-Performance.html +1 -1
  328. data/docs/brut-js/api/external-Promise.html +1 -1
  329. data/docs/brut-js/api/external-ValidityState.html +1 -1
  330. data/docs/brut-js/api/external-Window.html +1 -1
  331. data/docs/brut-js/api/external-fetch.html +1 -1
  332. data/docs/brut-js/api/global.html +1 -1
  333. data/docs/brut-js/api/index.html +1 -1
  334. data/docs/brut-js/api/index.js.html +1 -1
  335. data/docs/brut-js/api/module-testing.html +1 -1
  336. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  337. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  338. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  339. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  340. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  341. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  342. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  343. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  344. data/docs/brut-js/api/testing_index.js.html +1 -1
  345. data/docs/brut-js.html +4 -4
  346. data/docs/business-logic.html +4 -4
  347. data/docs/cli.html +4 -4
  348. data/docs/components.html +8 -8
  349. data/docs/configuration.html +5 -5
  350. data/docs/css.html +4 -4
  351. data/docs/custom-element-tests.html +4 -4
  352. data/docs/database-access.html +4 -4
  353. data/docs/database-schema.html +4 -4
  354. data/docs/deployment.html +13 -6
  355. data/docs/dev-environment.html +4 -4
  356. data/docs/dir-structure.html +4 -4
  357. data/docs/doc-conventions.html +4 -4
  358. data/docs/end-to-end-tests.html +4 -4
  359. data/docs/features.html +4 -4
  360. data/docs/flash-and-session.html +4 -4
  361. data/docs/form-constraints.html +4 -4
  362. data/docs/forms.html +6 -6
  363. data/docs/getting-started.html +7 -7
  364. data/docs/handlers.html +4 -4
  365. data/docs/hashmap.json +1 -1
  366. data/docs/hooks.html +4 -4
  367. data/docs/i18n.html +4 -4
  368. data/docs/index.html +3 -3
  369. data/docs/instrumentation.html +4 -4
  370. data/docs/javascript.html +4 -4
  371. data/docs/jobs.html +29 -5
  372. data/docs/keyword-injection.html +4 -4
  373. data/docs/layouts.html +4 -4
  374. data/docs/lsp.html +4 -4
  375. data/docs/markdown-examples.html +4 -4
  376. data/docs/middleware.html +4 -4
  377. data/docs/overview.html +4 -4
  378. data/docs/pages.html +4 -4
  379. data/docs/recipes/alternate-layouts.html +5 -5
  380. data/docs/recipes/authentication.html +5 -5
  381. data/docs/recipes/custom-flash.html +5 -5
  382. data/docs/recipes/dev-env-secrets.html +40 -0
  383. data/docs/recipes/form-errors.html +5 -5
  384. data/docs/recipes/indexed-forms.html +5 -5
  385. data/docs/recipes/migrations.html +5 -5
  386. data/docs/recipes/text-field-component.html +5 -5
  387. data/docs/roadmap.html +5 -5
  388. data/docs/routes.html +4 -4
  389. data/docs/security.html +4 -4
  390. data/docs/seed-data.html +4 -4
  391. data/docs/space-time-continuum.html +4 -4
  392. data/docs/tutorial.html +4 -4
  393. data/docs/tutorials/01-intro.html +4 -4
  394. data/docs/tutorials/02-dialog.html +5 -5
  395. data/docs/unit-tests.html +4 -4
  396. data/docs/why.html +4 -4
  397. data/lib/brut/cli/apps/build_assets.rb +1 -1
  398. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +1 -1
  399. data/lib/brut/cli/apps/test.rb +6 -4
  400. data/lib/brut/tui/ansi_escape_code.rb +104 -0
  401. data/lib/brut/tui/event_loop.rb +168 -0
  402. data/lib/brut/tui/events/base_event.rb +29 -0
  403. data/lib/brut/tui/events/event_bus.rb +73 -0
  404. data/lib/brut/tui/events/event_loop_started.rb +5 -0
  405. data/lib/brut/tui/events/exception.rb +24 -0
  406. data/lib/brut/tui/events/tick.rb +12 -0
  407. data/lib/brut/tui/events.rb +7 -0
  408. data/lib/brut/tui/markup_string.rb +68 -0
  409. data/lib/brut/tui/script/block_step.rb +17 -0
  410. data/lib/brut/tui/script/events/command_execution_failed.rb +4 -0
  411. data/lib/brut/tui/script/events/command_execution_succeeded.rb +3 -0
  412. data/lib/brut/tui/script/events/command_std_err.rb +3 -0
  413. data/lib/brut/tui/script/events/command_std_out.rb +13 -0
  414. data/lib/brut/tui/script/events/executing_command.rb +12 -0
  415. data/lib/brut/tui/script/events/message.rb +15 -0
  416. data/lib/brut/tui/script/events/phase_completed.rb +4 -0
  417. data/lib/brut/tui/script/events/phase_started.rb +14 -0
  418. data/lib/brut/tui/script/events/script_completed.rb +5 -0
  419. data/lib/brut/tui/script/events/script_started.rb +12 -0
  420. data/lib/brut/tui/script/events/step_completed.rb +3 -0
  421. data/lib/brut/tui/script/events/step_started.rb +12 -0
  422. data/lib/brut/tui/script/events.rb +14 -0
  423. data/lib/brut/tui/script/exec_step.rb +60 -0
  424. data/lib/brut/tui/script/logging_subscriber.rb +98 -0
  425. data/lib/brut/tui/script/puts_subscriber.rb +109 -0
  426. data/lib/brut/tui/script/step.rb +13 -0
  427. data/lib/brut/tui/script.rb +211 -0
  428. data/lib/brut/tui/terminal.rb +74 -0
  429. data/lib/brut/tui/terminal_theme.rb +140 -0
  430. data/lib/brut/tui/themes/dark.rb +14 -0
  431. data/lib/brut/tui/themes/light.rb +17 -0
  432. data/lib/brut/tui/themes/none.rb +9 -0
  433. data/lib/brut/tui/themes.rb +5 -0
  434. data/lib/brut/tui.rb +15 -0
  435. data/lib/brut/version.rb +1 -1
  436. data/lib/brut.rb +1 -0
  437. data/mkbrut/Gemfile.lock +2 -1
  438. data/mkbrut/lib/mkbrut/version.rb +1 -1
  439. data/mkbrut/templates/segments/Heroku/deploy/Dockerfile +9 -7
  440. data/mkbrut/templates/segments/Heroku/deploy/heroku_config.rb +2 -2
  441. data/specs/brut/tui/ansi_escape_code.spec.rb +30 -0
  442. data/specs/brut/tui/event_loop.spec.rb +70 -0
  443. data/specs/brut/tui/events/base_event.spec.rb +26 -0
  444. data/specs/brut/tui/events/event_bus.spec.rb +141 -0
  445. data/specs/brut/tui/events/exception.spec.rb +19 -0
  446. data/specs/brut/tui/events/test_event.rb +5 -0
  447. data/specs/spec_helper.rb +4 -0
  448. metadata +131 -21
  449. data/docs/assets/chunks/@localSearchIndexroot.BiNFswvo.js +0 -1
  450. data/docs/assets/jobs.md.Bc7Y1YpK.js +0 -1
  451. data/docs/assets/jobs.md.Bc7Y1YpK.lean.js +0 -1
  452. data/docs/assets/roadmap.md.CJsbUmK_.js +0 -1
  453. /data/docs/assets/{components.md.Dfd3w6UW.lean.js → components.md.Ber8UBM0.lean.js} +0 -0
  454. /data/docs/assets/{configuration.md.DTYoV2Ea.lean.js → configuration.md.DrJ6YVoZ.lean.js} +0 -0
  455. /data/docs/assets/{getting-started.md.DO-4eoGW.lean.js → getting-started.md.CGJ44juQ.lean.js} +0 -0
  456. /data/docs/assets/{tutorials_02-dialog.md.D2vSjDVf.lean.js → tutorials_02-dialog.md.DE5WfCXI.lean.js} +0 -0
@@ -204,9 +204,9 @@ job executions. Do not enable in production.</p>
204
204
  </div>
205
205
 
206
206
  <div id="footer">
207
- Generated on Tue Sep 16 13:24:00 2025 by
207
+ Generated on Sun Nov 30 20:50:12 2025 by
208
208
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
209
- 0.9.37 (ruby-3.4.5).
209
+ 0.9.37 (ruby-3.4.6).
210
210
  </div>
211
211
 
212
212
  </div>
@@ -115,9 +115,9 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Sep 16 13:23:59 2025 by
118
+ Generated on Sun Nov 30 20:50:11 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
- 0.9.37 (ruby-3.4.5).
120
+ 0.9.37 (ruby-3.4.6).
121
121
  </div>
122
122
 
123
123
  </div>
@@ -115,9 +115,9 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Sep 16 13:23:59 2025 by
118
+ Generated on Sun Nov 30 20:50:11 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
- 0.9.37 (ruby-3.4.5).
120
+ 0.9.37 (ruby-3.4.6).
121
121
  </div>
122
122
 
123
123
  </div>
@@ -115,9 +115,9 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Sep 16 13:23:59 2025 by
118
+ Generated on Sun Nov 30 20:50:11 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
- 0.9.37 (ruby-3.4.5).
120
+ 0.9.37 (ruby-3.4.6).
121
121
  </div>
122
122
 
123
123
  </div>
@@ -404,9 +404,9 @@ Your subclass of this class is a standalone object that will operate on a form.<
404
404
  </div>
405
405
 
406
406
  <div id="footer">
407
- Generated on Tue Sep 16 13:24:00 2025 by
407
+ Generated on Sun Nov 30 20:50:12 2025 by
408
408
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
409
- 0.9.37 (ruby-3.4.5).
409
+ 0.9.37 (ruby-3.4.6).
410
410
  </div>
411
411
 
412
412
  </div>
@@ -118,9 +118,9 @@ data integrity, use your databases constraints and other features.</p>
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Tue Sep 16 13:23:59 2025 by
121
+ Generated on Sun Nov 30 20:50:11 2025 by
122
122
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
- 0.9.37 (ruby-3.4.5).
123
+ 0.9.37 (ruby-3.4.6).
124
124
  </div>
125
125
 
126
126
  </div>
@@ -122,9 +122,9 @@ that than it is the front end.</p>
122
122
  </div>
123
123
 
124
124
  <div id="footer">
125
- Generated on Tue Sep 16 13:23:59 2025 by
125
+ Generated on Sun Nov 30 20:50:11 2025 by
126
126
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
127
- 0.9.37 (ruby-3.4.5).
127
+ 0.9.37 (ruby-3.4.6).
128
128
  </div>
129
129
 
130
130
  </div>
@@ -1591,9 +1591,9 @@ caused execution to be aborted.</p>
1591
1591
  </div>
1592
1592
 
1593
1593
  <div id="footer">
1594
- Generated on Tue Sep 16 13:23:59 2025 by
1594
+ Generated on Sun Nov 30 20:50:11 2025 by
1595
1595
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1596
- 0.9.37 (ruby-3.4.5).
1596
+ 0.9.37 (ruby-3.4.6).
1597
1597
  </div>
1598
1598
 
1599
1599
  </div>
@@ -481,9 +481,9 @@
481
481
  </div>
482
482
 
483
483
  <div id="footer">
484
- Generated on Tue Sep 16 13:23:59 2025 by
484
+ Generated on Sun Nov 30 20:50:11 2025 by
485
485
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
486
- 0.9.37 (ruby-3.4.5).
486
+ 0.9.37 (ruby-3.4.6).
487
487
  </div>
488
488
 
489
489
  </div>
@@ -254,9 +254,9 @@
254
254
  </div>
255
255
 
256
256
  <div id="footer">
257
- Generated on Tue Sep 16 13:24:00 2025 by
257
+ Generated on Sun Nov 30 20:50:12 2025 by
258
258
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
259
- 0.9.37 (ruby-3.4.5).
259
+ 0.9.37 (ruby-3.4.6).
260
260
  </div>
261
261
 
262
262
  </div>
@@ -296,9 +296,9 @@
296
296
  </div>
297
297
 
298
298
  <div id="footer">
299
- Generated on Tue Sep 16 13:24:00 2025 by
299
+ Generated on Sun Nov 30 20:50:12 2025 by
300
300
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
301
- 0.9.37 (ruby-3.4.5).
301
+ 0.9.37 (ruby-3.4.6).
302
302
  </div>
303
303
 
304
304
  </div>
@@ -239,7 +239,7 @@
239
239
  <span class='id identifier rubyid_src_dir'>src_dir</span> <span class='op'>=</span> <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_images_src_dir'>images_src_dir</span>
240
240
  <span class='id identifier rubyid_dest_dir'>dest_dir</span> <span class='op'>=</span> <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_images_root_dir'>images_root_dir</span>
241
241
 
242
- <span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rsync --archive --delete --verbose </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src_dir'>src_dir</span><span class='embexpr_end'>}</span><span class='tstring_content'>/ </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dest_dir'>dest_dir</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
242
+ <span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rsync --archive --delete --verbose \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src_dir'>src_dir</span><span class='embexpr_end'>}</span><span class='tstring_content'>/\&quot; \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dest_dir'>dest_dir</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span>
243
243
  <span class='id identifier rubyid_system!'>system!</span> <span class='id identifier rubyid_command'>command</span>
244
244
  <span class='kw'>end</span></pre>
245
245
  </td>
@@ -252,9 +252,9 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Tue Sep 16 13:24:00 2025 by
255
+ Generated on Sun Nov 30 20:50:12 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
- 0.9.37 (ruby-3.4.5).
257
+ 0.9.37 (ruby-3.4.6).
258
258
  </div>
259
259
 
260
260
  </div>
@@ -304,9 +304,9 @@
304
304
  </div>
305
305
 
306
306
  <div id="footer">
307
- Generated on Tue Sep 16 13:24:00 2025 by
307
+ Generated on Sun Nov 30 20:50:12 2025 by
308
308
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
309
- 0.9.37 (ruby-3.4.5).
309
+ 0.9.37 (ruby-3.4.6).
310
310
  </div>
311
311
 
312
312
  </div>
@@ -173,9 +173,9 @@
173
173
  </div>
174
174
 
175
175
  <div id="footer">
176
- Generated on Tue Sep 16 13:24:00 2025 by
176
+ Generated on Sun Nov 30 20:50:12 2025 by
177
177
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
178
- 0.9.37 (ruby-3.4.5).
178
+ 0.9.37 (ruby-3.4.6).
179
179
  </div>
180
180
 
181
181
  </div>
@@ -355,9 +355,9 @@
355
355
  </div>
356
356
 
357
357
  <div id="footer">
358
- Generated on Tue Sep 16 13:23:59 2025 by
358
+ Generated on Sun Nov 30 20:50:11 2025 by
359
359
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
360
- 0.9.37 (ruby-3.4.5).
360
+ 0.9.37 (ruby-3.4.6).
361
361
  </div>
362
362
 
363
363
  </div>
@@ -347,9 +347,9 @@
347
347
  </div>
348
348
 
349
349
  <div id="footer">
350
- Generated on Tue Sep 16 13:23:59 2025 by
350
+ Generated on Sun Nov 30 20:50:11 2025 by
351
351
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
352
- 0.9.37 (ruby-3.4.5).
352
+ 0.9.37 (ruby-3.4.6).
353
353
  </div>
354
354
 
355
355
  </div>
@@ -379,9 +379,9 @@
379
379
  </div>
380
380
 
381
381
  <div id="footer">
382
- Generated on Tue Sep 16 13:23:59 2025 by
382
+ Generated on Sun Nov 30 20:50:11 2025 by
383
383
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
384
- 0.9.37 (ruby-3.4.5).
384
+ 0.9.37 (ruby-3.4.6).
385
385
  </div>
386
386
 
387
387
  </div>
@@ -329,9 +329,9 @@
329
329
  </div>
330
330
 
331
331
  <div id="footer">
332
- Generated on Tue Sep 16 13:23:59 2025 by
332
+ Generated on Sun Nov 30 20:50:11 2025 by
333
333
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
334
- 0.9.37 (ruby-3.4.5).
334
+ 0.9.37 (ruby-3.4.6).
335
335
  </div>
336
336
 
337
337
  </div>
@@ -319,9 +319,9 @@
319
319
  </div>
320
320
 
321
321
  <div id="footer">
322
- Generated on Tue Sep 16 13:23:59 2025 by
322
+ Generated on Sun Nov 30 20:50:11 2025 by
323
323
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
324
- 0.9.37 (ruby-3.4.5).
324
+ 0.9.37 (ruby-3.4.6).
325
325
  </div>
326
326
 
327
327
  </div>
@@ -337,9 +337,9 @@
337
337
  </div>
338
338
 
339
339
  <div id="footer">
340
- Generated on Tue Sep 16 13:23:59 2025 by
340
+ Generated on Sun Nov 30 20:50:11 2025 by
341
341
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
342
- 0.9.37 (ruby-3.4.5).
342
+ 0.9.37 (ruby-3.4.6).
343
343
  </div>
344
344
 
345
345
  </div>
@@ -373,9 +373,9 @@
373
373
  </div>
374
374
 
375
375
  <div id="footer">
376
- Generated on Tue Sep 16 13:23:59 2025 by
376
+ Generated on Sun Nov 30 20:50:11 2025 by
377
377
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
378
- 0.9.37 (ruby-3.4.5).
378
+ 0.9.37 (ruby-3.4.6).
379
379
  </div>
380
380
 
381
381
  </div>
@@ -173,9 +173,9 @@
173
173
  </div>
174
174
 
175
175
  <div id="footer">
176
- Generated on Tue Sep 16 13:23:59 2025 by
176
+ Generated on Sun Nov 30 20:50:11 2025 by
177
177
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
178
- 0.9.37 (ruby-3.4.5).
178
+ 0.9.37 (ruby-3.4.6).
179
179
  </div>
180
180
 
181
181
  </div>
@@ -260,9 +260,9 @@
260
260
  </div>
261
261
 
262
262
  <div id="footer">
263
- Generated on Tue Sep 16 13:24:00 2025 by
263
+ Generated on Sun Nov 30 20:50:12 2025 by
264
264
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
265
- 0.9.37 (ruby-3.4.5).
265
+ 0.9.37 (ruby-3.4.6).
266
266
  </div>
267
267
 
268
268
  </div>
@@ -247,9 +247,9 @@
247
247
  </div>
248
248
 
249
249
  <div id="footer">
250
- Generated on Tue Sep 16 13:23:59 2025 by
250
+ Generated on Sun Nov 30 20:50:12 2025 by
251
251
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
252
- 0.9.37 (ruby-3.4.5).
252
+ 0.9.37 (ruby-3.4.6).
253
253
  </div>
254
254
 
255
255
  </div>
@@ -419,7 +419,8 @@
419
419
  170
420
420
  171
421
421
  172
422
- 173</pre>
422
+ 173
423
+ 174</pre>
423
424
  </td>
424
425
  <td>
425
426
  <pre class="code"><span class="info file"># File 'lib/brut/cli/apps/heroku_container_based_deploy.rb', line 33</span>
@@ -459,7 +460,7 @@
459
460
  <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Reading HerokuConfig:</span><span class='tstring_end'>&quot;</span></span>
460
461
  <span class='id identifier rubyid_require_relative'>require_relative</span> <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_project_root'>project_root</span> <span class='op'>/</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>deploy</span><span class='tstring_end'>&quot;</span></span> <span class='op'>/</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>heroku_config</span><span class='tstring_end'>&quot;</span></span>
461
462
 
462
- <span class='id identifier rubyid_additional_images'>additional_images</span> <span class='op'>=</span> <span class='const'>HerokuConfig</span><span class='period'>.</span><span class='id identifier rubyid_additional_images'>additional_images</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
463
+ <span class='id identifier rubyid_additional_images'>additional_images</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='const'>HerokuConfig</span><span class='period'>.</span><span class='id identifier rubyid_additional_images'>additional_images</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
463
464
  <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:cmd</span><span class='rparen'>)</span>
464
465
  <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> - </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> will run </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd'>cmd</span><span class='embexpr_end'>}</span><span class='tstring_content'> in production</span><span class='tstring_end'>&quot;</span></span>
465
466
  <span class='id identifier rubyid_image_name'>image_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>%{</span><span class='embexpr_beg'>#{</span><span class='ivar'>@organization</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@app_id</span><span class='embexpr_end'>}</span><span class='tstring_content'>:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_short_version'>short_version</span><span class='embexpr_end'>}</span><span class='tstring_content'>-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>}</span></span>
@@ -492,7 +493,8 @@
492
493
  <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> - release will run bin/release in production</span><span class='tstring_end'>&quot;</span></span>
493
494
 
494
495
  <span class='id identifier rubyid_local_repo_checks'>local_repo_checks</span><span class='period'>.</span><span class='id identifier rubyid_check!'>check!</span>
495
- <span class='id identifier rubyid_require_heroku_login!'>require_heroku_login!</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
496
+ <span class='id identifier rubyid_require_heroku_login!'>require_heroku_login!</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
497
+ <span class='id identifier rubyid_login_to_heroku_container_registry!'>login_to_heroku_container_registry!</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
496
498
 
497
499
  <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span> <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_project_root'>project_root</span> <span class='kw'>do</span>
498
500
 
@@ -554,7 +556,7 @@
554
556
  <span class='kw'>end</span>
555
557
 
556
558
  <span class='id identifier rubyid_names'>names</span> <span class='op'>=</span> <span class='id identifier rubyid_images'>images</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:first</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</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>
557
- <span class='id identifier rubyid_deploy_command'>deploy_command</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>heroku container:release </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_names'>names</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
559
+ <span class='id identifier rubyid_deploy_command'>deploy_command</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>heroku container:release </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_names'>names</span><span class='embexpr_end'>}</span><span class='tstring_content'> -a </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_heroku_app_name'>heroku_app_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
558
560
  <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_deploy?'>deploy?</span>
559
561
  <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Deploying images to Heroku</span><span class='tstring_end'>&quot;</span></span>
560
562
  <span class='id identifier rubyid_system!'>system!</span><span class='lparen'>(</span><span class='id identifier rubyid_deploy_command'>deploy_command</span><span class='rparen'>)</span>
@@ -575,9 +577,9 @@
575
577
  </div>
576
578
 
577
579
  <div id="footer">
578
- Generated on Tue Sep 16 13:24:00 2025 by
580
+ Generated on Sun Nov 30 20:50:12 2025 by
579
581
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
580
- 0.9.37 (ruby-3.4.5).
582
+ 0.9.37 (ruby-3.4.6).
581
583
  </div>
582
584
 
583
585
  </div>
@@ -186,9 +186,9 @@
186
186
  </div>
187
187
 
188
188
  <div id="footer">
189
- Generated on Tue Sep 16 13:24:00 2025 by
189
+ Generated on Sun Nov 30 20:50:12 2025 by
190
190
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
191
- 0.9.37 (ruby-3.4.5).
191
+ 0.9.37 (ruby-3.4.6).
192
192
  </div>
193
193
 
194
194
  </div>
@@ -293,9 +293,9 @@
293
293
  </div>
294
294
 
295
295
  <div id="footer">
296
- Generated on Tue Sep 16 13:23:59 2025 by
296
+ Generated on Sun Nov 30 20:50:11 2025 by
297
297
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
298
- 0.9.37 (ruby-3.4.5).
298
+ 0.9.37 (ruby-3.4.6).
299
299
  </div>
300
300
 
301
301
  </div>
@@ -498,9 +498,9 @@ end</span><span class='tstring_end'>}</span></span>
498
498
  </div>
499
499
 
500
500
  <div id="footer">
501
- Generated on Tue Sep 16 13:23:59 2025 by
501
+ Generated on Sun Nov 30 20:50:11 2025 by
502
502
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
503
- 0.9.37 (ruby-3.4.5).
503
+ 0.9.37 (ruby-3.4.6).
504
504
  </div>
505
505
 
506
506
  </div>
@@ -388,9 +388,9 @@ end</span><span class='tstring_end'>}</span></span>
388
388
  </div>
389
389
 
390
390
  <div id="footer">
391
- Generated on Tue Sep 16 13:23:59 2025 by
391
+ Generated on Sun Nov 30 20:50:11 2025 by
392
392
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
393
- 0.9.37 (ruby-3.4.5).
393
+ 0.9.37 (ruby-3.4.6).
394
394
  </div>
395
395
 
396
396
  </div>
@@ -364,9 +364,9 @@ assert.fail(&quot;test goes here&quot;)
364
364
  </div>
365
365
 
366
366
  <div id="footer">
367
- Generated on Tue Sep 16 13:23:59 2025 by
367
+ Generated on Sun Nov 30 20:50:11 2025 by
368
368
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
369
- 0.9.37 (ruby-3.4.5).
369
+ 0.9.37 (ruby-3.4.6).
370
370
  </div>
371
371
 
372
372
  </div>
@@ -374,9 +374,9 @@ end
374
374
  </div>
375
375
 
376
376
  <div id="footer">
377
- Generated on Tue Sep 16 13:23:59 2025 by
377
+ Generated on Sun Nov 30 20:50:11 2025 by
378
378
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
379
- 0.9.37 (ruby-3.4.5).
379
+ 0.9.37 (ruby-3.4.6).
380
380
  </div>
381
381
 
382
382
  </div>
@@ -400,9 +400,9 @@ end</span><span class='tstring_end'>}</span></span>
400
400
  </div>
401
401
 
402
402
  <div id="footer">
403
- Generated on Tue Sep 16 13:23:59 2025 by
403
+ Generated on Sun Nov 30 20:50:11 2025 by
404
404
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
405
- 0.9.37 (ruby-3.4.5).
405
+ 0.9.37 (ruby-3.4.6).
406
406
  </div>
407
407
 
408
408
  </div>
@@ -252,9 +252,9 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Tue Sep 16 13:23:59 2025 by
255
+ Generated on Sun Nov 30 20:50:11 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
- 0.9.37 (ruby-3.4.5).
257
+ 0.9.37 (ruby-3.4.6).
258
258
  </div>
259
259
 
260
260
  </div>
@@ -293,9 +293,9 @@
293
293
  </div>
294
294
 
295
295
  <div id="footer">
296
- Generated on Tue Sep 16 13:23:59 2025 by
296
+ Generated on Sun Nov 30 20:50:11 2025 by
297
297
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
298
- 0.9.37 (ruby-3.4.5).
298
+ 0.9.37 (ruby-3.4.6).
299
299
  </div>
300
300
 
301
301
  </div>
@@ -470,9 +470,9 @@ end</span><span class='tstring_end'>}</span></span>
470
470
  </div>
471
471
 
472
472
  <div id="footer">
473
- Generated on Tue Sep 16 13:23:59 2025 by
473
+ Generated on Sun Nov 30 20:50:11 2025 by
474
474
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
475
- 0.9.37 (ruby-3.4.5).
475
+ 0.9.37 (ruby-3.4.6).
476
476
  </div>
477
477
 
478
478
  </div>
@@ -440,9 +440,9 @@
440
440
  </div>
441
441
 
442
442
  <div id="footer">
443
- Generated on Tue Sep 16 13:23:59 2025 by
443
+ Generated on Sun Nov 30 20:50:11 2025 by
444
444
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
445
- 0.9.37 (ruby-3.4.5).
445
+ 0.9.37 (ruby-3.4.6).
446
446
  </div>
447
447
 
448
448
  </div>
@@ -370,9 +370,9 @@ end</span><span class='tstring_end'>}</span></span>
370
370
  </div>
371
371
 
372
372
  <div id="footer">
373
- Generated on Tue Sep 16 13:23:59 2025 by
373
+ Generated on Sun Nov 30 20:50:11 2025 by
374
374
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
375
- 0.9.37 (ruby-3.4.5).
375
+ 0.9.37 (ruby-3.4.6).
376
376
  </div>
377
377
 
378
378
  </div>
@@ -243,9 +243,9 @@
243
243
  </div>
244
244
 
245
245
  <div id="footer">
246
- Generated on Tue Sep 16 13:23:59 2025 by
246
+ Generated on Sun Nov 30 20:50:11 2025 by
247
247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
248
- 0.9.37 (ruby-3.4.5).
248
+ 0.9.37 (ruby-3.4.6).
249
249
  </div>
250
250
 
251
251
  </div>