brut 0.0.28 → 0.0.29

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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/.projections.json +10 -0
  4. data/.rspec +3 -0
  5. data/Dockerfile.dx +32 -14
  6. data/Gemfile.lock +1 -1
  7. data/assets/Logo-Square.pxd +0 -0
  8. data/assets/LogoPylon.pxd +0 -0
  9. data/assets/LogoStop.pxd +0 -0
  10. data/assets/LogoTall.pxd +0 -0
  11. data/bin/docs +24 -2
  12. data/bin/rspec +27 -0
  13. data/bin/setup +3 -3
  14. data/brutrb.com/.vitepress/theme/custom.css +7 -0
  15. data/brutrb.com/.vitepress/theme/style.css +26 -15
  16. data/brutrb.com/deployment.md +123 -45
  17. data/brutrb.com/images/LogoPylon.png +0 -0
  18. data/brutrb.com/images/LogoSquare.png +0 -0
  19. data/brutrb.com/images/LogoStop.png +0 -0
  20. data/brutrb.com/images/LogoTall.png +0 -0
  21. data/brutrb.com/images/OverviewMetro.graffle +0 -0
  22. data/brutrb.com/images/OverviewMetro.png +0 -0
  23. data/brutrb.com/index.md +4 -3
  24. data/brutrb.com/overview.md +6 -6
  25. data/docker-compose.dx.yml +5 -2
  26. data/docs/404.html +3 -3
  27. data/docs/ai.html +4 -4
  28. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  29. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  30. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  31. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  32. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  33. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  34. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  35. data/docs/api/Brut/BackEnd.html +1 -1
  36. data/docs/api/Brut/CLI/App.html +1 -1
  37. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  60. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  61. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  62. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  63. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  64. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  65. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  66. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  67. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  68. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  69. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  70. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  71. data/docs/api/Brut/CLI/Apps.html +1 -1
  72. data/docs/api/Brut/CLI/Command.html +1 -1
  73. data/docs/api/Brut/CLI/Error.html +1 -1
  74. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  75. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  76. data/docs/api/Brut/CLI/Executor.html +1 -1
  77. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  78. data/docs/api/Brut/CLI/Options.html +1 -1
  79. data/docs/api/Brut/CLI/Output.html +1 -1
  80. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  81. data/docs/api/Brut/CLI.html +1 -1
  82. data/docs/api/Brut/FactoryBot.html +1 -1
  83. data/docs/api/Brut/Framework/App.html +1 -1
  84. data/docs/api/Brut/Framework/Config.html +1 -1
  85. data/docs/api/Brut/Framework/Container.html +1 -1
  86. data/docs/api/Brut/Framework/Error.html +1 -1
  87. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  88. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  89. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  90. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  91. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  92. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  93. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  94. data/docs/api/Brut/Framework/Errors.html +1 -1
  95. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  96. data/docs/api/Brut/Framework/MCP.html +1 -1
  97. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  98. data/docs/api/Brut/Framework.html +1 -1
  99. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +201 -0
  122. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +535 -0
  123. data/docs/api/Brut/FrontEnd/Forms/Input.html +983 -35
  124. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +29 -19
  126. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +9 -3
  127. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +9 -3
  129. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  132. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  141. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  142. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  143. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  144. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  157. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  158. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  159. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  160. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  161. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  162. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  163. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  167. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  169. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  170. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  171. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  172. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  173. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  174. data/docs/api/Brut/FrontEnd.html +1 -1
  175. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  176. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  177. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  178. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  179. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  180. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  181. data/docs/api/Brut/I18n.html +1 -1
  182. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  183. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  184. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  185. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  186. data/docs/api/Brut/Instrumentation.html +1 -1
  187. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  188. data/docs/api/Brut/SinatraHelpers.html +1 -1
  189. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  190. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  192. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  193. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  194. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  195. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  196. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  197. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  204. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  205. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  206. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  207. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  208. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  209. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  210. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  211. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  212. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  213. data/docs/api/Brut/SpecSupport.html +1 -1
  214. data/docs/api/Brut.html +1 -1
  215. data/docs/api/Clock.html +1 -1
  216. data/docs/api/RichString.html +1 -1
  217. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  218. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  219. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  220. data/docs/api/Sequel/Extensions.html +1 -1
  221. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  222. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  223. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  224. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  225. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  226. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  227. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  228. data/docs/api/Sequel/Plugins.html +1 -1
  229. data/docs/api/Sequel.html +1 -1
  230. data/docs/api/_index.html +15 -1
  231. data/docs/api/class_list.html +1 -1
  232. data/docs/api/css/full_list.css +2 -1
  233. data/docs/api/css/style.css +14 -13
  234. data/docs/api/file.README.html +1 -1
  235. data/docs/api/index.html +1 -1
  236. data/docs/api/method_list.html +419 -275
  237. data/docs/api/top-level-namespace.html +1 -1
  238. data/docs/assets/LogoStop.X8x-4riz.png +0 -0
  239. data/docs/assets/OverviewMetro.DUS-5fUZ.png +0 -0
  240. data/docs/assets/{app.BX81XO4N.js → app.BhrfSt68.js} +1 -1
  241. data/docs/assets/chunks/@localSearchIndexroot.CeRAdP1K.js +1 -0
  242. data/docs/assets/chunks/{VPLocalSearchBox.gABXcTWp.js → VPLocalSearchBox.Dpot_2H4.js} +1 -1
  243. data/docs/assets/chunks/{theme.DwUXXAL3.js → theme.N2SNVLgU.js} +2 -2
  244. data/docs/assets/{configuration.md.BGHl8oRC.js → configuration.md.LG-zIBww.js} +1 -1
  245. data/docs/assets/deployment.md.BLseERGV.js +48 -0
  246. data/docs/assets/deployment.md.BLseERGV.lean.js +1 -0
  247. data/docs/assets/{getting-started.md.Ciz82L0m.js → getting-started.md.Dj0qtZI2.js} +2 -2
  248. data/docs/assets/index.md.CuBB-BdM.js +1 -0
  249. data/docs/assets/index.md.CuBB-BdM.lean.js +1 -0
  250. data/docs/assets/{overview.md.C5wlBcR5.js → overview.md.DVKRM8zl.js} +4 -4
  251. data/docs/assets/overview.md.DVKRM8zl.lean.js +1 -0
  252. data/docs/assets/{style.D73IYGCX.css → style.B2o1L9eN.css} +1 -1
  253. data/docs/assets.html +4 -4
  254. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  255. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  256. data/docs/brut-js/api/Autosubmit.html +1 -1
  257. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  258. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  259. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  260. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  261. data/docs/brut-js/api/BufferedLogger.html +1 -1
  262. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  263. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  264. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  265. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  266. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  267. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  268. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  269. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  270. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  271. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  272. data/docs/brut-js/api/Form.html +1 -1
  273. data/docs/brut-js/api/Form.js.html +1 -1
  274. data/docs/brut-js/api/I18nTranslation.html +1 -1
  275. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  276. data/docs/brut-js/api/LocaleDetection.html +1 -1
  277. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  278. data/docs/brut-js/api/Logger.html +1 -1
  279. data/docs/brut-js/api/Logger.js.html +1 -1
  280. data/docs/brut-js/api/Message.html +1 -1
  281. data/docs/brut-js/api/Message.js.html +1 -1
  282. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  283. data/docs/brut-js/api/RichString.html +1 -1
  284. data/docs/brut-js/api/RichString.js.html +1 -1
  285. data/docs/brut-js/api/Tabs.html +1 -1
  286. data/docs/brut-js/api/Tabs.js.html +1 -1
  287. data/docs/brut-js/api/Tracing.html +1 -1
  288. data/docs/brut-js/api/Tracing.js.html +1 -1
  289. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  290. data/docs/brut-js/api/external-Performance.html +1 -1
  291. data/docs/brut-js/api/external-Promise.html +1 -1
  292. data/docs/brut-js/api/external-ValidityState.html +1 -1
  293. data/docs/brut-js/api/external-Window.html +1 -1
  294. data/docs/brut-js/api/external-fetch.html +1 -1
  295. data/docs/brut-js/api/global.html +1 -1
  296. data/docs/brut-js/api/index.html +1 -1
  297. data/docs/brut-js/api/index.js.html +1 -1
  298. data/docs/brut-js/api/module-testing.html +1 -1
  299. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  300. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  301. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  302. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  303. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  304. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  305. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  306. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  307. data/docs/brut-js/api/testing_index.js.html +1 -1
  308. data/docs/brut-js.html +4 -4
  309. data/docs/business-logic.html +4 -4
  310. data/docs/cli.html +4 -4
  311. data/docs/components.html +4 -4
  312. data/docs/configuration.html +6 -6
  313. data/docs/css.html +4 -4
  314. data/docs/custom-element-tests.html +4 -4
  315. data/docs/database-access.html +4 -4
  316. data/docs/database-schema.html +4 -4
  317. data/docs/deployment.html +53 -6
  318. data/docs/dev-environment.html +4 -4
  319. data/docs/doc-conventions.html +4 -4
  320. data/docs/end-to-end-tests.html +4 -4
  321. data/docs/flash-and-session.html +4 -4
  322. data/docs/forms.html +4 -4
  323. data/docs/getting-started.html +7 -7
  324. data/docs/handlers.html +4 -4
  325. data/docs/hashmap.json +1 -1
  326. data/docs/hooks.html +4 -4
  327. data/docs/i18n.html +4 -4
  328. data/docs/index.html +6 -6
  329. data/docs/instrumentation.html +4 -4
  330. data/docs/javascript.html +4 -4
  331. data/docs/jobs.html +4 -4
  332. data/docs/keyword-injection.html +4 -4
  333. data/docs/layouts.html +4 -4
  334. data/docs/lsp.html +4 -4
  335. data/docs/markdown-examples.html +4 -4
  336. data/docs/middleware.html +4 -4
  337. data/docs/not-released.html +4 -4
  338. data/docs/overview.html +9 -9
  339. data/docs/pages.html +4 -4
  340. data/docs/recipes/authentication.html +4 -4
  341. data/docs/routes.html +4 -4
  342. data/docs/security.html +4 -4
  343. data/docs/seed-data.html +4 -4
  344. data/docs/space-time-continuum.html +4 -4
  345. data/docs/tutorial.html +4 -4
  346. data/docs/unit-tests.html +4 -4
  347. data/dx/bash_customizations +7 -0
  348. data/dx/build +13 -2
  349. data/dx/docker-compose.env +1 -1
  350. data/dx/exec +25 -8
  351. data/lib/brut/front_end/forms/input.rb +253 -20
  352. data/lib/brut/front_end/forms/input_definition.rb +15 -12
  353. data/lib/brut/front_end.rb +1 -0
  354. data/lib/brut/version.rb +1 -1
  355. data/specs/brut/front_end/forms/input.spec.rb +978 -0
  356. data/specs/spec_helper.rb +27 -0
  357. data/specs/support/matchers/have_constraint_violation.rb +23 -0
  358. data/specs/support/matchers.rb +5 -0
  359. data/specs/support.rb +3 -0
  360. metadata +39 -17
  361. data/docs/assets/chunks/@localSearchIndexroot.CoYzciVi.js +0 -1
  362. data/docs/assets/deployment.md.Dbka4OTr.js +0 -1
  363. data/docs/assets/deployment.md.Dbka4OTr.lean.js +0 -1
  364. data/docs/assets/index.md.B28EwVpq.js +0 -1
  365. data/docs/assets/index.md.B28EwVpq.lean.js +0 -1
  366. data/docs/assets/overview.Da81cB9R.png +0 -0
  367. data/docs/assets/overview.md.C5wlBcR5.lean.js +0 -1
  368. /data/docs/assets/{configuration.md.BGHl8oRC.lean.js → configuration.md.LG-zIBww.lean.js} +0 -0
  369. /data/docs/assets/{getting-started.md.Ciz82L0m.lean.js → getting-started.md.Dj0qtZI2.lean.js} +0 -0
