brut 0.0.29 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +23 -2
  4. data/assets/LogoStop.pxd +0 -0
  5. data/assets/MetroLogo.graffle +0 -0
  6. data/assets/SocialImage.png +0 -0
  7. data/assets/SocialImage.pxd +0 -0
  8. data/brutrb.com/.vitepress/config.mjs +48 -9
  9. data/brutrb.com/.vitepress/theme/style.css +14 -35
  10. data/brutrb.com/adrs.md +15 -0
  11. data/brutrb.com/ai.md +10 -15
  12. data/brutrb.com/assets.md +2 -9
  13. data/brutrb.com/brut-js.md +12 -2
  14. data/brutrb.com/cli.md +9 -13
  15. data/brutrb.com/components.md +118 -96
  16. data/brutrb.com/configuration.md +3 -4
  17. data/brutrb.com/css.md +2 -2
  18. data/brutrb.com/custom-element-tests.md +3 -4
  19. data/brutrb.com/database-access.md +1 -1
  20. data/brutrb.com/database-schema.md +29 -41
  21. data/brutrb.com/dev-environment.md +13 -8
  22. data/brutrb.com/dir-structure.md +120 -0
  23. data/brutrb.com/doc-conventions.md +17 -15
  24. data/brutrb.com/dx +1 -0
  25. data/brutrb.com/end-to-end-tests.md +12 -10
  26. data/brutrb.com/features.md +373 -0
  27. data/brutrb.com/flash-and-session.md +115 -131
  28. data/brutrb.com/form-constraints.md +266 -0
  29. data/brutrb.com/forms.md +140 -765
  30. data/brutrb.com/getting-started.md +10 -11
  31. data/brutrb.com/handlers.md +119 -95
  32. data/brutrb.com/hooks.md +18 -20
  33. data/brutrb.com/i18n.md +6 -4
  34. data/brutrb.com/images/DevEnvironment.graffle +0 -0
  35. data/brutrb.com/images/DevEnvironment.png +0 -0
  36. data/brutrb.com/images/LogoStop.png +0 -0
  37. data/brutrb.com/index.md +0 -3
  38. data/brutrb.com/instrumentation.md +7 -10
  39. data/brutrb.com/javascript.md +14 -14
  40. data/brutrb.com/keyword-injection.md +72 -114
  41. data/brutrb.com/layouts.md +20 -52
  42. data/brutrb.com/lsp.md +1 -1
  43. data/brutrb.com/overview.md +30 -372
  44. data/brutrb.com/pages.md +119 -207
  45. data/brutrb.com/public/SocialImage.png +0 -0
  46. data/brutrb.com/public/favicon.ico +0 -0
  47. data/brutrb.com/recipes/alternate-layouts.md +32 -0
  48. data/brutrb.com/recipes/authentication.md +315 -6
  49. data/brutrb.com/recipes/blank-layouts.md +22 -0
  50. data/brutrb.com/recipes/custom-flash.md +51 -0
  51. data/brutrb.com/recipes/indexed-forms.md +149 -0
  52. data/brutrb.com/recipes/text-field-component.md +182 -0
  53. data/brutrb.com/roadmap.md +57 -0
  54. data/brutrb.com/routes.md +56 -82
  55. data/brutrb.com/security.md +0 -3
  56. data/brutrb.com/space-time-continuum.md +8 -12
  57. data/brutrb.com/tutorial.md +5 -1
  58. data/brutrb.com/why.md +19 -0
  59. data/docs/404.html +8 -3
  60. data/docs/SocialImage.png +0 -0
  61. data/docs/adrs.html +29 -0
  62. data/docs/ai.html +11 -6
  63. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  64. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  65. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  66. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  67. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  68. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  69. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  70. data/docs/api/Brut/BackEnd.html +1 -1
  71. data/docs/api/Brut/CLI/App.html +1 -1
  72. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  73. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  74. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  75. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  76. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  77. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  78. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  79. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  80. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  81. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  82. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  83. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  84. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  85. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  86. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  87. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  88. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  89. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  90. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  91. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  92. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +3 -3
  93. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  94. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  95. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  96. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  97. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  98. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  99. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  100. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  101. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  102. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  103. data/docs/api/Brut/CLI/Apps/Test/JS.html +6 -6
  104. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  105. data/docs/api/Brut/CLI/Apps/Test.html +2 -2
  106. data/docs/api/Brut/CLI/Apps.html +1 -1
  107. data/docs/api/Brut/CLI/Command.html +3 -3
  108. data/docs/api/Brut/CLI/Error.html +1 -1
  109. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  110. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  111. data/docs/api/Brut/CLI/Executor.html +1 -1
  112. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  113. data/docs/api/Brut/CLI/Options.html +1 -1
  114. data/docs/api/Brut/CLI/Output.html +1 -1
  115. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  116. data/docs/api/Brut/CLI.html +1 -1
  117. data/docs/api/Brut/FactoryBot.html +1 -1
  118. data/docs/api/Brut/Framework/App.html +1 -1
  119. data/docs/api/Brut/Framework/Config.html +1 -1
  120. data/docs/api/Brut/Framework/Container.html +1 -1
  121. data/docs/api/Brut/Framework/Error.html +1 -1
  122. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  123. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  124. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  125. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  126. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  127. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  128. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  129. data/docs/api/Brut/Framework/Errors.html +1 -1
  130. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  131. data/docs/api/Brut/Framework/MCP.html +1 -1
  132. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  133. data/docs/api/Brut/Framework.html +1 -1
  134. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +3 -3
  145. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Form.html +9 -11
  155. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  156. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  159. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +135 -20
  162. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +135 -20
  164. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  167. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  169. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  170. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  171. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  172. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  173. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  174. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  175. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  176. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  177. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  178. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  179. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  180. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  181. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  182. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  183. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  184. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  185. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  186. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  187. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  188. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +2 -2
  189. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  190. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  191. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  192. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  193. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  194. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  195. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  196. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  197. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  198. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  199. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  200. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  201. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  202. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  203. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  204. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  205. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  206. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  207. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  208. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  209. data/docs/api/Brut/FrontEnd.html +1 -1
  210. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  211. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  212. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  213. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  214. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  215. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  216. data/docs/api/Brut/I18n.html +1 -1
  217. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  218. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  219. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  220. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  221. data/docs/api/Brut/Instrumentation.html +1 -1
  222. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  223. data/docs/api/Brut/SinatraHelpers.html +1 -1
  224. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  225. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  226. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  227. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  228. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  229. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  230. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  231. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  232. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  233. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  234. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  235. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  236. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  237. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  238. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  239. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  240. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  241. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  242. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  243. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  244. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  245. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  246. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  247. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  248. data/docs/api/Brut/SpecSupport.html +1 -1
  249. data/docs/api/Brut.html +1 -1
  250. data/docs/api/Clock.html +1 -1
  251. data/docs/api/RichString.html +150 -343
  252. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  253. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  254. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  255. data/docs/api/Sequel/Extensions.html +1 -1
  256. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  257. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  258. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  259. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  260. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  261. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  262. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  263. data/docs/api/Sequel/Plugins.html +1 -1
  264. data/docs/api/Sequel.html +1 -1
  265. data/docs/api/_index.html +5 -5
  266. data/docs/api/class_list.html +1 -1
  267. data/docs/api/file.README.html +22 -3
  268. data/docs/api/index.html +22 -3
  269. data/docs/api/method_list.html +290 -306
  270. data/docs/api/top-level-namespace.html +1 -1
  271. data/docs/assets/DevEnvironment.DaFcVfwP.png +0 -0
  272. data/docs/assets/LogoStop.Gb3tDhL1.png +0 -0
  273. data/docs/assets/adrs.md.JRxZ5uYE.js +1 -0
  274. data/docs/assets/adrs.md.JRxZ5uYE.lean.js +1 -0
  275. data/docs/assets/{ai.md._6HCDL6d.js → ai.md.Cy9GWnER.js} +1 -1
  276. data/docs/assets/ai.md.Cy9GWnER.lean.js +1 -0
  277. data/docs/assets/{app.BhrfSt68.js → app.Dm3x-DQc.js} +1 -1
  278. data/docs/assets/{assets.md.D3wunzLx.js → assets.md.7C3HWkga.js} +3 -3
  279. data/docs/assets/{assets.md.D3wunzLx.lean.js → assets.md.7C3HWkga.lean.js} +1 -1
  280. data/docs/assets/{brut-js.md.o2DAO2s2.js → brut-js.md.B4GYxQVw.js} +1 -1
  281. data/docs/assets/{brut-js.md.o2DAO2s2.lean.js → brut-js.md.B4GYxQVw.lean.js} +1 -1
  282. data/docs/assets/chunks/@localSearchIndexroot.BqRrkR00.js +1 -0
  283. data/docs/assets/chunks/{VPLocalSearchBox.Dpot_2H4.js → VPLocalSearchBox.DL6bnqee.js} +1 -1
  284. data/docs/assets/chunks/{theme.N2SNVLgU.js → theme.BXdlf6e8.js} +2 -2
  285. data/docs/assets/{cli.md.RmeA2b0i.js → cli.md.CjsktgFz.js} +15 -20
  286. data/docs/assets/components.md.Pg_Lo35G.js +96 -0
  287. data/docs/assets/{components.md.CRUMdRoN.lean.js → components.md.Pg_Lo35G.lean.js} +1 -1
  288. data/docs/assets/{configuration.md.LG-zIBww.js → configuration.md.BfeGnEci.js} +3 -3
  289. data/docs/assets/{css.md.DJgj2clw.js → css.md.CltvJqAa.js} +3 -3
  290. data/docs/assets/{custom-element-tests.md.BrYJQEl3.js → custom-element-tests.md.B_rbta32.js} +3 -3
  291. data/docs/assets/{database-access.md.C7l-Vuvb.js → database-access.md.gnluu54N.js} +1 -1
  292. data/docs/assets/{database-schema.md.BUjR0VS1.js → database-schema.md.CSYk6E6v.js} +6 -6
  293. data/docs/assets/{database-schema.md.BUjR0VS1.lean.js → database-schema.md.CSYk6E6v.lean.js} +1 -1
  294. data/docs/assets/dev-environment.md.Dy6EldaM.js +16 -0
  295. data/docs/assets/dev-environment.md.Dy6EldaM.lean.js +1 -0
  296. data/docs/assets/dir-structure.md.CWir1pic.js +46 -0
  297. data/docs/assets/dir-structure.md.CWir1pic.lean.js +1 -0
  298. data/docs/assets/doc-conventions.md.DOkAuXlt.js +1 -0
  299. data/docs/assets/doc-conventions.md.DOkAuXlt.lean.js +1 -0
  300. data/docs/assets/{end-to-end-tests.md.yfQHC0b5.js → end-to-end-tests.md.DzqRpZ43.js} +5 -3
  301. data/docs/assets/end-to-end-tests.md.DzqRpZ43.lean.js +1 -0
  302. data/docs/assets/features.md.DPFXsy0z.js +154 -0
  303. data/docs/assets/features.md.DPFXsy0z.lean.js +1 -0
  304. data/docs/assets/flash-and-session.md.nPvUpnUx.js +79 -0
  305. data/docs/assets/{flash-and-session.md.BXY8RvT0.lean.js → flash-and-session.md.nPvUpnUx.lean.js} +1 -1
  306. data/docs/assets/form-constraints.md.x5tNpTTI.js +90 -0
  307. data/docs/assets/form-constraints.md.x5tNpTTI.lean.js +1 -0
  308. data/docs/assets/forms.md.BQZlCwvi.js +64 -0
  309. data/docs/assets/forms.md.BQZlCwvi.lean.js +1 -0
  310. data/docs/assets/{getting-started.md.Dj0qtZI2.js → getting-started.md.BcXnNuD6.js} +5 -5
  311. data/docs/assets/{getting-started.md.Dj0qtZI2.lean.js → getting-started.md.BcXnNuD6.lean.js} +1 -1
  312. data/docs/assets/handlers.md.Chyri6KA.js +54 -0
  313. data/docs/assets/handlers.md.Chyri6KA.lean.js +1 -0
  314. data/docs/assets/{hooks.md.C4-moMny.js → hooks.md.Jmb5VOLA.js} +4 -4
  315. data/docs/assets/{hooks.md.C4-moMny.lean.js → hooks.md.Jmb5VOLA.lean.js} +1 -1
  316. data/docs/assets/{i18n.md.Do9i1qWl.js → i18n.md.xQhiGo1G.js} +2 -2
  317. data/docs/assets/{i18n.md.Do9i1qWl.lean.js → i18n.md.xQhiGo1G.lean.js} +1 -1
  318. data/docs/assets/index.md.Bn9e0sRJ.js +1 -0
  319. data/docs/assets/index.md.Bn9e0sRJ.lean.js +1 -0
  320. data/docs/assets/{instrumentation.md.a9Pjps4P.js → instrumentation.md.BgcaGVYH.js} +2 -2
  321. data/docs/assets/{instrumentation.md.a9Pjps4P.lean.js → instrumentation.md.BgcaGVYH.lean.js} +1 -1
  322. data/docs/assets/{javascript.md.GWbhRS51.js → javascript.md.DzrMxUmI.js} +7 -7
  323. data/docs/assets/{javascript.md.GWbhRS51.lean.js → javascript.md.DzrMxUmI.lean.js} +1 -1
  324. data/docs/assets/keyword-injection.md.95Zgh2eN.js +21 -0
  325. data/docs/assets/{keyword-injection.md.Dt2tKREs.lean.js → keyword-injection.md.95Zgh2eN.lean.js} +1 -1
  326. data/docs/assets/{layouts.md.cPnh3NId.js → layouts.md.CJGDFY-m.js} +2 -15
  327. data/docs/assets/layouts.md.CJGDFY-m.lean.js +1 -0
  328. data/docs/assets/{lsp.md.Bsu-f6VU.js → lsp.md.Dn1rIiW0.js} +1 -1
  329. data/docs/assets/{lsp.md.Bsu-f6VU.lean.js → lsp.md.Dn1rIiW0.lean.js} +1 -1
  330. data/docs/assets/overview.md.iMnwLO4x.js +1 -0
  331. data/docs/assets/overview.md.iMnwLO4x.lean.js +1 -0
  332. data/docs/assets/pages.md.B7Hc-i6H.js +45 -0
  333. data/docs/assets/pages.md.B7Hc-i6H.lean.js +1 -0
  334. data/docs/assets/recipes_alternate-layouts.md.BwEytl59.js +22 -0
  335. data/docs/assets/recipes_alternate-layouts.md.BwEytl59.lean.js +1 -0
  336. data/docs/assets/recipes_authentication.md.Dzvi_g69.js +156 -0
  337. data/docs/assets/recipes_authentication.md.Dzvi_g69.lean.js +1 -0
  338. data/docs/assets/recipes_blank-layouts.md.fyAUJyJR.js +15 -0
  339. data/docs/assets/recipes_blank-layouts.md.fyAUJyJR.lean.js +1 -0
  340. data/docs/assets/recipes_custom-flash.md.CrQbI5eH.js +26 -0
  341. data/docs/assets/recipes_custom-flash.md.CrQbI5eH.lean.js +1 -0
  342. data/docs/assets/recipes_indexed-forms.md.CstYyOSo.js +74 -0
  343. data/docs/assets/recipes_indexed-forms.md.CstYyOSo.lean.js +1 -0
  344. data/docs/assets/recipes_text-field-component.md.H4wLAK0Z.js +101 -0
  345. data/docs/assets/recipes_text-field-component.md.H4wLAK0Z.lean.js +1 -0
  346. data/docs/assets/roadmap.md.C6PRi0DX.js +1 -0
  347. data/docs/assets/roadmap.md.C6PRi0DX.lean.js +1 -0
  348. data/docs/assets/routes.md.B8kfUPHU.js +21 -0
  349. data/docs/assets/{routes.md.BMM7peut.lean.js → routes.md.B8kfUPHU.lean.js} +1 -1
  350. data/docs/assets/{security.md.C668yXCi.js → security.md.C0G_AZR-.js} +1 -1
  351. data/docs/assets/{security.md.C668yXCi.lean.js → security.md.C0G_AZR-.lean.js} +1 -1
  352. data/docs/assets/space-time-continuum.md.xl44xDos.js +1 -0
  353. data/docs/assets/{space-time-continuum.md.KPUIKysQ.lean.js → space-time-continuum.md.xl44xDos.lean.js} +1 -1
  354. data/docs/assets/{style.B2o1L9eN.css → style.B1z60PPQ.css} +1 -1
  355. data/docs/assets/tutorial.md.BYXj4cOu.js +1 -0
  356. data/docs/assets/tutorial.md.BYXj4cOu.lean.js +1 -0
  357. data/docs/assets/why.md.C-hk5xgJ.js +1 -0
  358. data/docs/assets/why.md.C-hk5xgJ.lean.js +1 -0
  359. data/docs/assets.html +12 -7
  360. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  361. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  362. data/docs/brut-js/api/Autosubmit.html +1 -1
  363. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  364. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  365. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  366. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  367. data/docs/brut-js/api/BufferedLogger.html +1 -1
  368. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  369. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  370. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  371. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  372. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  373. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  374. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  375. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  376. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  377. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  378. data/docs/brut-js/api/Form.html +1 -1
  379. data/docs/brut-js/api/Form.js.html +1 -1
  380. data/docs/brut-js/api/I18nTranslation.html +1 -1
  381. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  382. data/docs/brut-js/api/LocaleDetection.html +1 -1
  383. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  384. data/docs/brut-js/api/Logger.html +1 -1
  385. data/docs/brut-js/api/Logger.js.html +1 -1
  386. data/docs/brut-js/api/Message.html +1 -1
  387. data/docs/brut-js/api/Message.js.html +1 -1
  388. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  389. data/docs/brut-js/api/RichString.html +1 -1
  390. data/docs/brut-js/api/RichString.js.html +1 -1
  391. data/docs/brut-js/api/Tabs.html +1 -1
  392. data/docs/brut-js/api/Tabs.js.html +1 -1
  393. data/docs/brut-js/api/Tracing.html +1 -1
  394. data/docs/brut-js/api/Tracing.js.html +1 -1
  395. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  396. data/docs/brut-js/api/external-Performance.html +1 -1
  397. data/docs/brut-js/api/external-Promise.html +1 -1
  398. data/docs/brut-js/api/external-ValidityState.html +1 -1
  399. data/docs/brut-js/api/external-Window.html +1 -1
  400. data/docs/brut-js/api/external-fetch.html +1 -1
  401. data/docs/brut-js/api/global.html +1 -1
  402. data/docs/brut-js/api/index.html +1 -1
  403. data/docs/brut-js/api/index.js.html +1 -1
  404. data/docs/brut-js/api/module-testing.html +1 -1
  405. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  406. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  407. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  408. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  409. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  410. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  411. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  412. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  413. data/docs/brut-js/api/testing_index.js.html +1 -1
  414. data/docs/brut-js.html +12 -7
  415. data/docs/business-logic.html +10 -5
  416. data/docs/cli.html +26 -26
  417. data/docs/components.html +61 -64
  418. data/docs/configuration.html +13 -8
  419. data/docs/css.html +14 -9
  420. data/docs/custom-element-tests.html +14 -9
  421. data/docs/database-access.html +12 -7
  422. data/docs/database-schema.html +15 -10
  423. data/docs/deployment.html +10 -5
  424. data/docs/dev-environment.html +17 -7
  425. data/docs/dir-structure.html +74 -0
  426. data/docs/doc-conventions.html +11 -6
  427. data/docs/end-to-end-tests.html +15 -8
  428. data/docs/favicon.ico +0 -0
  429. data/docs/features.html +182 -0
  430. data/docs/flash-and-session.html +73 -82
  431. data/docs/form-constraints.html +118 -0
  432. data/docs/forms.html +57 -367
  433. data/docs/getting-started.html +15 -10
  434. data/docs/handlers.html +51 -61
  435. data/docs/hashmap.json +1 -1
  436. data/docs/hooks.html +14 -9
  437. data/docs/i18n.html +12 -7
  438. data/docs/index.html +11 -6
  439. data/docs/instrumentation.html +12 -7
  440. data/docs/javascript.html +17 -12
  441. data/docs/jobs.html +10 -5
  442. data/docs/keyword-injection.html +22 -21
  443. data/docs/layouts.html +12 -20
  444. data/docs/lsp.html +11 -6
  445. data/docs/markdown-examples.html +10 -5
  446. data/docs/middleware.html +10 -5
  447. data/docs/overview.html +11 -138
  448. data/docs/pages.html +49 -121
  449. data/docs/recipes/alternate-layouts.html +50 -0
  450. data/docs/recipes/authentication.html +166 -6
  451. data/docs/recipes/blank-layouts.html +43 -0
  452. data/docs/recipes/custom-flash.html +54 -0
  453. data/docs/recipes/indexed-forms.html +102 -0
  454. data/docs/recipes/text-field-component.html +129 -0
  455. data/docs/roadmap.html +29 -0
  456. data/docs/routes.html +16 -19
  457. data/docs/security.html +11 -6
  458. data/docs/seed-data.html +10 -5
  459. data/docs/space-time-continuum.html +11 -6
  460. data/docs/tutorial.html +11 -6
  461. data/docs/unit-tests.html +10 -5
  462. data/docs/why.html +29 -0
  463. data/lib/brut/cli/apps/test.rb +1 -1
  464. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +2 -2
  465. data/lib/brut/front_end/form.rb +8 -8
  466. data/lib/brut/front_end/forms/radio_button_group_input.rb +8 -1
  467. data/lib/brut/front_end/forms/select_input.rb +8 -1
  468. data/lib/brut/junk_drawer.rb +48 -9
  469. data/lib/brut/version.rb +1 -1
  470. data/specs/brut/front_end/forms/radio_button_group_input.spec.rb +54 -0
  471. data/specs/brut/front_end/forms/select_input.spec.rb +54 -0
  472. data/specs/brut/junk_drawer.spec.rb +75 -0
  473. metadata +129 -82
  474. data/brutrb.com/images/logo-300.png +0 -0
  475. data/brutrb.com/images/logo.png +0 -0
  476. data/brutrb.com/not-released.md +0 -5
  477. data/brutrb.com/public/images/logo-300.png +0 -0
  478. data/brutrb.com/public/images/logo.png +0 -0
  479. data/docs/assets/LogoStop.X8x-4riz.png +0 -0
  480. data/docs/assets/ai.md._6HCDL6d.lean.js +0 -1
  481. data/docs/assets/chunks/@localSearchIndexroot.CeRAdP1K.js +0 -1
  482. data/docs/assets/components.md.CRUMdRoN.js +0 -104
  483. data/docs/assets/dev-env-overview.Gj7NWM8-.png +0 -0
  484. data/docs/assets/dev-environment.md.GZv6xvi9.js +0 -11
  485. data/docs/assets/dev-environment.md.GZv6xvi9.lean.js +0 -1
  486. data/docs/assets/doc-conventions.md.-kN3Xo5C.js +0 -1
  487. data/docs/assets/doc-conventions.md.-kN3Xo5C.lean.js +0 -1
  488. data/docs/assets/end-to-end-tests.md.yfQHC0b5.lean.js +0 -1
  489. data/docs/assets/flash-and-session.md.BXY8RvT0.js +0 -93
  490. data/docs/assets/forms.md.B-koVgyw.js +0 -379
  491. data/docs/assets/forms.md.B-koVgyw.lean.js +0 -1
  492. data/docs/assets/handlers.md.089DVD3v.js +0 -69
  493. data/docs/assets/handlers.md.089DVD3v.lean.js +0 -1
  494. data/docs/assets/index.md.CuBB-BdM.js +0 -1
  495. data/docs/assets/index.md.CuBB-BdM.lean.js +0 -1
  496. data/docs/assets/keyword-injection.md.Dt2tKREs.js +0 -25
  497. data/docs/assets/layouts.md.cPnh3NId.lean.js +0 -1
  498. data/docs/assets/not-released.md.BBy28McC.js +0 -1
  499. data/docs/assets/not-released.md.BBy28McC.lean.js +0 -1
  500. data/docs/assets/overview.md.DVKRM8zl.js +0 -133
  501. data/docs/assets/overview.md.DVKRM8zl.lean.js +0 -1
  502. data/docs/assets/pages.md.BE3kfOc5.js +0 -122
  503. data/docs/assets/pages.md.BE3kfOc5.lean.js +0 -1
  504. data/docs/assets/recipes_authentication.md.CAsXf7hk.js +0 -1
  505. data/docs/assets/recipes_authentication.md.CAsXf7hk.lean.js +0 -1
  506. data/docs/assets/routes.md.BMM7peut.js +0 -29
  507. data/docs/assets/space-time-continuum.md.KPUIKysQ.js +0 -1
  508. data/docs/assets/tutorial.md.BnoGjrdK.js +0 -1
  509. data/docs/assets/tutorial.md.BnoGjrdK.lean.js +0 -1
  510. data/docs/images/logo-300.png +0 -0
  511. data/docs/images/logo.png +0 -0
  512. data/docs/not-released.html +0 -24
  513. /data/docs/assets/{cli.md.RmeA2b0i.lean.js → cli.md.CjsktgFz.lean.js} +0 -0
  514. /data/docs/assets/{configuration.md.LG-zIBww.lean.js → configuration.md.BfeGnEci.lean.js} +0 -0
  515. /data/docs/assets/{css.md.DJgj2clw.lean.js → css.md.CltvJqAa.lean.js} +0 -0
  516. /data/docs/assets/{custom-element-tests.md.BrYJQEl3.lean.js → custom-element-tests.md.B_rbta32.lean.js} +0 -0
  517. /data/docs/assets/{database-access.md.C7l-Vuvb.lean.js → database-access.md.gnluu54N.lean.js} +0 -0
