brut 0.1.0 → 0.2.1

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 (376) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +1 -1
  4. data/brutrb.com/.vitepress/config.mjs +4 -2
  5. data/brutrb.com/.vitepress/theme/style.css +16 -38
  6. data/brutrb.com/adrs.md +15 -0
  7. data/brutrb.com/dev-environment.md +6 -1
  8. data/brutrb.com/doc-conventions.md +1 -2
  9. data/brutrb.com/images/DevEnvironment.graffle +0 -0
  10. data/brutrb.com/images/DevEnvironment.png +0 -0
  11. data/brutrb.com/index.md +0 -3
  12. data/brutrb.com/overview.md +2 -2
  13. data/brutrb.com/roadmap.md +57 -0
  14. data/brutrb.com/tutorial.md +5 -1
  15. data/docs/404.html +4 -4
  16. data/docs/{not-released.html → adrs.html} +8 -8
  17. data/docs/ai.html +6 -6
  18. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  19. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  20. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  21. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  22. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  23. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  24. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  25. data/docs/api/Brut/BackEnd.html +1 -1
  26. data/docs/api/Brut/CLI/App.html +1 -1
  27. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  29. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  31. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  32. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  35. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +3 -3
  48. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  53. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Test/JS.html +6 -6
  59. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  60. data/docs/api/Brut/CLI/Apps/Test.html +2 -2
  61. data/docs/api/Brut/CLI/Apps.html +1 -1
  62. data/docs/api/Brut/CLI/Command.html +3 -3
  63. data/docs/api/Brut/CLI/Error.html +1 -1
  64. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  65. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  66. data/docs/api/Brut/CLI/Executor.html +1 -1
  67. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  68. data/docs/api/Brut/CLI/Options.html +1 -1
  69. data/docs/api/Brut/CLI/Output.html +1 -1
  70. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  71. data/docs/api/Brut/CLI.html +1 -1
  72. data/docs/api/Brut/FactoryBot.html +1 -1
  73. data/docs/api/Brut/Framework/App.html +1 -1
  74. data/docs/api/Brut/Framework/Config.html +1 -1
  75. data/docs/api/Brut/Framework/Container.html +1 -1
  76. data/docs/api/Brut/Framework/Error.html +1 -1
  77. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  81. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  82. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  83. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  84. data/docs/api/Brut/Framework/Errors.html +1 -1
  85. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  86. data/docs/api/Brut/Framework/MCP.html +1 -1
  87. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  88. data/docs/api/Brut/Framework.html +1 -1
  89. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  91. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  95. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +3 -3
  100. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  122. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  131. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  132. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  133. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  134. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +2 -2
  144. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  145. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  146. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  147. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  148. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  149. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  150. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  151. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  155. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  156. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  159. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  164. data/docs/api/Brut/FrontEnd.html +1 -1
  165. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  166. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  167. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  168. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  169. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  170. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  171. data/docs/api/Brut/I18n.html +1 -1
  172. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  173. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  174. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  175. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  176. data/docs/api/Brut/Instrumentation.html +1 -1
  177. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  178. data/docs/api/Brut/SinatraHelpers.html +1 -1
  179. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  180. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  181. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  182. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  183. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  184. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  185. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  186. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  187. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  188. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  189. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  190. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  191. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  192. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  193. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  194. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  195. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  196. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  200. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  201. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  202. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  203. data/docs/api/Brut/SpecSupport.html +1 -1
  204. data/docs/api/Brut.html +1 -1
  205. data/docs/api/Clock.html +1 -1
  206. data/docs/api/RichString.html +150 -343
  207. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  208. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  209. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  210. data/docs/api/Sequel/Extensions.html +1 -1
  211. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  212. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  213. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  214. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  215. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  216. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  217. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  218. data/docs/api/Sequel/Plugins.html +1 -1
  219. data/docs/api/Sequel.html +1 -1
  220. data/docs/api/_index.html +5 -5
  221. data/docs/api/class_list.html +1 -1
  222. data/docs/api/file.README.html +1 -1
  223. data/docs/api/index.html +1 -1
  224. data/docs/api/method_list.html +281 -313
  225. data/docs/api/top-level-namespace.html +1 -1
  226. data/docs/assets/DevEnvironment.DaFcVfwP.png +0 -0
  227. data/docs/assets/adrs.md.JRxZ5uYE.js +1 -0
  228. data/docs/assets/adrs.md.JRxZ5uYE.lean.js +1 -0
  229. data/docs/assets/{app.ClaS47Ru.js → app.Dm3x-DQc.js} +1 -1
  230. data/docs/assets/chunks/@localSearchIndexroot.BqRrkR00.js +1 -0
  231. data/docs/assets/chunks/{VPLocalSearchBox.DtgDfde2.js → VPLocalSearchBox.DL6bnqee.js} +1 -1
  232. data/docs/assets/chunks/{theme.B45bvibT.js → theme.BXdlf6e8.js} +2 -2
  233. data/docs/assets/{components.md.DatoNgFo.js → components.md.Pg_Lo35G.js} +3 -3
  234. data/docs/assets/{configuration.md.DeyhpqEx.js → configuration.md.BfeGnEci.js} +1 -1
  235. data/docs/assets/dev-environment.md.Dy6EldaM.js +16 -0
  236. data/docs/assets/dev-environment.md.Dy6EldaM.lean.js +1 -0
  237. data/docs/assets/doc-conventions.md.DOkAuXlt.js +1 -0
  238. data/docs/assets/{forms.md.C2Dizvzq.js → forms.md.BQZlCwvi.js} +1 -1
  239. data/docs/assets/{getting-started.md.C93e0odB.js → getting-started.md.BcXnNuD6.js} +2 -2
  240. data/docs/assets/index.md.Bn9e0sRJ.js +1 -0
  241. data/docs/assets/index.md.Bn9e0sRJ.lean.js +1 -0
  242. data/docs/assets/{overview.md.Bdq4qt3L.js → overview.md.iMnwLO4x.js} +1 -1
  243. data/docs/assets/roadmap.md.C6PRi0DX.js +1 -0
  244. data/docs/assets/roadmap.md.C6PRi0DX.lean.js +1 -0
  245. data/docs/assets/{style.prAgp4yQ.css → style.B1z60PPQ.css} +1 -1
  246. data/docs/assets/tutorial.md.BYXj4cOu.js +1 -0
  247. data/docs/assets/tutorial.md.BYXj4cOu.lean.js +1 -0
  248. data/docs/assets.html +6 -6
  249. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  250. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  251. data/docs/brut-js/api/Autosubmit.html +1 -1
  252. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  253. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  254. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  255. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  256. data/docs/brut-js/api/BufferedLogger.html +1 -1
  257. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  258. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  259. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  260. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  261. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  262. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  263. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  264. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  265. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  266. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  267. data/docs/brut-js/api/Form.html +1 -1
  268. data/docs/brut-js/api/Form.js.html +1 -1
  269. data/docs/brut-js/api/I18nTranslation.html +1 -1
  270. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  271. data/docs/brut-js/api/LocaleDetection.html +1 -1
  272. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  273. data/docs/brut-js/api/Logger.html +1 -1
  274. data/docs/brut-js/api/Logger.js.html +1 -1
  275. data/docs/brut-js/api/Message.html +1 -1
  276. data/docs/brut-js/api/Message.js.html +1 -1
  277. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  278. data/docs/brut-js/api/RichString.html +1 -1
  279. data/docs/brut-js/api/RichString.js.html +1 -1
  280. data/docs/brut-js/api/Tabs.html +1 -1
  281. data/docs/brut-js/api/Tabs.js.html +1 -1
  282. data/docs/brut-js/api/Tracing.html +1 -1
  283. data/docs/brut-js/api/Tracing.js.html +1 -1
  284. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  285. data/docs/brut-js/api/external-Performance.html +1 -1
  286. data/docs/brut-js/api/external-Promise.html +1 -1
  287. data/docs/brut-js/api/external-ValidityState.html +1 -1
  288. data/docs/brut-js/api/external-Window.html +1 -1
  289. data/docs/brut-js/api/external-fetch.html +1 -1
  290. data/docs/brut-js/api/global.html +1 -1
  291. data/docs/brut-js/api/index.html +1 -1
  292. data/docs/brut-js/api/index.js.html +1 -1
  293. data/docs/brut-js/api/module-testing.html +1 -1
  294. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  295. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  296. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  297. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  298. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  299. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  300. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  301. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  302. data/docs/brut-js/api/testing_index.js.html +1 -1
  303. data/docs/brut-js.html +6 -6
  304. data/docs/business-logic.html +6 -6
  305. data/docs/cli.html +6 -6
  306. data/docs/components.html +10 -10
  307. data/docs/configuration.html +7 -7
  308. data/docs/css.html +6 -6
  309. data/docs/custom-element-tests.html +6 -6
  310. data/docs/database-access.html +6 -6
  311. data/docs/database-schema.html +6 -6
  312. data/docs/deployment.html +6 -6
  313. data/docs/dev-environment.html +12 -7
  314. data/docs/dir-structure.html +6 -6
  315. data/docs/doc-conventions.html +7 -7
  316. data/docs/end-to-end-tests.html +6 -6
  317. data/docs/features.html +6 -6
  318. data/docs/flash-and-session.html +6 -6
  319. data/docs/form-constraints.html +6 -6
  320. data/docs/forms.html +8 -8
  321. data/docs/getting-started.html +9 -9
  322. data/docs/handlers.html +6 -6
  323. data/docs/hashmap.json +1 -1
  324. data/docs/hooks.html +6 -6
  325. data/docs/i18n.html +6 -6
  326. data/docs/index.html +7 -7
  327. data/docs/instrumentation.html +6 -6
  328. data/docs/javascript.html +6 -6
  329. data/docs/jobs.html +6 -6
  330. data/docs/keyword-injection.html +6 -6
  331. data/docs/layouts.html +6 -6
  332. data/docs/lsp.html +6 -6
  333. data/docs/markdown-examples.html +6 -6
  334. data/docs/middleware.html +6 -6
  335. data/docs/overview.html +7 -7
  336. data/docs/pages.html +6 -6
  337. data/docs/recipes/alternate-layouts.html +6 -6
  338. data/docs/recipes/authentication.html +6 -6
  339. data/docs/recipes/blank-layouts.html +6 -6
  340. data/docs/recipes/custom-flash.html +6 -6
  341. data/docs/recipes/indexed-forms.html +6 -6
  342. data/docs/recipes/text-field-component.html +6 -6
  343. data/docs/roadmap.html +29 -0
  344. data/docs/routes.html +6 -6
  345. data/docs/security.html +6 -6
  346. data/docs/seed-data.html +6 -6
  347. data/docs/space-time-continuum.html +6 -6
  348. data/docs/tutorial.html +7 -7
  349. data/docs/unit-tests.html +6 -6
  350. data/docs/why.html +6 -6
  351. data/lib/brut/cli/apps/test.rb +1 -1
  352. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +2 -2
  353. data/lib/brut/junk_drawer.rb +48 -9
  354. data/lib/brut/version.rb +1 -1
  355. data/specs/brut/junk_drawer.spec.rb +75 -0
  356. metadata +37 -31
  357. data/brutrb.com/images/logo-300.png +0 -0
  358. data/brutrb.com/images/logo.png +0 -0
  359. data/brutrb.com/not-released.md +0 -5
  360. data/docs/assets/chunks/@localSearchIndexroot.Biqy1A4t.js +0 -1
  361. data/docs/assets/dev-env-overview.Gj7NWM8-.png +0 -0
  362. data/docs/assets/dev-environment.md.BroAOLhF.js +0 -11
  363. data/docs/assets/dev-environment.md.BroAOLhF.lean.js +0 -1
  364. data/docs/assets/doc-conventions.md.BzmSrTEW.js +0 -1
  365. data/docs/assets/index.md.CAMqGBJE.js +0 -1
  366. data/docs/assets/index.md.CAMqGBJE.lean.js +0 -1
  367. data/docs/assets/not-released.md.BBy28McC.js +0 -1
  368. data/docs/assets/not-released.md.BBy28McC.lean.js +0 -1
  369. data/docs/assets/tutorial.md.a4a0eVOy.js +0 -1
  370. data/docs/assets/tutorial.md.a4a0eVOy.lean.js +0 -1
  371. /data/docs/assets/{components.md.DatoNgFo.lean.js → components.md.Pg_Lo35G.lean.js} +0 -0
  372. /data/docs/assets/{configuration.md.DeyhpqEx.lean.js → configuration.md.BfeGnEci.lean.js} +0 -0
  373. /data/docs/assets/{doc-conventions.md.BzmSrTEW.lean.js → doc-conventions.md.DOkAuXlt.lean.js} +0 -0
  374. /data/docs/assets/{forms.md.C2Dizvzq.lean.js → forms.md.BQZlCwvi.lean.js} +0 -0
  375. /data/docs/assets/{getting-started.md.C93e0odB.lean.js → getting-started.md.BcXnNuD6.lean.js} +0 -0
  376. /data/docs/assets/{overview.md.Bdq4qt3L.lean.js → overview.md.iMnwLO4x.lean.js} +0 -0
