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
@@ -603,7 +603,7 @@ that <code>key</code> should not be a key used for client-side validations.</p>
603
603
  </div>
604
604
 
605
605
  <div id="footer">
606
- Generated on Wed Jun 25 22:57:20 2025 by
606
+ Generated on Wed Jul 2 21:45:27 2025 by
607
607
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
608
608
  0.9.37 (ruby-3.4.4).
609
609
  </div>
@@ -572,7 +572,7 @@ such as implementing a <span class='object_link'><a href="../../BackEnd/Validato
572
572
  </div>
573
573
 
574
574
  <div id="footer">
575
- Generated on Wed Jun 25 22:57:21 2025 by
575
+ Generated on Wed Jul 2 21:45:28 2025 by
576
576
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
577
577
  0.9.37 (ruby-3.4.4).
578
578
  </div>
@@ -111,6 +111,11 @@ constraint violations to create an entire picture of all constraints violated by
111
111
  In a sense, this is a wrapper for one or more <span class='object_link'><a href="ConstraintViolation.html" title="Brut::FrontEnd::Forms::ConstraintViolation (class)">ConstraintViolation</a></span> instances in the
112
112
  context of an input.</p>
113
113
 
114
+ <p>This class also holds the logic related to client- vs. server-side constraint
115
+ violations. As such, <span class='object_link'><a href="#KEYS-constant" title="Brut::FrontEnd::Forms::ValidityState::KEYS (constant)">KEYS</a></span> is the list of known client-side
116
+ constraint violation keys, as defined by browser's <code>ValidityState</code> class. These
117
+ are left as camel-case to make this clear.</p>
118
+
114
119
 
115
120
  </div>
116
121
  </div>
@@ -125,6 +130,51 @@ context of an input.</p>
125
130
  </ul>
126
131
 
127
132
  </div>
133
+
134
+ <h2>
135
+ Constant Summary
136
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
137
+ </h2>
138
+
139
+ <dl class="constants">
140
+
141
+ <dt id="KEYS-constant" class="">KEYS =
142
+ <div class="docstring">
143
+ <div class="discussion">
144
+ <p>These are the attributes of the browser's <code>ValidityState</code>'s properties.
145
+ They are left as camel-case to clearly indicate they come from the browser.</p>
146
+
147
+
148
+ </div>
149
+ </div>
150
+ <div class="tags">
151
+
152
+
153
+ <p class="tag_title">See Also:</p>
154
+ <ul class="see">
155
+
156
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/ValidityState" target="_parent" title="https://developer.mozilla.org/en-US/docs/Web/API/ValidityState">https://developer.mozilla.org/en-US/docs/Web/API/ValidityState</a></li>
157
+
158
+ </ul>
159
+
160
+ </div>
161
+ </dt>
162
+ <dd><pre class="code"><span class='lbracket'>[</span>
163
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>badInput</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
164
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>customError</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
165
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>patternMismatch</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
166
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rangeOverflow</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
167
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rangeUnderflow</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
168
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>stepMismatch</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
169
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tooLong</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
170
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tooShort</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
171
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>typeMismatch</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
172
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>valueMissing</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
173
+ <span class='rbracket'>]</span></pre></dd>
174
+
175
+ </dl>
176
+
177
+
128
178
 
129
179
 
130
180
 
@@ -311,18 +361,18 @@ context of an input.</p>
311
361
  <pre class="lines">
312
362
 
313
363
 
314
- 14
315
- 15
316
- 16
317
- 17
318
- 18
319
364
  19
320
365
  20
321
366
  21
322
- 22</pre>
367
+ 22
368
+ 23
369
+ 24
370
+ 25
371
+ 26
372
+ 27</pre>
323
373
  </td>
324
374
  <td>
325
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 14</span>
375
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 19</span>
326
376
 
327
377
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_constraint_violations'>constraint_violations</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
328
378
  <span class='ivar'>@constraint_violations</span> <span class='op'>=</span> <span class='id identifier rubyid_constraint_violations'>constraint_violations</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_key'>key</span><span class='comma'>,</span><span class='id identifier rubyid_is_violation'>is_violation</span><span class='op'>|</span>
@@ -383,10 +433,10 @@ context of an input.</p>
383
433
  <pre class="lines">
384
434
 
385
435
 
386
- 28</pre>
436
+ 33</pre>
387
437
  </td>
388
438
  <td>