@@ -173,7 +173,7 @@
173
173
  </div>
174
174
 
175
175
  <div id="footer">
176
- Generated on Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:28 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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 Fri Jul 4 21:27:27 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>
@@ -116,7 +116,7 @@
116
116
 
117
117
  </div><div id="subclasses">
118
118
  <h2>Direct Known Subclasses</h2>
119
- <p class="children"><span class='object_link'><a href="Apps/BuildAssets/All.html" title="Brut::CLI::Apps::BuildAssets::All (class)">Apps::BuildAssets::All</a></span>, <span class='object_link'><a href="Apps/BuildAssets/CSS.html" title="Brut::CLI::Apps::BuildAssets::CSS (class)">Apps::BuildAssets::CSS</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Images.html" title="Brut::CLI::Apps::BuildAssets::Images (class)">Apps::BuildAssets::Images</a></span>, <span class='object_link'><a href="Apps/BuildAssets/JS.html" title="Brut::CLI::Apps::BuildAssets::JS (class)">Apps::BuildAssets::JS</a></span>, <span class='object_link'><a href="Apps/DB/Create.html" title="Brut::CLI::Apps::DB::Create (class)">Apps::DB::Create</a></span>, <span class='object_link'><a href="Apps/DB/Drop.html" title="Brut::CLI::Apps::DB::Drop (class)">Apps::DB::Drop</a></span>, <span class='object_link'><a href="Apps/DB/Migrate.html" title="Brut::CLI::Apps::DB::Migrate (class)">Apps::DB::Migrate</a></span>, <span class='object_link'><a href="Apps/DB/NewMigration.html" title="Brut::CLI::Apps::DB::NewMigration (class)">Apps::DB::NewMigration</a></span>, <span class='object_link'><a href="Apps/DB/Rebuild.html" title="Brut::CLI::Apps::DB::Rebuild (class)">Apps::DB::Rebuild</a></span>, <span class='object_link'><a href="Apps/DB/Seed.html" title="Brut::CLI::Apps::DB::Seed (class)">Apps::DB::Seed</a></span>, <span class='object_link'><a href="Apps/DB/Status.html" title="Brut::CLI::Apps::DB::Status (class)">Apps::DB::Status</a></span>, <span class='object_link'><a href="Apps/HerokuContainerBasedDeploy/Deploy.html" title="Brut::CLI::Apps::HerokuContainerBasedDeploy::Deploy (class)">Apps::HerokuContainerBasedDeploy::Deploy</a></span>, <span class='object_link'><a href="Apps/Scaffold/Action.html" title="Brut::CLI::Apps::Scaffold::Action (class)">Apps::Scaffold::Action</a></span>, <span class='object_link'><a href="Apps/Scaffold/Component.html" title="Brut::CLI::Apps::Scaffold::Component (class)">Apps::Scaffold::Component</a></span>, <span class='object_link'><a href="Apps/Scaffold/CustomElementTest.html" title="Brut::CLI::Apps::Scaffold::CustomElementTest (class)">Apps::Scaffold::CustomElementTest</a></span>, <span class='object_link'><a href="Apps/Scaffold/E2ETest.html" title="Brut::CLI::Apps::Scaffold::E2ETest (class)">Apps::Scaffold::E2ETest</a></span>, <span class='object_link'><a href="Apps/Scaffold/Page.html" title="Brut::CLI::Apps::Scaffold::Page (class)">Apps::Scaffold::Page</a></span>, <span class='object_link'><a href="Apps/Scaffold/Test.html" title="Brut::CLI::Apps::Scaffold::Test (class)">Apps::Scaffold::Test</a></span>, <span class='object_link'><a href="Apps/Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Apps::Test::Audit</a></span>, <span class='object_link'><a href="Apps/Test/JS.html" title="Brut::CLI::Apps::Test::JS (class)">Apps::Test::JS</a></span>, <span class='object_link'><a href="Apps/Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Apps::Test::Run</a></span></p>
119
+ <p class="children"><span class='object_link'><a href="Apps/BuildAssets/All.html" title="Brut::CLI::Apps::BuildAssets::All (class)">Apps::BuildAssets::All</a></span>, <span class='object_link'><a href="Apps/BuildAssets/CSS.html" title="Brut::CLI::Apps::BuildAssets::CSS (class)">Apps::BuildAssets::CSS</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Images.html" title="Brut::CLI::Apps::BuildAssets::Images (class)">Apps::BuildAssets::Images</a></span>, <span class='object_link'><a href="Apps/BuildAssets/JS.html" title="Brut::CLI::Apps::BuildAssets::JS (class)">Apps::BuildAssets::JS</a></span>, <span class='object_link'><a href="Apps/DB/Create.html" title="Brut::CLI::Apps::DB::Create (class)">Apps::DB::Create</a></span>, <span class='object_link'><a href="Apps/DB/Drop.html" title="Brut::CLI::Apps::DB::Drop (class)">Apps::DB::Drop</a></span>, <span class='object_link'><a href="Apps/DB/Migrate.html" title="Brut::CLI::Apps::DB::Migrate (class)">Apps::DB::Migrate</a></span>, <span class='object_link'><a href="Apps/DB/NewMigration.html" title="Brut::CLI::Apps::DB::NewMigration (class)">Apps::DB::NewMigration</a></span>, <span class='object_link'><a href="Apps/DB/Rebuild.html" title="Brut::CLI::Apps::DB::Rebuild (class)">Apps::DB::Rebuild</a></span>, <span class='object_link'><a href="Apps/DB/Seed.html" title="Brut::CLI::Apps::DB::Seed (class)">Apps::DB::Seed</a></span>, <span class='object_link'><a href="Apps/DB/Status.html" title="Brut::CLI::Apps::DB::Status (class)">Apps::DB::Status</a></span>, <span class='object_link'><a href="Apps/HerokuContainerBasedDeploy/Deploy.html" title="Brut::CLI::Apps::HerokuContainerBasedDeploy::Deploy (class)">Apps::HerokuContainerBasedDeploy::Deploy</a></span>, <span class='object_link'><a href="Apps/Scaffold/Action.html" title="Brut::CLI::Apps::Scaffold::Action (class)">Apps::Scaffold::Action</a></span>, <span class='object_link'><a href="Apps/Scaffold/Component.html" title="Brut::CLI::Apps::Scaffold::Component (class)">Apps::Scaffold::Component</a></span>, <span class='object_link'><a href="Apps/Scaffold/CustomElementTest.html" title="Brut::CLI::Apps::Scaffold::CustomElementTest (class)">Apps::Scaffold::CustomElementTest</a></span>, <span class='object_link'><a href="Apps/Scaffold/E2ETest.html" title="Brut::CLI::Apps::Scaffold::E2ETest (class)">Apps::Scaffold::E2ETest</a></span>, <span class='object_link'><a href="Apps/Scaffold/Page.html" title="Brut::CLI::Apps::Scaffold::Page (class)">Apps::Scaffold::Page</a></span>, <span class='object_link'><a href="Apps/Scaffold/Test.html" title="Brut::CLI::Apps::Scaffold::Test (class)">Apps::Scaffold::Test</a></span>, <span class='object_link'><a href="Apps/Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Apps::Test::Audit</a></span>, <span class='object_link'><a href="Apps/Test/Js.html" title="Brut::CLI::Apps::Test::Js (class)">Apps::Test::Js</a></span>, <span class='object_link'><a href="Apps/Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Apps::Test::Run</a></span></p>
120
120
  </div>