@@ -204,7 +204,7 @@ job executions. Do not enable in production.</p>
204
204
  </div>
205
205
 
206
206
  <div id="footer">
207
- Generated on Tue Jul 8 01:36:11 2025 by
207
+ Generated on Thu Jul 10 13:41:05 2025 by
208
208
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
209
209
  0.9.37 (ruby-3.4.4).
210
210
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Jul 8 01:36:09 2025 by
118
+ Generated on Thu Jul 10 13:41:03 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>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Jul 8 01:36:09 2025 by
118
+ Generated on Thu Jul 10 13:41:03 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>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Jul 8 01:36:09 2025 by
118
+ Generated on Thu Jul 10 13:41:03 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>
@@ -404,7 +404,7 @@ 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 Jul 8 01:36:10 2025 by
407
+ Generated on Thu Jul 10 13:41:05 2025 by
408
408
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
409
409
  0.9.37 (ruby-3.4.4).
410
410
  </div>
@@ -118,7 +118,7 @@ data integrity, use your databases constraints and other features.</p>
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Tue Jul 8 01:36:09 2025 by
121
+ Generated on Thu Jul 10 13:41:03 2025 by
122
122
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
123
  0.9.37 (ruby-3.4.4).
124
124
  </div>
@@ -122,7 +122,7 @@ that than it is the front end.</p>
122
122
  </div>
