brut 0.0.26 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/brutrb.com/.vitepress/config.mjs +2 -0
- data/brutrb.com/ai.md +6 -1
- data/brutrb.com/components.md +1 -1
- data/brutrb.com/dev-environment.md +6 -5
- data/brutrb.com/doc-conventions.md +1 -1
- data/brutrb.com/forms.md +22 -26
- data/brutrb.com/getting-started.md +94 -23
- data/brutrb.com/instrumentation.md +12 -0
- data/brutrb.com/layouts.md +130 -0
- data/brutrb.com/lsp.md +23 -0
- data/docs/404.html +2 -2
- data/docs/ai.html +5 -5
- data/docs/api/Brut/BackEnd/SeedData.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
- data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
- data/docs/api/Brut/BackEnd/Validators.html +1 -1
- data/docs/api/Brut/BackEnd.html +1 -1
- data/docs/api/Brut/CLI/App.html +38 -13
- data/docs/api/Brut/CLI/AppRunner.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
- data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +2 -2
- data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
- data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
- data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Create.html +2 -2
- data/docs/api/Brut/CLI/Apps/DB/Drop.html +2 -2
- data/docs/api/Brut/CLI/Apps/DB/Migrate.html +9 -3
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +11 -11
- data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +2 -2
- data/docs/api/Brut/CLI/Apps/DB/Seed.html +2 -2
- data/docs/api/Brut/CLI/Apps/DB/Status.html +12 -12
- data/docs/api/Brut/CLI/Apps/DB.html +1 -1
- data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +270 -0
- data/docs/api/Brut/CLI/Apps/DeployBase.html +257 -0
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +585 -0
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +196 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +12 -10
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +8 -8
- data/docs/api/Brut/CLI/Apps/Test/JS.html +9 -9
- data/docs/api/Brut/CLI/Apps/Test/Run.html +18 -18
- data/docs/api/Brut/CLI/Apps/Test.html +1 -1
- data/docs/api/Brut/CLI/Apps.html +2 -2
- data/docs/api/Brut/CLI/Command.html +113 -28
- data/docs/api/Brut/CLI/Error.html +1 -1
- data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
- data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
- data/docs/api/Brut/CLI/Executor.html +169 -38
- data/docs/api/Brut/CLI/InvalidOption.html +1 -1
- data/docs/api/Brut/CLI/Options.html +68 -19
- data/docs/api/Brut/CLI/Output.html +1 -1
- data/docs/api/Brut/CLI/SystemExecError.html +1 -1
- data/docs/api/Brut/CLI.html +1 -1
- data/docs/api/Brut/FactoryBot.html +1 -1
- data/docs/api/Brut/Framework/App.html +1 -1
- data/docs/api/Brut/Framework/Config.html +1 -1
- data/docs/api/Brut/Framework/Container.html +110 -29
- data/docs/api/Brut/Framework/Error.html +1 -1
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +89 -1
- data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
- data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
- data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
- data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
- data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
- data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
- data/docs/api/Brut/Framework/Errors.html +31 -8
- data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
- data/docs/api/Brut/Framework/MCP.html +1 -1
- data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
- data/docs/api/Brut/Framework.html +1 -1
- data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
- data/docs/api/Brut/FrontEnd/Component/Helpers.html +36 -26
- data/docs/api/Brut/FrontEnd/Component.html +7 -7
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +37 -29
- data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +20 -117
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +25 -23
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +73 -380
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +22 -138
- data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
- data/docs/api/Brut/FrontEnd/Components.html +23 -2
- data/docs/api/Brut/FrontEnd/Download.html +1 -1
- data/docs/api/Brut/FrontEnd/Flash.html +1 -1
- data/docs/api/Brut/FrontEnd/Form.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +24 -68
- data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +4 -4
- data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +72 -22
- data/docs/api/Brut/FrontEnd/Forms.html +1 -1
- data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
- data/docs/api/Brut/FrontEnd/Handler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
- data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
- data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
- data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
- data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
- data/docs/api/Brut/FrontEnd/Layout.html +1 -1
- data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +6 -2
- data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
- data/docs/api/Brut/FrontEnd/Page.html +1 -1
- data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
- data/docs/api/Brut/FrontEnd/Pages.html +1 -1
- data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing.html +1 -1
- data/docs/api/Brut/FrontEnd/Session.html +1 -1
- data/docs/api/Brut/FrontEnd.html +1 -1
- data/docs/api/Brut/I18n/BaseMethods.html +1 -1
- data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
- data/docs/api/Brut/I18n/ForCLI.html +1 -1
- data/docs/api/Brut/I18n/ForHTML.html +1 -1
- data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
- data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
- data/docs/api/Brut/I18n.html +1 -1
- data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
- data/docs/api/Brut/Instrumentation.html +1 -1
- data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
- data/docs/api/Brut/SinatraHelpers.html +1 -1
- data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/E2ETestServer.html +20 -20
- data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
- data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
- data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +142 -0
- data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +142 -0
- data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +155 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +55 -25
- data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +149 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +46 -19
- data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +149 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +149 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +165 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +158 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +156 -0
- data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +24 -24
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +55 -20
- data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
- data/docs/api/Brut/SpecSupport.html +1 -1
- data/docs/api/Brut.html +1 -1
- data/docs/api/Clock.html +1 -1
- data/docs/api/RichString.html +1 -1
- data/docs/api/SemanticLogger/Appender/Async.html +1 -1
- data/docs/api/Sequel/Extensions/BrutInstrumentation.html +5 -1
- data/docs/api/Sequel/Extensions/BrutMigrations.html +36 -28
- data/docs/api/Sequel/Extensions.html +1 -1
- data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
- data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
- data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
- data/docs/api/Sequel/Plugins/FindBang.html +1 -1
- data/docs/api/Sequel/Plugins.html +1 -1
- data/docs/api/Sequel.html +1 -1
- data/docs/api/SpecSupport/Matchers/BeABug.html +143 -0
- data/docs/api/_index.html +92 -1
- data/docs/api/class_list.html +1 -1
- data/docs/api/file.README.html +1 -1
- data/docs/api/index.html +1 -1
- data/docs/api/method_list.html +392 -336
- data/docs/api/top-level-namespace.html +1 -1
- data/docs/assets/{ai.md.tZrjP9im.js → ai.md._6HCDL6d.js} +1 -1
- data/docs/assets/ai.md._6HCDL6d.lean.js +1 -0
- data/docs/assets/{app.D_yaTITQ.js → app.BX81XO4N.js} +1 -1
- data/docs/assets/chunks/@localSearchIndexroot.CoYzciVi.js +1 -0
- data/docs/assets/chunks/{VPLocalSearchBox.B2-ZzyTY.js → VPLocalSearchBox.gABXcTWp.js} +1 -1
- data/docs/assets/chunks/{theme.CfGFVRvE.js → theme.DwUXXAL3.js} +2 -2
- data/docs/assets/{components.md.eCttGlN-.js → components.md.CRUMdRoN.js} +1 -1
- data/docs/assets/{configuration.md.BRriU0cL.js → configuration.md.BGHl8oRC.js} +1 -1
- data/docs/assets/{dev-environment.md.BNc8AYiK.js → dev-environment.md.GZv6xvi9.js} +1 -1
- data/docs/assets/doc-conventions.md.-kN3Xo5C.js +1 -0
- data/docs/assets/{doc-conventions.md.DCfRXXi-.lean.js → doc-conventions.md.-kN3Xo5C.lean.js} +1 -1
- data/docs/assets/{forms.md.CBTYQ_Cz.js → forms.md.B-koVgyw.js} +23 -23
- data/docs/assets/{forms.md.CBTYQ_Cz.lean.js → forms.md.B-koVgyw.lean.js} +1 -1
- data/docs/assets/getting-started.md.Ciz82L0m.js +25 -0
- data/docs/assets/getting-started.md.Ciz82L0m.lean.js +1 -0
- data/docs/assets/{instrumentation.md.CL6ax7nT.js → instrumentation.md.a9Pjps4P.js} +2 -2
- data/docs/assets/{instrumentation.md.CL6ax7nT.lean.js → instrumentation.md.a9Pjps4P.lean.js} +1 -1
- data/docs/assets/layouts.md.cPnh3NId.js +51 -0
- data/docs/assets/layouts.md.cPnh3NId.lean.js +1 -0
- data/docs/assets/lsp.md.Bsu-f6VU.js +1 -0
- data/docs/assets/lsp.md.Bsu-f6VU.lean.js +1 -0
- data/docs/assets/{overview.md.CDalkuxV.js → overview.md.C5wlBcR5.js} +3 -3
- data/docs/assets/recipes_authentication.md.CAsXf7hk.js +1 -0
- data/docs/assets/recipes_authentication.md.CAsXf7hk.lean.js +1 -0
- data/docs/assets.html +4 -4
- data/docs/brut-js/api/AjaxSubmit.html +1 -1
- data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
- data/docs/brut-js/api/Autosubmit.html +1 -1
- data/docs/brut-js/api/Autosubmit.js.html +1 -1
- data/docs/brut-js/api/BaseCustomElement.html +1 -1
- data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
- data/docs/brut-js/api/BrutCustomElements.html +1 -1
- data/docs/brut-js/api/BufferedLogger.html +1 -1
- data/docs/brut-js/api/ConfirmSubmit.html +1 -1
- data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
- data/docs/brut-js/api/ConfirmationDialog.html +1 -1
- data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
- data/docs/brut-js/api/CopyToClipboard.html +1 -1
- data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
- data/docs/brut-js/api/Form.html +1 -1
- data/docs/brut-js/api/Form.js.html +1 -1
- data/docs/brut-js/api/I18nTranslation.html +1 -1
- data/docs/brut-js/api/I18nTranslation.js.html +1 -1
- data/docs/brut-js/api/LocaleDetection.html +1 -1
- data/docs/brut-js/api/LocaleDetection.js.html +1 -1
- data/docs/brut-js/api/Logger.html +1 -1
- data/docs/brut-js/api/Logger.js.html +1 -1
- data/docs/brut-js/api/Message.html +1 -1
- data/docs/brut-js/api/Message.js.html +1 -1
- data/docs/brut-js/api/PrefixedLogger.html +1 -1
- data/docs/brut-js/api/RichString.html +1 -1
- data/docs/brut-js/api/RichString.js.html +1 -1
- data/docs/brut-js/api/Tabs.html +1 -1
- data/docs/brut-js/api/Tabs.js.html +1 -1
- data/docs/brut-js/api/Tracing.html +1 -1
- data/docs/brut-js/api/Tracing.js.html +1 -1
- data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
- data/docs/brut-js/api/external-Performance.html +1 -1
- data/docs/brut-js/api/external-Promise.html +1 -1
- data/docs/brut-js/api/external-ValidityState.html +1 -1
- data/docs/brut-js/api/external-Window.html +1 -1
- data/docs/brut-js/api/external-fetch.html +1 -1
- data/docs/brut-js/api/global.html +1 -1
- data/docs/brut-js/api/index.html +1 -1
- data/docs/brut-js/api/index.js.html +1 -1
- data/docs/brut-js/api/module-testing.html +1 -1
- data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
- data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
- data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
- data/docs/brut-js/api/testing.DOMCreator.html +1 -1
- data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
- data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
- data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
- data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
- data/docs/brut-js/api/testing_index.js.html +1 -1
- data/docs/brut-js.html +4 -4
- data/docs/business-logic.html +4 -4
- data/docs/cli.html +4 -4
- data/docs/components.html +6 -6
- data/docs/configuration.html +5 -5
- data/docs/css.html +4 -4
- data/docs/custom-element-tests.html +4 -4
- data/docs/database-access.html +4 -4
- data/docs/database-schema.html +4 -4
- data/docs/deployment.html +4 -4
- data/docs/dev-environment.html +5 -5
- data/docs/doc-conventions.html +5 -5
- data/docs/end-to-end-tests.html +4 -4
- data/docs/flash-and-session.html +4 -4
- data/docs/forms.html +27 -27
- data/docs/getting-started.html +29 -6
- data/docs/handlers.html +4 -4
- data/docs/hashmap.json +1 -1
- data/docs/hooks.html +4 -4
- data/docs/i18n.html +4 -4
- data/docs/index.html +3 -3
- data/docs/instrumentation.html +5 -5
- data/docs/javascript.html +4 -4
- data/docs/jobs.html +4 -4
- data/docs/keyword-injection.html +4 -4
- data/docs/layouts.html +74 -0
- data/docs/lsp.html +24 -0
- data/docs/markdown-examples.html +4 -4
- data/docs/middleware.html +4 -4
- data/docs/not-released.html +4 -4
- data/docs/overview.html +8 -8
- data/docs/pages.html +5 -5
- data/docs/recipes/authentication.html +24 -0
- data/docs/routes.html +4 -4
- data/docs/security.html +4 -4
- data/docs/seed-data.html +4 -4
- data/docs/space-time-continuum.html +4 -4
- data/docs/tutorial.html +4 -4
- data/docs/unit-tests.html +4 -4
- data/lib/brut/cli/app.rb +7 -2
- data/lib/brut/cli/apps/deploy_base.rb +86 -0
- data/lib/brut/cli/apps/heroku_container_based_deploy.rb +194 -0
- data/lib/brut/cli/apps/test.rb +2 -1
- data/lib/brut/cli/command.rb +7 -13
- data/lib/brut/cli/executor.rb +31 -5
- data/lib/brut/cli/options.rb +4 -0
- data/lib/brut/cli.rb +4 -3
- data/lib/brut/framework/container.rb +25 -7
- data/lib/brut/framework/errors/abstract_method.rb +7 -0
- data/lib/brut/framework/errors.rb +4 -2
- data/lib/brut/front_end/component.rb +33 -9
- data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +16 -74
- data/lib/brut/front_end/forms/constraint_violation.rb +2 -18
- data/lib/brut/front_end/forms/input.rb +8 -8
- data/lib/brut/front_end/forms/input_declarations.rb +3 -3
- data/lib/brut/front_end/forms/radio_button_group_input.rb +1 -1
- data/lib/brut/front_end/forms/select_input.rb +1 -1
- data/lib/brut/front_end/forms/validity_state.rb +23 -0
- data/lib/brut/front_end/middlewares/reload_app.rb +2 -0
- data/lib/brut/spec_support/handler_support.rb +1 -1
- data/lib/brut/spec_support/matcher.rb +1 -1
- data/lib/brut/spec_support/matchers/be_a_bug.rb +11 -0
- data/lib/brut/spec_support/matchers/be_page_for.rb +10 -0
- data/lib/brut/spec_support/matchers/be_routing_for.rb +18 -0
- data/lib/brut/spec_support/matchers/have_constraint_violation.rb +10 -0
- data/lib/brut/spec_support/matchers/have_generated.rb +28 -0
- data/lib/brut/spec_support/matchers/have_html_attribute.rb +10 -0
- data/lib/brut/spec_support/matchers/have_i18n_string.rb +13 -0
- data/lib/brut/spec_support/matchers/have_link_to.rb +15 -0
- data/lib/brut/spec_support/matchers/have_redirected_to.rb +23 -0
- data/lib/brut/spec_support/matchers/have_returned_http_status.rb +20 -0
- data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +22 -0
- data/lib/brut/spec_support/rspec_setup.rb +42 -2
- data/lib/brut/version.rb +1 -1
- data/lib/sequel/extensions/brut_instrumentation.rb +4 -0
- metadata +51 -24
- data/docs/assets/ai.md.tZrjP9im.lean.js +0 -1
- data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +0 -1
- data/docs/assets/doc-conventions.md.DCfRXXi-.js +0 -1
- data/docs/assets/getting-started.md.Bz2s1Vjb.js +0 -2
- data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +0 -1
- data/lib/brut/spec_support/matchers/have_rendered.rb +0 -14
- /data/docs/assets/{components.md.eCttGlN-.lean.js → components.md.CRUMdRoN.lean.js} +0 -0
- /data/docs/assets/{configuration.md.BRriU0cL.lean.js → configuration.md.BGHl8oRC.lean.js} +0 -0
- /data/docs/assets/{dev-environment.md.BNc8AYiK.lean.js → dev-environment.md.GZv6xvi9.lean.js} +0 -0
- /data/docs/assets/{overview.md.CDalkuxV.lean.js → overview.md.C5wlBcR5.lean.js} +0 -0
@@ -107,7 +107,7 @@
|
|
107
107
|
|
108
108
|
<h2>Overview</h2><div class="docstring">
|
109
109
|
<div class="discussion">
|
110
|
-
<p>Generates an HTML <code><textarea></code> field.</p>
|
110
|
+
<p>Generates an HTML <code><textarea></code> field based on a form input.</p>
|
111
111
|
|
112
112
|
|
113
113
|
</div>
|
@@ -123,38 +123,6 @@
|
|
123
123
|
|
124
124
|
|
125
125
|
|
126
|
-
<h2>
|
127
|
-
Class Method Summary
|
128
|
-
<small><a href="#" class="summary_toggle">collapse</a></small>
|
129
|
-
</h2>
|
130
|
-
|
131
|
-
<ul class="summary">
|
132
|
-
|
133
|
-
<li class="public ">
|
134
|
-
<span class="summary_signature">
|
135
|
-
|
136
|
-
<a href="#for_form_input-class_method" title="for_form_input (class method)">.<strong>for_form_input</strong>(form:, input_name:, index: nil, html_attributes: {}) ⇒ Object </a>
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
</span>
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
<span class="summary_desc"><div class='inline'><p>Creates the appropriate textarea for the given <span class='object_link'><a href="../../Form.html" title="Brut::FrontEnd::Form (class)">Form</a></span> and input name.</p>
|
151
|
-
</div></span>
|
152
|
-
|
153
|
-
</li>
|
154
|
-
|
155
|
-
|
156
|
-
</ul>
|
157
|
-
|
158
126
|
<h2>
|
159
127
|
Instance Method Summary
|
160
128
|
<small><a href="#" class="summary_toggle">collapse</a></small>
|
@@ -165,7 +133,7 @@
|
|
165
133
|
<li class="public ">
|
166
134
|
<span class="summary_signature">
|
167
135
|
|
168
|
-
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(
|
136
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(form:, input_name:, index: nil, **html_attributes) ⇒ TextareaTag </a>
|
169
137
|
|
170
138
|
|
171
139
|
|
@@ -181,7 +149,7 @@
|
|
181
149
|
|
182
150
|
|
183
151
|
|
184
|
-
<span class="summary_desc"><div class='inline'><p>
|
152
|
+
<span class="summary_desc"><div class='inline'><p>Creates the appropriate textarea for the given <span class='object_link'><a href="../../Form.html" title="Brut::FrontEnd::Form (class)">Form</a></span> and input name.</p>
|
185
153
|
</div></span>
|
186
154
|
|
187
155
|
</li>
|
@@ -304,90 +272,7 @@
|
|
304
272
|
<div class="method_details first">
|
305
273
|
<h3 class="signature first" id="initialize-instance_method">
|
306
274
|
|
307
|
-
#<strong>initialize</strong>(
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
</h3><div class="docstring">
|
314
|
-
<div class="discussion">
|
315
|
-
<p>Create an instance</p>
|
316
|
-
|
317
|
-
|
318
|
-
</div>
|
319
|
-
</div>
|
320
|
-
<div class="tags">
|
321
|
-
<p class="tag_title">Parameters:</p>
|
322
|
-
<ul class="param">
|
323
|
-
|
324
|
-
<li>
|
325
|
-
|
326
|
-
<span class='name'>attributes</span>
|
327
|
-
|
328
|
-
|
329
|
-
<span class='type'>(<tt>Hash</tt>)</span>
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
—
|
334
|
-
<div class='inline'><p>HTML attributes to put on the element.</p>
|
335
|
-
</div>
|
336
|
-
|
337
|
-
</li>
|
338
|
-
|
339
|
-
<li>
|
340
|
-
|
341
|
-
<span class='name'>value</span>
|
342
|
-
|
343
|
-
|
344
|
-
<span class='type'>(<tt>String</tt>)</span>
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
—
|
349
|
-
<div class='inline'><p>the value to place inside the text area</p>
|
350
|
-
</div>
|
351
|
-
|
352
|
-
</li>
|
353
|
-
|
354
|
-
</ul>
|
355
|
-
|
356
|
-
|
357
|
-
</div><table class="source_code">
|
358
|
-
<tr>
|
359
|
-
<td>
|
360
|
-
<pre class="lines">
|
361
|
-
|
362
|
-
|
363
|
-
44
|
364
|
-
45
|
365
|
-
46
|
366
|
-
47</pre>
|
367
|
-
</td>
|
368
|
-
<td>
|
369
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line 44</span>
|
370
|
-
|
371
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
372
|
-
<span class='ivar'>@attributes</span> <span class='op'>=</span> <span class='id identifier rubyid_attributes'>attributes</span>
|
373
|
-
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
374
|
-
<span class='kw'>end</span></pre>
|
375
|
-
</td>
|
376
|
-
</tr>
|
377
|
-
</table>
|
378
|
-
</div>
|
379
|
-
|
380
|
-
</div>
|
381
|
-
|
382
|
-
|
383
|
-
<div id="class_method_details" class="method_details_list">
|
384
|
-
<h2>Class Method Details</h2>
|
385
|
-
|
386
|
-
|
387
|
-
<div class="method_details first">
|
388
|
-
<h3 class="signature first" id="for_form_input-class_method">
|
389
|
-
|
390
|
-
.<strong>for_form_input</strong>(form:, input_name:, index: nil, html_attributes: {}) ⇒ <tt>Object</tt>
|
275
|
+
#<strong>initialize</strong>(form:, input_name:, index: nil, **html_attributes) ⇒ <tt><span class='object_link'><a href="" title="Brut::FrontEnd::Components::Inputs::TextareaTag (class)">TextareaTag</a></span></tt>
|
391
276
|
|
392
277
|
|
393
278
|
|
@@ -460,8 +345,6 @@ Generally, you want to use this method over the initializer.</p>
|
|
460
345
|
<span class='type'>(<tt>Hash</tt>)</span>
|
461
346
|
|
462
347
|
|
463
|
-
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
464
|
-
|
465
348
|
|
466
349
|
—
|
467
350
|
<div class='inline'><p>any additional HTML attributes to include on the <code><textarea></code> element.</p>
|
@@ -478,7 +361,6 @@ Generally, you want to use this method over the initializer.</p>
|
|
478
361
|
<pre class="lines">
|
479
362
|
|
480
363
|
|
481
|
-
10
|
482
364
|
11
|
483
365
|
12
|
484
366
|
13
|
@@ -507,12 +389,13 @@ Generally, you want to use this method over the initializer.</p>
|
|
507
389
|
36
|
508
390
|
37
|
509
391
|
38
|
510
|
-
39
|
392
|
+
39
|
393
|
+
40</pre>
|
511
394
|
</td>
|
512
395
|
<td>
|
513
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line
|
396
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line 11</span>
|
514
397
|
|
515
|
-
<span class='kw'>def</span> <span class='
|
398
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>form:</span><span class='comma'>,</span> <span class='label'>input_name:</span><span class='comma'>,</span> <span class='label'>index:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_html_attributes'>html_attributes</span><span class='rparen'>)</span>
|
516
399
|
<span class='id identifier rubyid_html_attributes'>html_attributes</span> <span class='op'>=</span> <span class='id identifier rubyid_html_attributes'>html_attributes</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span><span class='id identifier rubyid_value'>value</span><span class='op'>|</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span> <span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span>
|
517
400
|
<span class='id identifier rubyid_default_html_attributes'>default_html_attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
518
401
|
|
@@ -539,15 +422,16 @@ Generally, you want to use this method over the initializer.</p>
|
|
539
422
|
<span class='kw'>end</span>
|
540
423
|
<span class='kw'>end</span>
|
541
424
|
<span class='kw'>end</span>
|
542
|
-
<span class='
|
543
|
-
<span class='
|
425
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_input'>input</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
|
426
|
+
<span class='ivar'>@attributes</span> <span class='op'>=</span> <span class='id identifier rubyid_default_html_attributes'>default_html_attributes</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_html_attributes'>html_attributes</span><span class='rparen'>)</span>
|
544
427
|
<span class='kw'>end</span></pre>
|
545
428
|
</td>
|
546
429
|
</tr>
|
547
430
|
</table>
|
548
431
|
</div>
|
549
|
-
|
550
|
-
|
432
|
+
|
433
|
+
</div>
|
434
|
+
|
551
435
|
|
552
436
|
<div id="instance_method_details" class="method_details_list">
|
553
437
|
<h2>Instance Method Details</h2>
|
@@ -591,10 +475,10 @@ Generally, you want to use this method over the initializer.</p>
|
|
591
475
|
<pre class="lines">
|
592
476
|
|
593
477
|
|
594
|
-
|
478
|
+
42</pre>
|
595
479
|
</td>
|
596
480
|
<td>
|
597
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line
|
481
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line 42</span>
|
598
482
|
|
599
483
|
<span class='kw'>def</span> <span class='id identifier rubyid_invalid?'>invalid?</span> <span class='op'>=</span> <span class='ivar'>@attributes</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>data-invalid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='kw'>true</span></pre>
|
600
484
|
</td>
|
@@ -617,14 +501,14 @@ Generally, you want to use this method over the initializer.</p>
|
|
617
501
|
<pre class="lines">
|
618
502
|
|
619
503
|
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
504
|
+
44
|
505
|
+
45
|
506
|
+
46
|
507
|
+
47
|
508
|
+
48</pre>
|
625
509
|
</td>
|
626
510
|
<td>
|
627
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line
|
511
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/components/inputs/textarea_tag.rb', line 44</span>
|
628
512
|
|
629
513
|
<span class='kw'>def</span> <span class='id identifier rubyid_view_template'>view_template</span>
|
630
514
|
<span class='id identifier rubyid_textarea'>textarea</span><span class='lparen'>(</span><span class='op'>**</span><span class='ivar'>@attributes</span><span class='rparen'>)</span> <span class='lbrace'>{</span>
|
@@ -641,7 +525,7 @@ Generally, you want to use this method over the initializer.</p>
|
|
641
525
|
</div>
|
642
526
|
|
643
527
|
<div id="footer">
|
644
|
-
Generated on Wed
|
528
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
645
529
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
646
530
|
0.9.37 (ruby-3.4.4).
|
647
531
|
</div>
|
@@ -115,7 +115,7 @@
|
|
115
115
|
</div>
|
116
116
|
|
117
117
|
<div id="footer">
|
118
|
-
Generated on Wed
|
118
|
+
Generated on Wed Jul 2 21:45: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>
|
@@ -357,7 +357,7 @@ ask the browser to send it, or not.</p>
|
|
357
357
|
</div>
|
358
358
|
|
359
359
|
<div id="footer">
|
360
|
-
Generated on Wed
|
360
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
361
361
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
362
362
|
0.9.37 (ruby-3.4.4).
|
363
363
|
</div>
|
@@ -326,7 +326,7 @@
|
|
326
326
|
</div>
|
327
327
|
|
328
328
|
<div id="footer">
|
329
|
-
Generated on Wed
|
329
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
330
330
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
331
331
|
0.9.37 (ruby-3.4.4).
|
332
332
|
</div>
|
@@ -645,7 +645,7 @@ you would like to be accessible. If omitted, the tag's contents will be the for
|
|
645
645
|
</div>
|
646
646
|
|
647
647
|
<div id="footer">
|
648
|
-
Generated on Wed
|
648
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
649
649
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
650
650
|
0.9.37 (ruby-3.4.4).
|
651
651
|
</div>
|
@@ -342,7 +342,7 @@
|
|
342
342
|
</div>
|
343
343
|
|
344
344
|
<div id="footer">
|
345
|
-
Generated on Wed
|
345
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
346
346
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
347
347
|
0.9.37 (ruby-3.4.4).
|
348
348
|
</div>
|
@@ -92,13 +92,34 @@
|
|
92
92
|
|
93
93
|
<h2>Overview</h2><div class="docstring">
|
94
94
|
<div class="discussion">
|
95
|
-
<p>
|
95
|
+
<p>Namespace for Brut-provided components that are of general use to any web app.
|
96
|
+
Also extends <a href="https://www.phlex.fun/components/kits.html"><code>Phlex:::Kit</code></a>, meaning
|
97
|
+
you can include this module in your pages and components to be able to
|
98
|
+
create Brut's components without <code>.new</code> or without the full classname:</p>
|
96
99
|
|
97
100
|
|
98
101
|
</div>
|
99
102
|
</div>
|
100
103
|
<div class="tags">
|
101
104
|
|
105
|
+
<div class="examples">
|
106
|
+
<h4 class="tag_title">Examples:</h4>
|
107
|
+
|
108
|
+
|
109
|
+
<pre class="example code"><code>class AppPage < Brut::FrontEnd::Page
|
110
|
+
include Brut::FrontEnd::Components
|
111
|
+
end
|
112
|
+
|
113
|
+
class HomePage < AppPage
|
114
|
+
def page_template
|
115
|
+
h1 do
|
116
|
+
span { "It's }
|
117
|
+
TimeTag(timestamp: Time.now)
|
118
|
+
end
|
119
|
+
end</code></pre>
|
120
|
+
|
121
|
+
</div>
|
122
|
+
|
102
123
|
|
103
124
|
</div><h2>Defined Under Namespace</h2>
|
104
125
|
<p class="children">
|
@@ -125,7 +146,7 @@
|
|
125
146
|
</div>
|
126
147
|
|
127
148
|
<div id="footer">
|
128
|
-
Generated on Wed
|
149
|
+
Generated on Wed Jul 2 21:45:26 2025 by
|
129
150
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
151
|
0.9.37 (ruby-3.4.4).
|
131
152
|
</div>
|
@@ -457,7 +457,7 @@ download the same file mulitple times but you want to make each name different a
|
|
457
457
|
</div>
|
458
458
|
|
459
459
|
<div id="footer">
|
460
|
-
Generated on Wed
|
460
|
+
Generated on Wed Jul 2 21:45:27 2025 by
|
461
461
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
462
462
|
0.9.37 (ruby-3.4.4).
|
463
463
|
</div>
|
@@ -1140,7 +1140,7 @@ flash from being more than 1 request old. This is usually sufficient for a hand
|
|
1140
1140
|
</div>
|
1141
1141
|
|
1142
1142
|
<div id="footer">
|
1143
|
-
Generated on Wed
|
1143
|
+
Generated on Wed Jul 2 21:45:27 2025 by
|
1144
1144
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1145
1145
|
0.9.37 (ruby-3.4.4).
|
1146
1146
|
</div>
|
@@ -1147,7 +1147,7 @@ will be represented as a key in the resulting hash—only those keys that were p
|
|
1147
1147
|
</div>
|
1148
1148
|
|
1149
1149
|
<div id="footer">
|
1150
|
-
Generated on Wed
|
1150
|
+
Generated on Wed Jul 2 21:45:27 2025 by
|
1151
1151
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1152
1152
|
0.9.37 (ruby-3.4.4).
|
1153
1153
|
</div>
|
@@ -111,50 +111,6 @@ form-related classes.</p>
|
|
111
111
|
|
112
112
|
|
113
113
|
</div>
|
114
|
-
|
115
|
-
<h2>
|
116
|
-
Constant Summary
|
117
|
-
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
118
|
-
</h2>
|
119
|
-
|
120
|
-
<dl class="constants">
|
121
|
-
|
122
|
-
<dt id="CLIENT_SIDE_KEYS-constant" class="">CLIENT_SIDE_KEYS =
|
123
|
-
<div class="docstring">
|
124
|
-
<div class="discussion">
|
125
|
-
<p>These are underscorized versions of the attributes of the browser's <code>ValidityState</code>'s properties.</p>
|
126
|
-
|
127
|
-
|
128
|
-
</div>
|
129
|
-
</div>
|
130
|
-
<div class="tags">
|
131
|
-
|
132
|
-
|
133
|
-
<p class="tag_title">See Also:</p>
|
134
|
-
<ul class="see">
|
135
|
-
|
136
|
-
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/ValidityState" target="_parent" title="https://developer.mozilla.org/en-US/docs/Web/API/ValidityState">https://developer.mozilla.org/en-US/docs/Web/API/ValidityState</a></li>
|
137
|
-
|
138
|
-
</ul>
|
139
|
-
|
140
|
-
</div>
|
141
|
-
</dt>
|
142
|
-
<dd><pre class="code"><span class='lbracket'>[</span>
|
143
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>bad_input</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
144
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>custom_error</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
145
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>pattern_mismatch</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
146
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>range_overflow</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
147
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>range_underflow</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
148
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>step_mismatch</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
149
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>too_long</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
150
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>too_short</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
151
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>type_mismatch</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
152
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value_missing</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
153
|
-
<span class='rbracket'>]</span></pre></dd>
|
154
|
-
|
155
|
-
</dl>
|
156
|
-
|
157
|
-
|
158
114
|
|
159
115
|
|
160
116
|
|
@@ -371,7 +327,7 @@ form-related classes.</p>
|
|
371
327
|
|
372
328
|
|
373
329
|
—
|
374
|
-
<div class='inline'><p>If <code>:based_on_key</code>, <span class='object_link'><a href="#client_side%3F-instance_method" title="Brut::FrontEnd::Forms::ConstraintViolation#client_side? (method)">#client_side?</a></span> will return true if <code>key</code> is in <span class='object_link'><a href="#
|
330
|
+
<div class='inline'><p>If <code>:based_on_key</code>, <span class='object_link'><a href="#client_side%3F-instance_method" title="Brut::FrontEnd::Forms::ConstraintViolation#client_side? (method)">#client_side?</a></span> will return true if <code>key</code> is in <span class='object_link'><a href="ValidityState.html#KEYS-constant" title="Brut::FrontEnd::Forms::ValidityState::KEYS (constant)">ValidityState::KEYS</a></span>.</p>
|
375
331
|
</div>
|
376
332
|
|
377
333
|
</li>
|
@@ -385,21 +341,21 @@ form-related classes.</p>
|
|
385
341
|
<pre class="lines">
|
386
342
|
|
387
343
|
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
344
|
+
16
|
345
|
+
17
|
346
|
+
18
|
347
|
+
19
|
348
|
+
20
|
349
|
+
21
|
350
|
+
22
|
351
|
+
23</pre>
|
396
352
|
</td>
|
397
353
|
<td>
|
398
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line
|
354
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line 16</span>
|
399
355
|
|
400
356
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>key:</span><span class='comma'>,</span><span class='label'>context:</span><span class='comma'>,</span> <span class='label'>server_side:</span> <span class='symbol'>:based_on_key</span><span class='rparen'>)</span>
|
401
357
|
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
402
|
-
<span class='ivar'>@client_side</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="#
|
358
|
+
<span class='ivar'>@client_side</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='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="ValidityState.html" title="Brut::FrontEnd::Forms::ValidityState (class)">ValidityState</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ValidityState.html#KEYS-constant" title="Brut::FrontEnd::Forms::ValidityState::KEYS (constant)">KEYS</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='ivar'>@key</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_server_side'>server_side</span> <span class='op'>!=</span> <span class='kw'>true</span>
|
403
359
|
<span class='ivar'>@context</span> <span class='op'>=</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
404
360
|
<span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@context</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
405
361
|
<span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'> created for key </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='embexpr_end'>}</span><span class='tstring_content'> with an invalid context: '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_context'>context</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>'. Context must be nil or a hash</span><span class='tstring_end'>"</span></span>
|
@@ -459,12 +415,12 @@ form-related classes.</p>
|
|
459
415
|
<pre class="lines">
|
460
416
|
|
461
417
|
|
462
|
-
|
463
|
-
|
464
|
-
|
418
|
+
8
|
419
|
+
9
|
420
|
+
10</pre>
|
465
421
|
</td>
|
466
422
|
<td>
|
467
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line
|
423
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line 8</span>
|
468
424
|
|
469
425
|
<span class='kw'>def</span> <span class='id identifier rubyid_context'>context</span>
|
470
426
|
<span class='ivar'>@context</span>
|
@@ -518,12 +474,12 @@ form-related classes.</p>
|
|
518
474
|
<pre class="lines">
|
519
475
|
|
520
476
|
|
521
|
-
|
522
|
-
|
523
|
-
|
477
|
+
6
|
478
|
+
7
|
479
|
+
8</pre>
|
524
480
|
</td>
|
525
481
|
<td>
|
526
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line
|
482
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line 6</span>
|
527
483
|
|
528
484
|
<span class='kw'>def</span> <span class='id identifier rubyid_key'>key</span>
|
529
485
|
<span class='ivar'>@key</span>
|
@@ -582,10 +538,10 @@ form-related classes.</p>
|
|
582
538
|
<pre class="lines">
|
583
539
|
|
584
540
|
|
585
|
-
|
541
|
+
26</pre>
|
586
542
|
</td>
|
587
543
|
<td>
|
588
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line
|
544
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line 26</span>
|
589
545
|
|
590
546
|
<span class='kw'>def</span> <span class='id identifier rubyid_client_side?'>client_side?</span> <span class='op'>=</span> <span class='ivar'>@client_side</span></pre>
|
591
547
|
</td>
|
@@ -608,10 +564,10 @@ form-related classes.</p>
|
|
608
564
|
<pre class="lines">
|
609
565
|
|
610
566
|
|
611
|
-
|
567
|
+
27</pre>
|
612
568
|
</td>
|
613
569
|
<td>
|
614
|
-
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line
|
570
|
+
<pre class="code"><span class="info file"># File 'lib/brut/front_end/forms/constraint_violation.rb', line 27</span>
|
615
571
|
|
616
572
|
<span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>=</span> <span class='ivar'>@key</span></pre>
|
617
573
|
</td>
|
@@ -624,7 +580,7 @@ form-related classes.</p>
|
|
624
580
|
</div>
|
625
581
|
|
626
582
|
<div id="footer">
|
627
|
-
Generated on Wed
|
583
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
628
584
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
629
585
|
0.9.37 (ruby-3.4.4).
|
630
586
|
</div>
|
@@ -605,7 +605,7 @@ that <code>key</code> should not be a key used for client-side validations.</p>
|
|
605
605
|
</div>
|
606
606
|
|
607
607
|
<div id="footer">
|
608
|
-
Generated on Wed
|
608
|
+
Generated on Wed Jul 2 21:45:27 2025 by
|
609
609
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
610
610
|
0.9.37 (ruby-3.4.4).
|
611
611
|
</div>
|
@@ -381,7 +381,7 @@ value for their <code>name</code> attribute. Unlike <code>input</code> or <code
|
|
381
381
|
input tags.</p>
|
382
382
|
|
383
383
|
<p>Note that this is not where you would define the possible values for the group. That is done in
|
384
|
-
<span class='object_link'><a href="../Components/Inputs/RadioButton.html
|
384
|
+
<span class='object_link'><a href="../Components/Inputs/RadioButton.html" title="Brut::FrontEnd::Components::Inputs::RadioButton (class)">Components::Inputs::RadioButton</a></span>.</p>
|
385
385
|
|
386
386
|
|
387
387
|
</div>
|
@@ -462,8 +462,8 @@ input tags.</p>
|
|
462
462
|
</h3><div class="docstring">
|
463
463
|
<div class="discussion">
|
464
464
|
<p>Declares a select for this form, to be modeled via an HTML <code><SELECT></code> tag. Note that this will not define the values that appear
|
465
|
-
in the select. That is done when the select is rendered, which you might do with
|
466
|
-
Components::Inputs::Select
|
465
|
+
in the select. That is done when the select is rendered, which you might do with a
|
466
|
+
Components::Inputs::Select</p>
|
467
467
|
|
468
468
|
|
469
469
|
</div>
|
@@ -537,7 +537,7 @@ Components::Inputs::Select.for_form_input</p>
|
|
537
537
|
</div>
|
538
538
|
|
539
539
|
<div id="footer">
|
540
|
-
Generated on Wed
|
540
|
+
Generated on Wed Jul 2 21:45: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>
|
@@ -1308,7 +1308,7 @@ inputs. <code>nil</code> is allowed only if the input definition is not for an a
|
|
1308
1308
|
</div>
|
1309
1309
|
|
1310
1310
|
<div id="footer">
|
1311
|
-
Generated on Wed
|
1311
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
1312
1312
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1313
1313
|
0.9.37 (ruby-3.4.4).
|
1314
1314
|
</div>
|
@@ -599,7 +599,7 @@ that <code>key</code> should not be a key used for client-side validations.</p>
|
|
599
599
|
</div>
|
600
600
|
|
601
601
|
<div id="footer">
|
602
|
-
Generated on Wed
|
602
|
+
Generated on Wed Jul 2 21:45:28 2025 by
|
603
603
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
604
604
|
0.9.37 (ruby-3.4.4).
|
605
605
|
</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
|
580
|
+
Generated on Wed Jul 2 21:45:28 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>
|