121
121
 
122
122
 
@@ -1008,7 +1008,7 @@ or other characters meaningful to the shell, but if you like quotes, cool.</p>
1008
1008
  <td>
1009
1009
  <pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 74</span>
1010
1010
 
1011
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'><span class='object_link'><a href="../../RichString.html#underscorized-instance_method" title="RichString#underscorized (method)">underscorized</a></span></span></pre>
1011
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'>underscorized</span></pre>
1012
1012
  </td>
1013
1013
  </tr>
1014
1014
  </table>
@@ -2417,7 +2417,7 @@ the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::
2417
2417
  </div>
2418
2418
 
2419
2419
  <div id="footer">
2420
- Generated on Fri Jul 4 21:27:27 2025 by
2420
+ Generated on Thu Jul 10 13:41:03 2025 by
2421
2421
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2422
2422
  0.9.37 (ruby-3.4.4).
2423
2423
  </div>
@@ -129,7 +129,7 @@ trace.</p>
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Fri Jul 4 21:27:27 2025 by
132
+ Generated on Thu Jul 10 13:41:03 2025 by
133
133
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
134
134
  0.9.37 (ruby-3.4.4).
135
135
  </div>
@@ -654,7 +654,7 @@
654
654
  </div>
655
655
 
656
656
  <div id="footer">