@@ -537,7 +537,7 @@ Components::Inputs::Select</p>
537
537
  </div>
538
538
 
539
539
  <div id="footer">
540
- Generated on Wed Jul 2 21:45:27 2025 by
540
+ Generated on Fri Jul 4 21:27:27 2025 by
541
541
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
542
542
  0.9.37 (ruby-3.4.4).
543
543
  </div>
@@ -418,7 +418,7 @@ such as implementing a <span class='object_link'><a href="../../BackEnd/Validato
418
418
  <li class="public ">
419
419
  <span class="summary_signature">
420
420
 
421
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(max: nil, maxlength: nil, min: nil, minlength: nil, name: nil, pattern: nil, required: :based_on_type, step: nil, type: nil, array: false) &#x21d2; InputDefinition </a>
421
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(max: nil, maxlength: nil, min: nil, minlength: nil, name: nil, pattern: :based_on_type, required: :based_on_type, step: nil, type: nil, array: false) &#x21d2; InputDefinition </a>
422
422
 
423
423
 
424
424
 
@@ -483,7 +483,7 @@ such as implementing a <span class='object_link'><a href="../../BackEnd/Validato
483
483
  <div class="method_details first">
484
484
  <h3 class="signature first" id="initialize-instance_method">
485
485
 
486
- #<strong>initialize</strong>(max: nil, maxlength: nil, min: nil, minlength: nil, name: nil, pattern: nil, required: :based_on_type, step: nil, type: nil, array: false) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::FrontEnd::Forms::InputDefinition (class)">InputDefinition</a></span></tt>
486
+ #<strong>initialize</strong>(max: nil, maxlength: nil, min: nil, minlength: nil, name: nil, pattern: :based_on_type, required: :based_on_type, step: nil, type: nil, array: false) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::FrontEnd::Forms::InputDefinition (class)">InputDefinition</a></span></tt>
487
487
 