123
123
 
124
124
  <div id="footer">
125
- Generated on Tue Jul 8 01:36:09 2025 by
125
+ Generated on Thu Jul 10 13:41:03 2025 by
126
126
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
127
127
  0.9.37 (ruby-3.4.4).
128
128
  </div>
@@ -1591,7 +1591,7 @@ caused execution to be aborted.</p>
1591
1591
  </div>
1592
1592
 
1593
1593
  <div id="footer">
1594
- Generated on Tue Jul 8 01:36:09 2025 by
1594
+ Generated on Thu Jul 10 13:41:03 2025 by
1595
1595
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1596
1596
  0.9.37 (ruby-3.4.4).
1597
1597
  </div>
@@ -481,7 +481,7 @@
481
481
  </div>
482
482
 
483
483
  <div id="footer">
484
- Generated on Tue Jul 8 01:36:09 2025 by
484
+ Generated on Thu Jul 10 13:41:04 2025 by
485
485
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
486
486
  0.9.37 (ruby-3.4.4).
487
487
  </div>
@@ -254,7 +254,7 @@
254
254
  </div>
255
255
 
256
256
  <div id="footer">
257
- Generated on Tue Jul 8 01:36:10 2025 by
257
+ Generated on Thu Jul 10 13:41:04 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>
@@ -296,7 +296,7 @@
296
296
  </div>