657
- Generated on Fri Jul 4 21:27:28 2025 by
657
+ Generated on Thu Jul 10 13:41:04 2025 by
658
658
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
659
659
  0.9.37 (ruby-3.4.4).
660
660
  </div>
@@ -665,7 +665,7 @@ command.</p>
665
665
  </div>
666
666
 
667
667
  <div id="footer">
668
- Generated on Fri Jul 4 21:27:27 2025 by
668
+ Generated on Thu Jul 10 13:41:03 2025 by
669
669
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
670
670
  0.9.37 (ruby-3.4.4).
671
671
  </div>
@@ -551,7 +551,7 @@ instead, as it will not raise an exception.</p>
551
551
  </div>
552
552
 
553
553
  <div id="footer">
554
- Generated on Fri Jul 4 21:27:27 2025 by
554
+ Generated on Thu Jul 10 13:41:04 2025 by
555
555
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
556
556
  0.9.37 (ruby-3.4.4).
557
557
  </div>
@@ -235,7 +235,7 @@ error message given the global/command optiona dichotomy.</p>
235
235
  </div>
236
236
 
237
237
  <div id="footer">
238
- Generated on Fri Jul 4 21:27:27 2025 by
238
+ Generated on Thu Jul 10 13:41:03 2025 by
239
239
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
240
240
  0.9.37 (ruby-3.4.4).