488
488
 
489
489
 
@@ -595,7 +595,7 @@ we can in Ruby so that client side validations can be safely used for user exper
595
595
  <span class='type'>(<tt>Regexp</tt>)</span>
596
596
 
597
597
 
598
- <em class="default">(defaults to: <tt>nil</tt>)</em>
598
+ <em class="default">(defaults to: <tt>:based_on_type</tt>)</em>
599
599
 
600
600
 
601
601
  &mdash;
@@ -690,6 +690,8 @@ we can in Ruby so that client side validations can be safely used for user exper
690
690
  <pre class="lines">
691
691
 
692
692
 
693
+ 60
694
+ 61
693
695
  62
694
696
  63
695
697
  64
@@ -734,10 +736,13 @@ we can in Ruby so that client side validations can be safely used for user exper
734
736
  103
735
737
  104
736
738
  105
737
- 106</pre>
739
+ 106
740
+ 107
741
+ 108
742
+ 109</pre>
738
743
  </td>
739
744
  <td>
740
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 62</span>
745
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 60</span>
741
746
 
742
747
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span>
743
748
  <span class='label'>max:</span> <span class='kw'>nil</span><span class='comma'>,</span>
@@ -745,7 +750,7 @@ we can in Ruby so that client side validations can be safely used for user exper
745
750
  <span class='label'>min:</span> <span class='kw'>nil</span><span class='comma'>,</span>