297
297
 
298
298
  <div id="footer">
299
- Generated on Tue Jul 8 01:36:10 2025 by
299
+ Generated on Thu Jul 10 13:41:04 2025 by
300
300
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
301
301
  0.9.37 (ruby-3.4.4).
302
302
  </div>
@@ -252,7 +252,7 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Tue Jul 8 01:36:10 2025 by
255
+ Generated on Thu Jul 10 13:41:04 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
257
  0.9.37 (ruby-3.4.4).
258
258
  </div>
@@ -304,7 +304,7 @@
304
304
  </div>
305
305
 
306
306
  <div id="footer">
307
- Generated on Tue Jul 8 01:36:10 2025 by
307
+ Generated on Thu Jul 10 13:41:04 2025 by
308
308
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
309
309
  0.9.37 (ruby-3.4.4).
310
310
  </div>
@@ -173,7 +173,7 @@
173
173
  </div>
174
174
 
175
175
  <div id="footer">
176
- Generated on Tue Jul 8 01:36:10 2025 by
176
+ Generated on Thu Jul 10 13:41:04 2025 by
177
177
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
178
178
  0.9.37 (ruby-3.4.4).
179
179
  </div>
@@ -355,7 +355,7 @@
355
355
  </div>
356
356
 
357
357
  <div id="footer">