389
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 28</span>
439
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 33</span>
390
440
 
391
441
  <span class='kw'>def</span> <span class='id identifier rubyid_constraint_violations?'>constraint_violations?</span> <span class='op'>=</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span></pre>
392
442
  </td>
@@ -451,14 +501,14 @@ context of an input.</p>
451
501
  <pre class="lines">
452
502
 
453
503
 
454
- 43
455
- 44
456
- 45
457
- 46
458
- 47</pre>
504
+ 48
505
+ 49
506
+ 50
507
+ 51
508
+ 52</pre>
459
509
  </td>
460
510
  <td>
461
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 43</span>
511
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 48</span>
462
512
 
463
513
  <span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
464
514
  <span class='ivar'>@constraint_violations</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_constraint'>constraint</span><span class='op'>|</span>
@@ -530,12 +580,12 @@ on your use-case.</p>
530
580
  <pre class="lines">
531
581
 
532
582
 
533
- 35
534
- 36
535
- 37</pre>
583
+ 40
584
+ 41
585
+ 42</pre>
536
586
  </td>
537
587
  <td>
538
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 35</span>
588
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 40</span>
539
589
 
540
590
  <span class='kw'>def</span> <span class='id identifier rubyid_server_side_constraint_violation'>server_side_constraint_violation</span><span class='lparen'>(</span><span class='label'>key:</span><span class='comma'>,</span><span class='label'>context:</span><span class='rparen'>)</span>
541
591
  <span class='ivar'>@constraint_violations</span> <span class='op'>&lt;&lt;</span> <span class='const'><span class='object_link'><a href="../../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../FrontEnd.html" title="Brut::FrontEnd (module)">FrontEnd</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Forms.html" title="Brut::FrontEnd::Forms (module)">Forms</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ConstraintViolation.html" title="Brut::FrontEnd::Forms::ConstraintViolation (class)">ConstraintViolation</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ConstraintViolation.html#initialize-instance_method" title="Brut::FrontEnd::Forms::ConstraintViolation#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>key:</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='label'>context:</span> <span class='id identifier rubyid_context'>context</span><span class='comma'>,</span> <span class='label'>server_side:</span> <span class='kw'>true</span><span class='rparen'>)</span>
@@ -583,10 +633,10 @@ on your use-case.</p>
583
633
  <pre class="lines">
584
634
 
585
635
 
586
- 25</pre>
636
+ 30</pre>
587
637
  </td>
588
638
  <td>
589
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 25</span>
639
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/validity_state.rb', line 30</span>
590
640
 
591
641
  <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span> <span class='op'>=</span> <span class='ivar'>@constraint_violations</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span></pre>
592
642
  </td>
@@ -599,7 +649,7 @@ on your use-case.</p>
599
649
  </div>
600
650
 
601
651
  <div id="footer">
602
- Generated on Wed Jun 25 22:57:21 2025 by
652
+ Generated on Wed Jul 2 21:45:28 2025 by
603
653
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
604
654
  0.9.37 (ruby-3.4.4).
605
655
  </div>
@@ -117,7 +117,7 @@
117
117
  </div>
118
118
 
119
119
  <div id="footer">
120
- Generated on Wed Jun 25 22:57:19 2025 by
120
+ Generated on Wed Jul 2 21:45:26 2025 by
121
121
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
122
122
  0.9.37 (ruby-3.4.4).
123
123
  </div>
@@ -367,7 +367,7 @@ something that responds to <code>each</code>.</p>
367
367
  </div>
368
368
 
369
369
  <div id="footer">
370
- Generated on Wed Jun 25 22:57:20 2025 by
370
+ Generated on Wed Jul 2 21:45:27 2025 by
371
371
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
372
372
  0.9.37 (ruby-3.4.4).
373
373
  </div>
@@ -432,7 +432,7 @@ returns is returned here.</p>
432
432
  </div>
433
433
 
434
434
  <div id="footer">
435
- Generated on Wed Jun 25 22:57:20 2025 by
435
+ Generated on Wed Jul 2 21:45:27 2025 by
436
436
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
437
437
  0.9.37 (ruby-3.4.4).
438
438
  </div>
@@ -308,7 +308,7 @@ configured in <span class='object_link'><a href="../RouteHooks/CSPNoInlineStyles
308
308
  </div>
309
309
 
310
310
  <div id="footer">