746
751
  <span class='label'>minlength:</span> <span class='kw'>nil</span><span class='comma'>,</span>
747
752
  <span class='label'>name:</span> <span class='kw'>nil</span><span class='comma'>,</span>
748
- <span class='label'>pattern:</span> <span class='kw'>nil</span><span class='comma'>,</span>
753
+ <span class='label'>pattern:</span> <span class='symbol'>:based_on_type</span><span class='comma'>,</span>
749
754
  <span class='label'>required:</span> <span class='symbol'>:based_on_type</span><span class='comma'>,</span>
750
755
  <span class='label'>step:</span> <span class='kw'>nil</span><span class='comma'>,</span>
751
756
  <span class='label'>type:</span> <span class='kw'>nil</span><span class='comma'>,</span>
@@ -769,20 +774,25 @@ we can in Ruby so that client side validations can be safely used for user exper
769
774
  <span class='id identifier rubyid_required'>required</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>checkbox</span><span class='tstring_end'>&quot;</span></span>
770
775
  <span class='kw'>end</span>
771
776
 
772
- <span class='ivar'>@max</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_max'>max</span> <span class='comma'>,</span> <span class='const'>Numeric</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>max</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
777
+ <span class='ivar'>@max</span> <span class='op'>=</span> <span class='id identifier rubyid_max'>max</span>
773
778
  <span class='ivar'>@maxlength</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_maxlength'>maxlength</span> <span class='comma'>,</span> <span class='const'>Numeric</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>maxlength</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
774
- <span class='ivar'>@min</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_min'>min</span> <span class='comma'>,</span> <span class='const'>Numeric</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>min</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
779
+ <span class='ivar'>@min</span> <span class='op'>=</span> <span class='id identifier rubyid_min'>min</span>
775
780
  <span class='ivar'>@minlength</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_minlength'>minlength</span> <span class='comma'>,</span> <span class='const'>Numeric</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>minlength</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
776
781
  <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_name'>name</span> <span class='comma'>,</span> <span class='const'>String</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>required:</span> <span class='kw'>true</span><span class='rparen'>)</span>
777
- <span class='ivar'>@pattern</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_pattern'>pattern</span> <span class='comma'>,</span> <span class='const'>String</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pattern</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
778
782
  <span class='ivar'>@required</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_required'>required</span> <span class='comma'>,</span> <span class='lbracket'>[</span><span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rbracket'>]</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>required</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>required:</span> <span class='kw'>true</span><span class='rparen'>)</span>
779
783
  <span class='ivar'>@step</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_step'>step</span> <span class='comma'>,</span> <span class='const'>Numeric</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>step</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
780
784
  <span class='ivar'>@type</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_type'>type</span> <span class='comma'>,</span> <span class='const'>INPUT_TYPES_TO_CLASS</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>required:</span> <span class='kw'>true</span><span class='rparen'>)</span>
781
785
  <span class='ivar'>@array</span> <span class='op'>=</span> <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_array'>array</span> <span class='comma'>,</span> <span class='lbracket'>[</span><span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rbracket'>]</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>array</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>required:</span> <span class='kw'>true</span><span class='rparen'>)</span>
782
786
 