358
- Generated on Tue Jul 8 01:36:09 2025 by
358
+ Generated on Thu Jul 10 13:41:03 2025 by
359
359
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
360
360
  0.9.37 (ruby-3.4.4).
361
361
  </div>
@@ -347,7 +347,7 @@
347
347
  </div>
348
348
 
349
349
  <div id="footer">
350
- Generated on Tue Jul 8 01:36:09 2025 by
350
+ Generated on Thu Jul 10 13:41:03 2025 by
351
351
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
352
352
  0.9.37 (ruby-3.4.4).
353
353
  </div>
@@ -379,7 +379,7 @@
379
379
  </div>
380
380
 
381
381
  <div id="footer">
382
- Generated on Tue Jul 8 01:36:09 2025 by
382
+ Generated on Thu Jul 10 13:41:03 2025 by
383
383
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
384
384
  0.9.37 (ruby-3.4.4).
385
385
  </div>
@@ -325,7 +325,7 @@
325
325
  </div>
326
326
 
327
327
  <div id="footer">
328
- Generated on Tue Jul 8 01:36:09 2025 by
328
+ Generated on Thu Jul 10 13:41:03 2025 by
329
329
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
330
330
  0.9.37 (ruby-3.4.4).
331
331
  </div>
@@ -319,7 +319,7 @@
319
319
  </div>
320
320
 
321
321
  <div id="footer">
322
- Generated on Tue Jul 8 01:36:09 2025 by
322
+ Generated on Thu Jul 10 13:41:03 2025 by
323
323
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
324
324
  0.9.37 (ruby-3.4.4).
325
325
  </div>
@@ -337,7 +337,7 @@
337
337
  </div>
338
338
 
339
339
  <div id="footer">
340
- Generated on Tue Jul 8 01:36:09 2025 by
340
+ Generated on Thu Jul 10 13:41:03 2025 by
341
341
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
342
342
  0.9.37 (ruby-3.4.4).
343
343
  </div>
@@ -373,7 +373,7 @@
373
373
  </div>
374
374
 
375
375
  <div id="footer">
376
- Generated on Tue Jul 8 01:36:09 2025 by
376
+ Generated on Thu Jul 10 13:41:03 2025 by
377
377
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
378
378
  0.9.37 (ruby-3.4.4).
379
379
  </div>
@@ -173,7 +173,7 @@
173
173
  </div>
174
174
 
175
175
  <div id="footer">
176
- Generated on Tue Jul 8 01:36:09 2025 by
176
+ Generated on Thu Jul 10 13:41:03 2025 by
177
177
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
178
178
  0.9.37 (ruby-3.4.4).
179
179
  </div>
@@ -260,7 +260,7 @@
260
260
  </div>
261
261
 
262
262
  <div id="footer">
263
- Generated on Tue Jul 8 01:36:10 2025 by
263
+ Generated on Thu Jul 10 13:41:04 2025 by
264
264
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
265
265
  0.9.37 (ruby-3.4.4).
266
266
  </div>
@@ -247,7 +247,7 @@
247
247
  </div>
248
248
 
249
249
  <div id="footer">
250
- Generated on Tue Jul 8 01:36:10 2025 by
250
+ Generated on Thu Jul 10 13:41:04 2025 by
251
251
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
252
252
  0.9.37 (ruby-3.4.4).
253
253
  </div>
@@ -575,7 +575,7 @@
575
575
  </div>
576
576
 
577
577
  <div id="footer">
578
- Generated on Tue Jul 8 01:36:10 2025 by
578
+ Generated on Thu Jul 10 13:41:05 2025 by
579
579
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
580
580
  0.9.37 (ruby-3.4.4).