311
- Generated on Wed Jun 25 22:57:21 2025 by
311
+ Generated on Wed Jul 2 21:45:28 2025 by
312
312
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
313
313
  0.9.37 (ruby-3.4.4).
314
314
  </div>
@@ -326,7 +326,7 @@
326
326
  </div>
327
327
 
328
328
  <div id="footer">
329
- Generated on Wed Jun 25 22:57:21 2025 by
329
+ Generated on Wed Jul 2 21:45:28 2025 by
330
330
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
331
331
  0.9.37 (ruby-3.4.4).
332
332
  </div>
@@ -389,7 +389,7 @@
389
389
  </div>
390
390
 
391
391
  <div id="footer">
392
- Generated on Wed Jun 25 22:57:21 2025 by
392
+ Generated on Wed Jul 2 21:45:28 2025 by
393
393
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
394
394
  0.9.37 (ruby-3.4.4).
395
395
  </div>
@@ -344,7 +344,7 @@ the app.</p>
344
344
  </div>
345
345
 
346
346
  <div id="footer">
347
- Generated on Wed Jun 25 22:57:21 2025 by
347
+ Generated on Wed Jul 2 21:45:28 2025 by
348
348
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
349
349
  0.9.37 (ruby-3.4.4).
350
350
  </div>
@@ -141,7 +141,7 @@
141
141
  </div>
142
142
 
143
143
  <div id="footer">
144
- Generated on Wed Jun 25 22:57:21 2025 by
144
+ Generated on Wed Jul 2 21:45:28 2025 by
145
145
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
146
146
  0.9.37 (ruby-3.4.4).
147
147
  </div>
@@ -305,7 +305,7 @@
305
305
  </div>
306
306
 
307
307
  <div id="footer">
308
- Generated on Wed Jun 25 22:57:21 2025 by
308
+ Generated on Wed Jul 2 21:45:28 2025 by
309
309
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
310
  0.9.37 (ruby-3.4.4).
311
311
  </div>
@@ -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>
@@ -329,7 +329,7 @@ redirect to a non-GET.</p>
329
329
  </div>
330
330
 
331
331
  <div id="footer">
332
- Generated on Wed Jun 25 22:57:19 2025 by
332
+ Generated on Wed Jul 2 21:45:27 2025 by
333
333
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
334
334
  0.9.37 (ruby-3.4.4).
335
335
  </div>
@@ -651,7 +651,7 @@
651
651
  </div>
652
652
 
653
653
  <div id="footer">
654
- Generated on Wed Jun 25 22:57:20 2025 by
654
+ Generated on Wed Jul 2 21:45:27 2025 by
655
655
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
656
656
  0.9.37 (ruby-3.4.4).
657
657
  </div>
@@ -486,7 +486,7 @@ considered a valid HTTP status code</p>
486
486
  </div>
487
487
 
488
488
  <div id="footer">
489
- Generated on Wed Jun 25 22:57:20 2025 by
489
+ Generated on Wed Jul 2 21:45:27 2025 by
490
490
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
491
491
  0.9.37 (ruby-3.4.4).
492
492
  </div>
@@ -274,7 +274,7 @@
274
274
  </div>
275
275
 
276
276
  <div id="footer">
277
- Generated on Wed Jun 25 22:57:20 2025 by
277
+ Generated on Wed Jul 2 21:45:28 2025 by
278
278
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
279
279
  0.9.37 (ruby-3.4.4).
280
280
  </div>
@@ -308,7 +308,7 @@ inserted into the filename.</p>
308
308
  </div>
309
309
 
310
310
  <div id="footer">
311
- Generated on Wed Jun 25 22:57:20 2025 by
311
+ Generated on Wed Jul 2 21:45:27 2025 by
312
312
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
313
313
  0.9.37 (ruby-3.4.4).
314
314
  </div>
@@ -125,7 +125,7 @@
125
125
  </div>
126
126
 
127
127
  <div id="footer">
128
- Generated on Wed Jun 25 22:57:20 2025 by
128
+ Generated on Wed Jul 2 21:45:27 2025 by
129
129
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
130
130
  0.9.37 (ruby-3.4.4).
131
131
  </div>
@@ -278,7 +278,7 @@ represents one that Brut is managing.</p>
278
278
  </div>
279
279
 
280
280
  <div id="footer">
281
- Generated on Wed Jun 25 22:57:21 2025 by
281
+ Generated on Wed Jul 2 21:45:28 2025 by
282
282
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
283
283
  0.9.37 (ruby-3.4.4).