783
- <span class='kw'>if</span> <span class='ivar'>@pattern</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>email</span><span class='tstring_end'>&quot;</span></span>
784
- <span class='ivar'>@pattern</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^[^@]+@[^@]+\.[^@]+$</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_source'>source</span>
785
- <span class='kw'>end</span>
787
+ <span class='ivar'>@pattern</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_pattern'>pattern</span> <span class='op'>==</span> <span class='symbol'>:based_on_type</span>
788
+ <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>email</span><span class='tstring_end'>&quot;</span></span>
789
+ <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^[^@]+@[^@]+\.[^@]+$</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_source'>source</span>
790
+ <span class='kw'>else</span>
791
+ <span class='kw'>nil</span>
792
+ <span class='kw'>end</span>
793
+ <span class='kw'>else</span>
794
+ <span class='id identifier rubyid_type!'>type!</span><span class='lparen'>(</span> <span class='id identifier rubyid_pattern'>pattern</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pattern</span><span class='tstring_end'>&quot;</span></span> <span class='rparen'>)</span>
795
+ <span class='kw'>end</span>
786
796
  <span class='kw'>end</span></pre>
787
797
  </td>
788
798
  </tr>
@@ -1217,10 +1227,10 @@ we can in Ruby so that client side validations can be safely used for user exper
1217
1227
  <pre class="lines">
1218
1228
 
1219
1229
 
1220
- 108</pre>
1230
+ 111</pre>
1221
1231
  </td>
1222
1232
  <td>
1223
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 108</span>
1233
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 111</span>
1224
1234
 
1225
1235
  <span class='kw'>def</span> <span class='id identifier rubyid_array?'>array?</span> <span class='op'>=</span> <span class='ivar'>@array</span></pre>
1226
1236
  </td>
@@ -1288,12 +1298,12 @@ inputs. <code>nil</code> is allowed only if the input definition is not for an a
1288
1298
  <pre class="lines">
1289
1299
 
1290
1300
 
1291
- 115
1292
- 116
1293
- 117</pre>
1301
+ 118
1302
+ 119
1303
+ 120</pre>
1294
1304
  </td>
1295
1305
  <td>
1296
- <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 115</span>
1306
+ <pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/input_definition.rb', line 118</span>
1297
1307
 
1298
1308
  <span class='kw'>def</span> <span class='id identifier rubyid_make_input'>make_input</span><span class='lparen'>(</span><span class='label'>value:</span><span class='comma'>,</span> <span class='label'>index:</span><span class='rparen'>)</span>
1299
1309
  <span class='const'><span class='object_link'><a href="../../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../FrontEnd.html" title="Brut::FrontEnd (module)">FrontEnd</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Forms.html" title="Brut::FrontEnd::Forms (module)">Forms</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Input.html" title="Brut::FrontEnd::Forms::Input (class)">Input</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Input.html#initialize-instance_method" title="Brut::FrontEnd::Forms::Input#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>input_definition:</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='label'>value:</span><span class='comma'>,</span> <span class='label'>index:</span><span class='rparen'>)</span>
@@ -1308,7 +1318,7 @@ inputs. <code>nil</code> is allowed only if the input definition is not for an a
1308
1318
  </div>
1309
1319
 
1310
1320
  <div id="footer">
1311
- Generated on Wed Jul 2 21:45:28 2025 by
1321
+ Generated on Fri Jul 4 21:27:28 2025 by
1312
1322
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1313
1323
  0.9.37 (ruby-3.4.4).
1314
1324
  </div>
@@ -411,7 +411,10 @@
411
411
 
412
412
  </h3><div class="docstring">
413
413
  <div class="discussion">
414
- <p>Returns the input's value.</p>
414
+ <p>Returns the input's value. <strong>DO NOTE</strong> this returns a string. This is
415
+ because HTML stores these values as Strings. When using a checkbox, in
416
+ particular, the value will <em>not</em> be a boolean. You cannot do <code>if
417
+ input.value</code> and expect that work. See #typed_value instead.</p>
415
418
 
416
419
 
417
420
  </div>
@@ -429,7 +432,10 @@
429
432
 
430
433
 
431
434
  &mdash;
432
- <div class='inline'><p>the input's value</p>
435
+ <div class='inline'><p>the input's value. <strong>DO NOTE</strong> this returns a string. This is
436
+ because HTML stores these values as Strings. When using a checkbox, in
437
+ particular, the value will <em>not</em> be a boolean. You cannot do <code>if
438
+ input.value</code> and expect that work. See #typed_value instead.</p>
433
439
  </div>
434
440
 
435
441
  </li>
@@ -599,7 +605,7 @@ that <code>key</code> should not be a key used for client-side validations.</p>
599
605
  </div>
600
606
 
601
607
  <div id="footer">
602
- Generated on Wed Jul 2 21:45:28 2025 by
608
+ Generated on Fri Jul 4 21:27:29 2025 by
603
609
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
604
610
  0.9.37 (ruby-3.4.4).
605
611
  </div>
@@ -577,7 +577,7 @@ supported by the browser. Also note that arrays of radio button groups are not
577
577
  </div>
578
578
 
579
579
  <div id="footer">