581
581
  </div>
@@ -186,7 +186,7 @@
186
186
  </div>
187
187
 
188
188
  <div id="footer">
189
- Generated on Tue Jul 8 01:36:10 2025 by
189
+ Generated on Thu Jul 10 13:41:05 2025 by
190
190
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
191
191
  0.9.37 (ruby-3.4.4).
192
192
  </div>
@@ -293,7 +293,7 @@
293
293
  </div>
294
294
 
295
295
  <div id="footer">
296
- Generated on Tue Jul 8 01:36:10 2025 by
296
+ Generated on Thu Jul 10 13:41:04 2025 by
297
297
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
298
298
  0.9.37 (ruby-3.4.4).
299
299
  </div>
@@ -502,7 +502,7 @@ end</span><span class='tstring_end'>}</span></span>
502
502
  </div>
503
503
 
504
504
  <div id="footer">
505
- Generated on Tue Jul 8 01:36:10 2025 by
505
+ Generated on Thu Jul 10 13:41:04 2025 by
506
506
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
507
507
  0.9.37 (ruby-3.4.4).
508
508
  </div>
@@ -307,7 +307,7 @@
307
307
  <span class='kw'>if</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>!=</span> <span class='int'>1</span>
308
308
  <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>component requires exactly one argument, got </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
309
309
  <span class='kw'>end</span>
310
- <span class='id identifier rubyid_class_name'>class_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_capitalize'><span class='object_link'><a href="../../../../RichString.html#capitalize-instance_method" title="RichString#capitalize (method)">capitalize</a></span></span><span class='lparen'>(</span><span class='symbol'>:first_only</span><span class='rparen'>)</span>
310
+ <span class='id identifier rubyid_class_name'>class_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_capitalize'>capitalize</span><span class='lparen'>(</span><span class='symbol'>:first_only</span><span class='rparen'>)</span>
311
311
  <span class='kw'>if</span> <span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>Component$</span><span class='regexp_end'>/</span></span>
312
312
  <span class='id identifier rubyid_class_name'>class_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Component</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
313
313
  <span class='kw'>end</span>
@@ -323,7 +323,7 @@
323
323
  <span class='kw'>if</span> <span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span>
324
324
  <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>component </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_class_name'>class_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> cannot be a page component - it must be an inner class of an existing page</span><span class='tstring_end'>&quot;</span></span>
325
325
  <span class='kw'>else</span>
326
- <span class='id identifier rubyid_existing_page'>existing_page</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</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><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'><span class='object_link'><a href="../../../../RichString.html#underscorized-instance_method" title="RichString#underscorized (method)">underscorized</a></span></span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.rb</span><span class='tstring_end'>&quot;</span></span>
326
+ <span class='id identifier rubyid_existing_page'>existing_page</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</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><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'>underscorized</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.rb</span><span class='tstring_end'>&quot;</span></span>
327
327
 
328
328
  <span class='kw'>if</span> <span class='op'>!</span><span class='lparen'>(</span><span class='id identifier rubyid_components_src_dir'>components_src_dir</span> <span class='op'>/</span> <span class='id identifier rubyid_existing_page'>existing_page</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span>
329
329
  <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_class_name'>class_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> was set as a page component, however we cannot find the page it belongs in. File </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_existing_page'>existing_page</span><span class='embexpr_end'>}</span><span class='tstring_content'> does not exist and should contain that page</span><span class='tstring_end'>&quot;</span></span>
@@ -388,7 +388,7 @@ end</span><span class='tstring_end'>}</span></span>
388
388
  </div>
389
389
 
390
390
  <div id="footer">
391
- Generated on Tue Jul 8 01:36:10 2025 by
391
+ Generated on Thu Jul 10 13:41:04 2025 by
392
392
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
393
393
  0.9.37 (ruby-3.4.4).
394
394
  </div>
@@ -364,7 +364,7 @@ assert.fail(&quot;test goes here&quot;)
364
364
  </div>
365
365
 
366
366
  <div id="footer">
367
- Generated on Tue Jul 8 01:36:10 2025 by
367
+ Generated on Thu Jul 10 13:41:04 2025 by
368
368
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
369
369
  0.9.37 (ruby-3.4.4).