241
241
  </div>
@@ -792,7 +792,7 @@ line.</p>
792
792
  </div>
793
793
 
794
794
  <div id="footer">
795
- Generated on Fri Jul 4 21:27:27 2025 by
795
+ Generated on Thu Jul 10 13:41:04 2025 by
796
796
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
797
797
  0.9.37 (ruby-3.4.4).
798
798
  </div>
@@ -689,7 +689,7 @@ it's intended to be piped into another app.</p>
689
689
  </div>
690
690
 
691
691
  <div id="footer">
692
- Generated on Fri Jul 4 21:27:27 2025 by
692
+ Generated on Thu Jul 10 13:41:03 2025 by
693
693
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
694
694
  0.9.37 (ruby-3.4.4).
695
695
  </div>
@@ -441,7 +441,7 @@
441
441
  </div>
442
442
 
443
443
  <div id="footer">
444
- Generated on Fri Jul 4 21:27:27 2025 by
444
+ Generated on Thu Jul 10 13:41:03 2025 by
445
445
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
446
446
  0.9.37 (ruby-3.4.4).
447
447
  </div>
@@ -253,7 +253,7 @@ it via <code>bin/clean-files</code>, you'd create <code>bin/clean-files</code> l
253
253
  </div>
254
254
 
255
255
  <div id="footer">