580
- Generated on Wed Jul 2 21:45:28 2025 by
580
+ Generated on Fri Jul 4 21:27:29 2025 by
581
581
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
582
582
  0.9.37 (ruby-3.4.4).
583
583
  </div>
@@ -415,7 +415,10 @@
415
415
 
416
416
  </h3><div class="docstring">
417
417
  <div class="discussion">
418
- <p>Returns the input's value.</p>
418
+ <p>Returns the input's value. <strong>DO NOTE</strong> this returns a string. This is
419
+ because HTML stores these values as Strings. When using a checkbox, in
420
+ particular, the value will <em>not</em> be a boolean. You cannot do <code>if
421
+ input.value</code> and expect that work. See #typed_value instead.</p>
419
422
 
420
423
 
421
424
  </div>
@@ -433,7 +436,10 @@
433
436
 
434
437
 
435
438
  &mdash;
436
- <div class='inline'><p>the input's value</p>
439
+ <div class='inline'><p>the input's value. <strong>DO NOTE</strong> this returns a string. This is
440
+ because HTML stores these values as Strings. When using a checkbox, in
441
+ particular, the value will <em>not</em> be a boolean. You cannot do <code>if
442
+ input.value</code> and expect that work. See #typed_value instead.</p>
437
443
  </div>
438
444
 
439
445
  </li>
@@ -603,7 +609,7 @@ that <code>key</code> should not be a key used for client-side validations.</p>
603
609
  </div>
604
610
 
605
611
  <div id="footer">
606
- Generated on Wed Jul 2 21:45:27 2025 by
612
+ Generated on Fri Jul 4 21:27:28 2025 by
607
613
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
608
614
  0.9.37 (ruby-3.4.4).
609
615
  </div>
@@ -572,7 +572,7 @@ such as implementing a <span class='object_link'><a href="../../BackEnd/Validato
572
572
  </div>
573
573
 
574
574
  <div id="footer">
575
- Generated on Wed Jul 2 21:45:28 2025 by
575
+ Generated on Fri Jul 4 21:27:28 2025 by
576
576
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
577
577
  0.9.37 (ruby-3.4.4).
578
578
  </div>
@@ -649,7 +649,7 @@ on your use-case.</p>
649
649
  </div>
650
650
 
651
651
  <div id="footer">
652
- Generated on Wed Jul 2 21:45:28 2025 by
652
+ Generated on Fri Jul 4 21:27:28 2025 by
653
653
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
654
654
  0.9.37 (ruby-3.4.4).
655
655
  </div>
@@ -117,7 +117,7 @@
117
117
  </div>
118
118
 
119
119
  <div id="footer">
120
- Generated on Wed Jul 2 21:45:26 2025 by
120
+ Generated on Fri Jul 4 21:27:27 2025 by
121
121
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
122
122
  0.9.37 (ruby-3.4.4).
123
123
  </div>
@@ -367,7 +367,7 @@ something that responds to <code>each</code>.</p>
367
367
  </div>
368
368
 
369
369
  <div id="footer">
370
- Generated on Wed Jul 2 21:45:27 2025 by
370
+ Generated on Fri Jul 4 21:27:28 2025 by
371
371
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
372
372
  0.9.37 (ruby-3.4.4).
373
373
  </div>
@@ -432,7 +432,7 @@ returns is returned here.</p>
432
432
  </div>
433
433
 
434
434
  <div id="footer">
435
- Generated on Wed Jul 2 21:45:27 2025 by
435
+ Generated on Fri Jul 4 21:27:28 2025 by
436
436
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
437
437
  0.9.37 (ruby-3.4.4).
438
438
  </div>
@@ -308,7 +308,7 @@ configured in <span class='object_link'><a href="../RouteHooks/CSPNoInlineStyles
308
308
  </div>
309
309
 
310
310
  <div id="footer">
311
- Generated on Wed Jul 2 21:45:28 2025 by
311
+ Generated on Fri Jul 4 21:27:29 2025 by
312
312
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
313
313
  0.9.37 (ruby-3.4.4).
314
314
  </div>
@@ -326,7 +326,7 @@
326
326
  </div>
327
327
 
328
328
  <div id="footer">
329
- Generated on Wed Jul 2 21:45:28 2025 by
329
+ Generated on Fri Jul 4 21:27:29 2025 by
330
330
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
331
331
  0.9.37 (ruby-3.4.4).
332
332
  </div>
@@ -389,7 +389,7 @@
389
389
  </div>
390
390
 
391
391
  <div id="footer">
392
- Generated on Wed Jul 2 21:45:28 2025 by
392
+ Generated on Fri Jul 4 21:27:29 2025 by
393
393
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
394
394
  0.9.37 (ruby-3.4.4).
395
395
  </div>