370
370
  </div>
@@ -400,7 +400,7 @@ end</span><span class='tstring_end'>}</span></span>
400
400
  </div>
401
401
 
402
402
  <div id="footer">
403
- Generated on Tue Jul 8 01:36:10 2025 by
403
+ Generated on Thu Jul 10 13:41:04 2025 by
404
404
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
405
405
  0.9.37 (ruby-3.4.4).
406
406
  </div>
@@ -252,7 +252,7 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Tue Jul 8 01:36:10 2025 by
255
+ Generated on Thu Jul 10 13:41:04 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
257
  0.9.37 (ruby-3.4.4).
258
258
  </div>
@@ -293,7 +293,7 @@
293
293
  </div>
294
294
 
295
295
  <div id="footer">
296
- Generated on Tue Jul 8 01:36:10 2025 by
296
+ Generated on Thu Jul 10 13:41:04 2025 by
297
297
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
298
298
  0.9.37 (ruby-3.4.4).
299
299
  </div>
@@ -408,7 +408,7 @@ expect(true).to eq(false)
408
408
  end
409
409
  end</span><span class='tstring_end'>}</span></span>
410
410
 
411
- <span class='id identifier rubyid_title'>title</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_page_class_name'>page_class_name</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'><span class='object_link'><a href="../../../../RichString.html#underscorized-instance_method" title="RichString#underscorized (method)">underscorized</a></span></span><span class='period'>.</span><span class='id identifier rubyid_humanized'>humanized</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_capitalize'>capitalize</span>
411
+ <span class='id identifier rubyid_title'>title</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_page_class_name'>page_class_name</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'>underscorized</span><span class='period'>.</span><span class='id identifier rubyid_humanized'>humanized</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_capitalize'>capitalize</span>
412
412
  <span class='id identifier rubyid_translations_code'>translations_code</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_page_class_name'>page_class_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;: {\n title: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;,\n \},</span><span class='tstring_end'>&quot;</span></span>
413
413
 
414
414
  <span class='kw'>if</span> <span class='id identifier rubyid_global_options'>global_options</span><span class='period'>.</span><span class='id identifier rubyid_dry_run?'>dry_run?</span>
@@ -470,7 +470,7 @@ end</span><span class='tstring_end'>}</span></span>
470
470
  </div>
471
471
 
472
472
  <div id="footer">
473
- Generated on Tue Jul 8 01:36:10 2025 by
473
+ Generated on Thu Jul 10 13:41:04 2025 by
474
474
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
475
475
  0.9.37 (ruby-3.4.4).
476
476
  </div>
@@ -440,7 +440,7 @@
440
440
  </div>
441
441
 
442
442
  <div id="footer">
443
- Generated on Tue Jul 8 01:36:10 2025 by
443
+ Generated on Thu Jul 10 13:41:04 2025 by
444
444
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
445
445
  0.9.37 (ruby-3.4.4).
446
446
  </div>
@@ -370,7 +370,7 @@ end</span><span class='tstring_end'>}</span></span>
370
370
  </div>
371
371
 
372
372
  <div id="footer">
373
- Generated on Tue Jul 8 01:36:10 2025 by
373
+ Generated on Thu Jul 10 13:41:04 2025 by
374
374
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
375
375
  0.9.37 (ruby-3.4.4).
376
376
  </div>
@@ -243,7 +243,7 @@
243
243
  </div>
244
244
 
245
245
  <div id="footer">
246
- Generated on Tue Jul 8 01:36:10 2025 by
246
+ Generated on Thu Jul 10 13:41:04 2025 by
247
247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
248
248
  0.9.37 (ruby-3.4.4).
249
249
  </div>
@@ -456,7 +456,7 @@
456
456
  </div>
457
457
 
458
458
  <div id="footer">
459
- Generated on Tue Jul 8 01:36:09 2025 by
459
+ Generated on Thu Jul 10 13:41:04 2025 by
460
460
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
461
461
  0.9.37 (ruby-3.4.4).
462
462
  </div>
@@ -397,7 +397,7 @@
397
397
  </div>
398
398
 
399
399
  <div id="footer">