284
284
  </div>
@@ -282,7 +282,7 @@
282
282
  </div>
283
283
 
284
284
  <div id="footer">
285
- Generated on Wed Jun 25 22:57:21 2025 by
285
+ Generated on Wed Jul 2 21:45:28 2025 by
286
286
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
287
287
  0.9.37 (ruby-3.4.4).
288
288
  </div>
@@ -314,7 +314,7 @@
314
314
  </div>
315
315
 
316
316
  <div id="footer">
317
- Generated on Wed Jun 25 22:57:21 2025 by
317
+ Generated on Wed Jul 2 21:45:28 2025 by
318
318
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
319
319
  0.9.37 (ruby-3.4.4).
320
320
  </div>
@@ -305,7 +305,9 @@
305
305
  45
306
306
  46
307
307
  47
308
- 48</pre>
308
+ 48
309
+ 49
310
+ 50</pre>
309
311
  </td>
310
312
  <td>
311
313
  <pre class="code"><span class="info file"># File 'lib/brut/front_end/middlewares/reload_app.rb', line 7</span>
@@ -334,6 +336,8 @@
334
336
  <span class='id identifier rubyid_span'>span</span><span class='period'>.</span><span class='id identifier rubyid_add_event'>add_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Routing reloaded</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
335
337
  <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_asset_path_resolver'>asset_path_resolver</span><span class='period'>.</span><span class='id identifier rubyid_reload'>reload</span>
336
338
  <span class='id identifier rubyid_span'>span</span><span class='period'>.</span><span class='id identifier rubyid_add_event'>add_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Asset Path Resolver reloaded</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
339
+ <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_reload'>reload</span>
340
+ <span class='id identifier rubyid_span'>span</span><span class='period'>.</span><span class='id identifier rubyid_add_event'>add_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Brut.container reloaded</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
337
341
  <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_reload!'>reload!</span>
338
342
  <span class='id identifier rubyid_span'>span</span><span class='period'>.</span><span class='id identifier rubyid_add_event'>add_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>I18n reloaded</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
339
343
  <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ex'>ex</span>
@@ -362,7 +366,7 @@
362
366
  </div>
363
367
 
364
368
  <div id="footer">
365
- Generated on Wed Jun 25 22:57:21 2025 by
369
+ Generated on Wed Jul 2 21:45:28 2025 by
366
370
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
367
371
  0.9.37 (ruby-3.4.4).
368
372
  </div>
@@ -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>
@@ -763,7 +763,7 @@ inside.</p>
763
763
  </div>
764
764
 
765
765
  <div id="footer">
766
- Generated on Wed Jun 25 22:57:20 2025 by
766
+ Generated on Wed Jul 2 21:45:27 2025 by
767
767
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
768
768
  0.9.37 (ruby-3.4.4).
769
769
  </div>
@@ -787,7 +787,7 @@ next steps to take.</p>
787
787
  </div>
788
788
 
789
789
  <div id="footer">
790
- Generated on Wed Jun 25 22:57:20 2025 by
790
+ Generated on Wed Jul 2 21:45:28 2025 by
791
791
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
792
792
  0.9.37 (ruby-3.4.4).
793
793
  </div>
@@ -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>
@@ -1302,7 +1302,7 @@ not present in this <code>RequestContext</code>.</p>
1302
1302
  </div>
1303
1303
 
1304
1304
  <div id="footer">
1305
- Generated on Wed Jun 25 22:57:20 2025 by
1305
+ Generated on Wed Jul 2 21:45:27 2025 by
1306
1306
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1307
1307
  0.9.37 (ruby-3.4.4).
1308
1308
  </div>
@@ -414,7 +414,7 @@ determine what information is avaiable.</p>
414
414
  </div>
415
415
 
416
416
  <div id="footer">
417
- Generated on Wed Jun 25 22:57:20 2025 by
417
+ Generated on Wed Jul 2 21:45:27 2025 by
418
418
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
419
419
  0.9.37 (ruby-3.4.4).
420
420
  </div>
@@ -232,7 +232,7 @@
232
232
  </div>
233
233
 
234
234
  <div id="footer">
235
- Generated on Wed Jun 25 22:57:21 2025 by
235
+ Generated on Wed Jul 2 21:45:28 2025 by
236
236
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
237
237
  0.9.37 (ruby-3.4.4).