@@ -344,7 +344,7 @@ the app.</p>
344
344
  </div>
345
345
 
346
346
  <div id="footer">
347
- Generated on Wed Jul 2 21:45:28 2025 by
347
+ Generated on Fri Jul 4 21:27:29 2025 by
348
348
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
349
349
  0.9.37 (ruby-3.4.4).
350
350
  </div>
@@ -141,7 +141,7 @@
141
141
  </div>
142
142
 
143
143
  <div id="footer">
144
- Generated on Wed Jul 2 21:45:28 2025 by
144
+ Generated on Fri Jul 4 21:27:28 2025 by
145
145
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
146
146
  0.9.37 (ruby-3.4.4).
147
147
  </div>
@@ -305,7 +305,7 @@
305
305
  </div>
306
306
 
307
307
  <div id="footer">
308
- Generated on Wed Jul 2 21:45:28 2025 by
308
+ Generated on Fri Jul 4 21:27:28 2025 by
309
309
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
310
  0.9.37 (ruby-3.4.4).
311
311
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Wed Jul 2 21:45:26 2025 by
118
+ Generated on Fri Jul 4 21:27:27 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.4).
121
121
  </div>
@@ -329,7 +329,7 @@ redirect to a non-GET.</p>
329
329
  </div>
330
330
 
331
331
  <div id="footer">
332
- Generated on Wed Jul 2 21:45:27 2025 by
332
+ Generated on Fri Jul 4 21:27:27 2025 by
333
333
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
334
334
  0.9.37 (ruby-3.4.4).
335
335
  </div>
@@ -651,7 +651,7 @@
651
651
  </div>
652
652
 
653
653
  <div id="footer">
654
- Generated on Wed Jul 2 21:45:27 2025 by
654
+ Generated on Fri Jul 4 21:27:28 2025 by
655
655
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
656
656
  0.9.37 (ruby-3.4.4).
657
657
  </div>
@@ -486,7 +486,7 @@ considered a valid HTTP status code</p>
486
486
  </div>
487
487
 
488
488
  <div id="footer">
489
- Generated on Wed Jul 2 21:45:27 2025 by
489
+ Generated on Fri Jul 4 21:27:28 2025 by
490
490
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
491
491
  0.9.37 (ruby-3.4.4).
492
492
  </div>
@@ -274,7 +274,7 @@
274
274
  </div>
275
275
 
276
276
  <div id="footer">
277
- Generated on Wed Jul 2 21:45:28 2025 by
277
+ Generated on Fri Jul 4 21:27:28 2025 by
278
278
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
279
279
  0.9.37 (ruby-3.4.4).
280
280
  </div>
@@ -308,7 +308,7 @@ inserted into the filename.</p>
308
308
  </div>
309
309
 
310
310
  <div id="footer">
311
- Generated on Wed Jul 2 21:45:27 2025 by
311
+ Generated on Fri Jul 4 21:27:28 2025 by
312
312
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
313
313
  0.9.37 (ruby-3.4.4).
314
314
  </div>
@@ -125,7 +125,7 @@
125
125
  </div>
126
126
 
127
127
  <div id="footer">
128
- Generated on Wed Jul 2 21:45:27 2025 by
128
+ Generated on Fri Jul 4 21:27:28 2025 by
129
129
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
130
130
  0.9.37 (ruby-3.4.4).
131
131
  </div>
@@ -278,7 +278,7 @@ represents one that Brut is managing.</p>
278
278
  </div>
279
279
 
280
280
  <div id="footer">
281
- Generated on Wed Jul 2 21:45:28 2025 by
281
+ Generated on Fri Jul 4 21:27:29 2025 by
282
282
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
283
283
  0.9.37 (ruby-3.4.4).
284
284
  </div>
@@ -282,7 +282,7 @@
282
282
  </div>
283
283
 
284
284
  <div id="footer">
285
- Generated on Wed Jul 2 21:45:28 2025 by
285
+ Generated on Fri Jul 4 21:27:28 2025 by
286
286
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
287
287
  0.9.37 (ruby-3.4.4).
288
288
  </div>
@@ -314,7 +314,7 @@
314
314
  </div>
315
315
 
316
316
  <div id="footer">
317
- Generated on Wed Jul 2 21:45:28 2025 by
317
+ Generated on Fri Jul 4 21:27:29 2025 by
318
318
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
319
319
  0.9.37 (ruby-3.4.4).
320
320
  </div>
@@ -366,7 +366,7 @@
366
366
  </div>
367
367
 
368
368
  <div id="footer">
369
- Generated on Wed Jul 2 21:45:28 2025 by
369
+ Generated on Fri Jul 4 21:27:28 2025 by
370
370
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
371
371
  0.9.37 (ruby-3.4.4).