400
- Generated on Tue Jul 8 01:36:09 2025 by
400
+ Generated on Thu Jul 10 13:41:04 2025 by
401
401
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
402
402
  0.9.37 (ruby-3.4.4).
403
403
  </div>
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>
7
- Class: Brut::CLI::Apps::Test::JS
7
+ Class: Brut::CLI::Apps::Test::Js
8
8
 
9
9
  &mdash; Documentation by YARD 0.9.37
10
10
 
@@ -15,7 +15,7 @@
15
15
  <link rel="stylesheet" href="../../../../css/common.css" type="text/css" />
16
16
 
17
17
  <script type="text/javascript">
18
- pathId = "Brut::CLI::Apps::Test::JS";
18
+ pathId = "Brut::CLI::Apps::Test::Js";
19
19
  relpath = '../../../../';
20
20
  </script>
21
21
 
@@ -39,7 +39,7 @@
39
39
  <a href="../../../../_index.html">Index (J)</a> &raquo;
40
40
  <span class='title'><span class='object_link'><a href="../../../../Brut.html" title="Brut (module)">Brut</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../../CLI.html" title="Brut::CLI (module)">CLI</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Apps.html" title="Brut::CLI::Apps (module)">Apps</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Test.html" title="Brut::CLI::Apps::Test (class)">Test</a></span></span>
41
41
  &raquo;
42
- <span class="title">JS</span>
42
+ <span class="title">Js</span>
43
43
 
44
44
  </div>
45
45
 
@@ -59,7 +59,7 @@
59
59
  <div class="clear"></div>
60
60
  </div>
61
61
 
62
- <div id="content"><h1>Class: Brut::CLI::Apps::Test::JS
62
+ <div id="content"><h1>Class: Brut::CLI::Apps::Test::Js
63
63
 
64
64
 
65
65
 
@@ -76,7 +76,7 @@
76
76
 
77
77
  <li class="next"><span class='object_link'><a href="../../Command.html" title="Brut::CLI::Command (class)">Command</a></span></li>
78
78
 
79
- <li class="next">Brut::CLI::Apps::Test::JS</li>
79
+ <li class="next">Brut::CLI::Apps::Test::Js</li>
80
80
 
81
81
  </ul>
82
82
  <a href="#" class="inheritanceTree">show all</a>
@@ -252,7 +252,7 @@
252
252
  </div>
253
253
 
254
254
  <div id="footer">
255
- Generated on Tue Jul 8 01:36:09 2025 by
255
+ Generated on Thu Jul 10 13:41:04 2025 by
256
256
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
257
257
  0.9.37 (ruby-3.4.4).
258
258
  </div>
@@ -568,7 +568,7 @@
568
568
  </div>
569
569
 
570
570
  <div id="footer">
571
- Generated on Tue Jul 8 01:36:09 2025 by
571
+ Generated on Thu Jul 10 13:41:04 2025 by
572
572
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
573
573
  0.9.37 (ruby-3.4.4).
574
574
  </div>
@@ -107,7 +107,7 @@
107
107
 
108
108
 
109
109
 
110
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Audit</a></span>, <span class='object_link'><a href="Test/E2e.html" title="Brut::CLI::Apps::Test::E2e (class)">E2e</a></span>, <span class='object_link'><a href="Test/JS.html" title="Brut::CLI::Apps::Test::JS (class)">JS</a></span>, <span class='object_link'><a href="Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Run</a></span>
110
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Audit</a></span>, <span class='object_link'><a href="Test/E2e.html" title="Brut::CLI::Apps::Test::E2e (class)">E2e</a></span>, <span class='object_link'><a href="Test/Js.html" title="Brut::CLI::Apps::Test::Js (class)">Js</a></span>, <span class='object_link'><a href="Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Run</a></span>
111
111
 
112
112
 
113
113
  </p>
@@ -243,7 +243,7 @@
243
243
  </div>
244
244
 
245
245
  <div id="footer">
246
- Generated on Tue Jul 8 01:36:09 2025 by
246
+ Generated on Thu Jul 10 13:41:04 2025 by
247
247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
248
248
  0.9.37 (ruby-3.4.4).
249
249
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Tue Jul 8 01:36:09 2025 by
118
+ Generated on Thu Jul 10 13:41:03 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>