256
- Generated on Fri Jul 4 21:27:27 2025 by
256
+ Generated on Thu Jul 10 13:41:03 2025 by
257
257
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
258
258
  0.9.37 (ruby-3.4.4).
259
259
  </div>
@@ -215,7 +215,7 @@
215
215
  </div>
216
216
 
217
217
  <div id="footer">
218
- Generated on Fri Jul 4 21:27:27 2025 by
218
+ Generated on Thu Jul 10 13:41:04 2025 by
219
219
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
220
  0.9.37 (ruby-3.4.4).
221
221
  </div>
@@ -1087,7 +1087,7 @@ actions where an app needs to exist inside some organizational context.</p>
1087
1087
  </div>
1088
1088
 
1089
1089
  <div id="footer">
1090
- Generated on Fri Jul 4 21:27:27 2025 by
1090
+ Generated on Thu Jul 10 13:41:04 2025 by
1091
1091
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1092
1092
  0.9.37 (ruby-3.4.4).
1093
1093
  </div>
@@ -1035,7 +1035,7 @@ connection to your database.</p>
1035
1035
  </div>
1036
1036
 
1037
1037
  <div id="footer">
1038
- Generated on Fri Jul 4 21:27:28 2025 by
1038
+ Generated on Thu Jul 10 13:41:04 2025 by
1039
1039
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1040
1040
  0.9.37 (ruby-3.4.4).
1041
1041
  </div>