372
372
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Wed Jul 2 21:45:26 2025 by
118
+ Generated on Fri Jul 4 21:27:27 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.4).
121
121
  </div>
@@ -763,7 +763,7 @@ inside.</p>
763
763
  </div>
764
764
 
765
765
  <div id="footer">
766
- Generated on Wed Jul 2 21:45:27 2025 by
766
+ Generated on Fri Jul 4 21:27:28 2025 by
767
767
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
768
768
  0.9.37 (ruby-3.4.4).
769
769
  </div>
@@ -787,7 +787,7 @@ next steps to take.</p>
787
787
  </div>
788
788
 
789
789
  <div id="footer">
790
- Generated on Wed Jul 2 21:45:28 2025 by
790
+ Generated on Fri Jul 4 21:27:28 2025 by
791
791
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
792
792
  0.9.37 (ruby-3.4.4).
793
793
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Wed Jul 2 21:45:26 2025 by
118
+ Generated on Fri Jul 4 21:27:27 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.4).
121
121
  </div>
@@ -1302,7 +1302,7 @@ not present in this <code>RequestContext</code>.</p>
1302
1302
  </div>
1303
1303
 
1304
1304
  <div id="footer">
1305
- Generated on Wed Jul 2 21:45:27 2025 by
1305
+ Generated on Fri Jul 4 21:27:28 2025 by
1306
1306
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1307
1307
  0.9.37 (ruby-3.4.4).
1308
1308
  </div>
@@ -414,7 +414,7 @@ determine what information is avaiable.</p>
414
414
  </div>
415
415
 
416
416
  <div id="footer">
417
- Generated on Wed Jul 2 21:45:27 2025 by
417
+ Generated on Fri Jul 4 21:27:28 2025 by
418
418
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
419
419
  0.9.37 (ruby-3.4.4).
420
420
  </div>
@@ -232,7 +232,7 @@
232
232
  </div>
233
233
 
234
234
  <div id="footer">
235
- Generated on Wed Jul 2 21:45:28 2025 by
235
+ Generated on Fri Jul 4 21:27:28 2025 by
236
236
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
237
237
  0.9.37 (ruby-3.4.4).
238
238
  </div>
@@ -239,7 +239,7 @@ by the temporary use of inline styles.</p>
239
239
  </div>
240
240
 
241
241
  <div id="footer">
242
- Generated on Wed Jul 2 21:45:28 2025 by
242
+ Generated on Fri Jul 4 21:27:29 2025 by
243
243
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
244
244
  0.9.37 (ruby-3.4.4).
245
245
  </div>
@@ -254,7 +254,7 @@ This is useful for existing apps where you want to migrate to a more secure poli
254
254
  </div>
255
255
 
256
256
  <div id="footer">
257
- Generated on Wed Jul 2 21:45:28 2025 by
257
+ Generated on Fri Jul 4 21:27:29 2025 by
258
258
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
259
259
  0.9.37 (ruby-3.4.4).
260
260
  </div>
@@ -251,7 +251,7 @@
251
251
  </div>
252
252
 
253
253
  <div id="footer">
254
- Generated on Wed Jul 2 21:45:28 2025 by
254
+ Generated on Fri Jul 4 21:27:29 2025 by
255
255
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
256
256
  0.9.37 (ruby-3.4.4).
257
257
  </div>
@@ -274,7 +274,7 @@ Ruby's <code>I18n</code> to use it. This will also store the value in the sessi
274
274
  </div>
275
275
 
276
276
  <div id="footer">
277
- Generated on Wed Jul 2 21:45:28 2025 by
277
+ Generated on Fri Jul 4 21:27:28 2025 by
278
278
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
279
279
  0.9.37 (ruby-3.4.4).
280
280
  </div>
@@ -242,7 +242,7 @@ and strings provided by Rack.</p>
242
242
  </div>
243
243
 
244
244
  <div id="footer">
245
- Generated on Wed Jul 2 21:45:28 2025 by
245
+ Generated on Fri Jul 4 21:27:29 2025 by
246
246
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
247
247
  0.9.37 (ruby-3.4.4).
248
248
  </div>
@@ -105,7 +105,7 @@
105
105
  </div>
106
106
 
107
107
  <div id="footer">
108
- Generated on Wed Jul 2 21:45:26 2025 by
108
+ Generated on Fri Jul 4 21:27:27 2025 by
109
109
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
110
  0.9.37 (ruby-3.4.4).
111
111
  </div>
@@ -217,7 +217,7 @@
217
217
  </div>
218
218
 
219
219
  <div id="footer">
220
- Generated on Wed Jul 2 21:45:27 2025 by
220
+ Generated on Fri Jul 4 21:27:28 2025 by
221
221
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
222
222
  0.9.37 (ruby-3.4.4).
223
223
  </div>