238
238
  </div>
@@ -239,7 +239,7 @@ by the temporary use of inline styles.</p>
239
239
  </div>
240
240
 
241
241
  <div id="footer">
242
- Generated on Wed Jun 25 22:57:21 2025 by
242
+ Generated on Wed Jul 2 21:45:28 2025 by
243
243
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
244
244
  0.9.37 (ruby-3.4.4).
245
245
  </div>
@@ -254,7 +254,7 @@ This is useful for existing apps where you want to migrate to a more secure poli
254
254
  </div>
255
255
 
256
256
  <div id="footer">
257
- Generated on Wed Jun 25 22:57:21 2025 by
257
+ Generated on Wed Jul 2 21:45:28 2025 by
258
258
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
259
259
  0.9.37 (ruby-3.4.4).
260
260
  </div>
@@ -251,7 +251,7 @@
251
251
  </div>
252
252
 
253
253
  <div id="footer">
254
- Generated on Wed Jun 25 22:57:21 2025 by
254
+ Generated on Wed Jul 2 21:45:28 2025 by
255
255
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
256
256
  0.9.37 (ruby-3.4.4).
257
257
  </div>
@@ -274,7 +274,7 @@ Ruby's <code>I18n</code> to use it. This will also store the value in the sessi
274
274
  </div>
275
275
 
276
276
  <div id="footer">
277
- Generated on Wed Jun 25 22:57:21 2025 by
277
+ Generated on Wed Jul 2 21:45:28 2025 by
278
278
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
279
279
  0.9.37 (ruby-3.4.4).
280
280
  </div>
@@ -242,7 +242,7 @@ and strings provided by Rack.</p>
242
242
  </div>
243
243
 
244
244
  <div id="footer">
245
- Generated on Wed Jun 25 22:57:21 2025 by
245
+ Generated on Wed Jul 2 21:45:28 2025 by
246
246
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
247
247
  0.9.37 (ruby-3.4.4).
248
248
  </div>
@@ -105,7 +105,7 @@
105
105
  </div>
106
106
 
107
107
  <div id="footer">
108
- Generated on Wed Jun 25 22:57:19 2025 by
108
+ Generated on Wed Jul 2 21:45:26 2025 by
109
109
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
110
  0.9.37 (ruby-3.4.4).
111
111
  </div>
@@ -217,7 +217,7 @@
217
217
  </div>
218
218
 
219
219
  <div id="footer">
220
- Generated on Wed Jun 25 22:57:20 2025 by
220
+ Generated on Wed Jul 2 21:45:27 2025 by
221
221
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
222
222
  0.9.37 (ruby-3.4.4).
223
223
  </div>
@@ -295,7 +295,7 @@
295
295
  </div>
296
296
 
297
297
  <div id="footer">
298
- Generated on Wed Jun 25 22:57:20 2025 by
298
+ Generated on Wed Jul 2 21:45:27 2025 by
299
299
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
300
300
  0.9.37 (ruby-3.4.4).
301
301
  </div>
@@ -314,7 +314,7 @@
314
314
  </div>
315
315
 
316
316
  <div id="footer">
317
- Generated on Wed Jun 25 22:57:20 2025 by
317
+ Generated on Wed Jul 2 21:45:27 2025 by
318
318
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
319
319
  0.9.37 (ruby-3.4.4).
320
320
  </div>
@@ -309,7 +309,7 @@
309
309
  </div>
310
310
 
311
311
  <div id="footer">
312
- Generated on Wed Jun 25 22:57:20 2025 by
312
+ Generated on Wed Jul 2 21:45:27 2025 by
313
313
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
314
314
  0.9.37 (ruby-3.4.4).
315
315
  </div>
@@ -305,7 +305,7 @@
305
305
  </div>
306
306
 
307
307
  <div id="footer">
308
- Generated on Wed Jun 25 22:57:20 2025 by
308
+ Generated on Wed Jul 2 21:45:27 2025 by
309
309
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
310
  0.9.37 (ruby-3.4.4).
311
311
  </div>
@@ -305,7 +305,7 @@
305
305
  </div>
306
306
 
307
307
  <div id="footer">
308
- Generated on Wed Jun 25 22:57:20 2025 by
308
+ Generated on Wed Jul 2 21:45:27 2025 by
309
309
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
310
  0.9.37 (ruby-3.4.4).
311
311
  </div>