brut 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +9 -0
- data/CHANGELOG.md +13 -0
- data/Dockerfile.dx +8 -1
- data/Gemfile.lock +101 -63
- data/bin/ci +9 -5
- data/bin/docs +1 -1
- data/bin/generate-and-run-rubocop +52 -0
- data/bin/rubocop +27 -0
- data/bin/setup +46 -0
- data/bin/test +18 -0
- data/brut-css/bin/publish +1 -1
- data/brut-css/package-lock.json +2 -2
- data/brut-css/package.json +1 -1
- data/brut-js/bin/publish +1 -1
- data/brut-js/package-lock.json +2 -2
- data/brut-js/package.json +1 -1
- data/brut-js/specs/ConfirmSubmit.spec.js +32 -1
- data/brut-js/src/ConfirmSubmit.js +28 -7
- data/brut.gemspec +32 -26
- data/brutrb.com/.vitepress/config.mjs +3 -0
- data/brutrb.com/database-schema.md +1 -1
- data/brutrb.com/images/tutorial/basic-form-with-violations.png +0 -0
- data/brutrb.com/images/tutorial/basic-form.png +0 -0
- data/brutrb.com/images/tutorial/initial-home-page.png +0 -0
- data/brutrb.com/images/tutorial/new-post-editor.png +0 -0
- data/brutrb.com/images/tutorial/new-post-home-page.png +0 -0
- data/brutrb.com/images/tutorial/styled-form-with-server-side-violations.png +0 -0
- data/brutrb.com/images/tutorial/styled-form-with-violations.png +0 -0
- data/brutrb.com/images/tutorial/styled-home-page-with-posts.png +0 -0
- data/brutrb.com/images/tutorial/styled-home-page.png +0 -0
- data/brutrb.com/images/tutorial/welcome-to-brut.png +0 -0
- data/brutrb.com/recipes/migrations.md +1 -1
- data/brutrb.com/tutorial.md +1728 -3
- data/docker-compose.dx.yml +3 -0
- data/docs/404.html +2 -2
- data/docs/adrs.html +3 -3
- data/docs/ai.html +3 -3
- data/docs/api/Brut/BackEnd/SeedData.html +2 -2
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +2 -2
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +2 -2
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +2 -2
- data/docs/api/Brut/BackEnd/Sidekiq.html +2 -2
- data/docs/api/Brut/BackEnd/Validators/FormValidator.html +2 -2
- data/docs/api/Brut/BackEnd/Validators.html +2 -2
- data/docs/api/Brut/BackEnd.html +2 -2
- data/docs/api/Brut/CLI/App.html +2 -2
- data/docs/api/Brut/CLI/AppRunner.html +2 -2
- 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 +2 -2
- 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 +2 -2
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +2 -2
- 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 +2 -2
- data/docs/api/Brut/CLI/Apps/DB.html +2 -2
- data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +2 -2
- data/docs/api/Brut/CLI/Apps/DeployBase.html +2 -2
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +3 -3
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +2 -2
- 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/DbModel.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 +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +2 -2
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +3 -3
- data/docs/api/Brut/CLI/Apps/Scaffold.html +2 -2
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +2 -2
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +2 -2
- data/docs/api/Brut/CLI/Apps/Test/JS.html +2 -2
- data/docs/api/Brut/CLI/Apps/Test/Run.html +2 -2
- data/docs/api/Brut/CLI/Apps/Test.html +2 -2
- data/docs/api/Brut/CLI/Apps.html +2 -2
- data/docs/api/Brut/CLI/Command.html +2 -2
- data/docs/api/Brut/CLI/Error.html +2 -2
- data/docs/api/Brut/CLI/ExecutionResults/Result.html +2 -2
- data/docs/api/Brut/CLI/ExecutionResults.html +2 -2
- data/docs/api/Brut/CLI/Executor.html +2 -2
- data/docs/api/Brut/CLI/InvalidOption.html +2 -2
- data/docs/api/Brut/CLI/Options.html +80 -2
- data/docs/api/Brut/CLI/Output.html +2 -2
- data/docs/api/Brut/CLI/SystemExecError.html +2 -2
- data/docs/api/Brut/CLI.html +2 -2
- data/docs/api/Brut/FactoryBot.html +3 -3
- data/docs/api/Brut/Framework/App.html +3 -3
- data/docs/api/Brut/Framework/Config.html +27 -15
- data/docs/api/Brut/Framework/Container.html +2 -2
- data/docs/api/Brut/Framework/Error.html +2 -2
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +2 -2
- data/docs/api/Brut/Framework/Errors/Bug.html +2 -2
- data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +2 -2
- data/docs/api/Brut/Framework/Errors/MissingParameter.html +2 -2
- data/docs/api/Brut/Framework/Errors/NoClassForPath.html +2 -2
- data/docs/api/Brut/Framework/Errors/NotFound.html +2 -2
- data/docs/api/Brut/Framework/Errors/NotImplemented.html +2 -2
- data/docs/api/Brut/Framework/Errors.html +2 -2
- data/docs/api/Brut/Framework/FussyTypeEnforcement.html +2 -2
- data/docs/api/Brut/Framework/MCP.html +21 -11
- data/docs/api/Brut/Framework/ProjectEnvironment.html +2 -2
- data/docs/api/Brut/Framework.html +2 -2
- data/docs/api/Brut/FrontEnd/AssetPathResolver.html +2 -2
- data/docs/api/Brut/FrontEnd/Component/Helpers.html +2 -2
- data/docs/api/Brut/FrontEnd/Component.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +4 -4
- data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Input.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Inputs.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/TimeTag.html +2 -2
- data/docs/api/Brut/FrontEnd/Components/Traceparent.html +2 -2
- data/docs/api/Brut/FrontEnd/Components.html +2 -2
- data/docs/api/Brut/FrontEnd/CsrfProtector.html +250 -0
- data/docs/api/Brut/FrontEnd/Download.html +2 -2
- data/docs/api/Brut/FrontEnd/Flash.html +2 -2
- data/docs/api/Brut/FrontEnd/Form.html +6 -6
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/Input.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +2 -2
- data/docs/api/Brut/FrontEnd/Forms.html +2 -2
- data/docs/api/Brut/FrontEnd/GenericResponse.html +2 -2
- data/docs/api/Brut/FrontEnd/Handler.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +2 -2
- data/docs/api/Brut/FrontEnd/Handlers.html +2 -2
- data/docs/api/Brut/FrontEnd/HandlingResults.html +2 -2
- data/docs/api/Brut/FrontEnd/HttpMethod.html +2 -2
- data/docs/api/Brut/FrontEnd/HttpStatus.html +2 -2
- data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +2 -2
- data/docs/api/Brut/FrontEnd/Layout.html +2 -2
- data/docs/api/Brut/FrontEnd/Middleware.html +2 -2
- data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +2 -2
- data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +2 -2
- data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +2 -2
- data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +2 -2
- data/docs/api/Brut/FrontEnd/Middlewares.html +2 -2
- data/docs/api/Brut/FrontEnd/Page.html +2 -2
- data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +2 -2
- data/docs/api/Brut/FrontEnd/Pages.html +2 -2
- data/docs/api/Brut/FrontEnd/RequestContext.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHook.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +2 -2
- data/docs/api/Brut/FrontEnd/RouteHooks.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing/Route.html +2 -2
- data/docs/api/Brut/FrontEnd/Routing.html +2 -2
- data/docs/api/Brut/FrontEnd/Session.html +2 -2
- data/docs/api/Brut/FrontEnd.html +3 -3
- data/docs/api/Brut/I18n/BaseMethods.html +3 -3
- data/docs/api/Brut/I18n/ForBackEnd.html +2 -2
- data/docs/api/Brut/I18n/ForCLI.html +2 -2
- data/docs/api/Brut/I18n/ForHTML.html +2 -2
- data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +2 -2
- data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +2 -2
- data/docs/api/Brut/I18n.html +2 -2
- data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +2 -2
- data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +2 -2
- data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +2 -2
- data/docs/api/Brut/Instrumentation/OpenTelemetry.html +2 -2
- data/docs/api/Brut/Instrumentation.html +2 -2
- data/docs/api/Brut/RubocopConfig.html +237 -0
- data/docs/api/Brut/SinatraHelpers/ClassMethods.html +2 -2
- data/docs/api/Brut/SinatraHelpers.html +2 -2
- data/docs/api/Brut/SpecSupport/ClockSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/ComponentSupport.html +7 -13
- data/docs/api/Brut/SpecSupport/E2ETestServer.html +2 -2
- data/docs/api/Brut/SpecSupport/E2eSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/EnhancedNode.html +2 -2
- data/docs/api/Brut/SpecSupport/FlashSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +2 -2
- data/docs/api/Brut/SpecSupport/GeneralSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +2 -2
- data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +2 -2
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +4 -4
- data/docs/api/Brut/SpecSupport/SessionSupport.html +2 -2
- data/docs/api/Brut/SpecSupport.html +2 -2
- data/docs/api/Brut.html +128 -12
- data/docs/api/Clock.html +2 -2
- data/docs/api/ModuleName.html +28 -28
- data/docs/api/RichString.html +22 -22
- data/docs/api/SemanticLogger/Appender/Async.html +2 -2
- data/docs/api/Sequel/Extensions/BrutInstrumentation.html +2 -2
- data/docs/api/Sequel/Extensions/BrutMigrations.html +2 -2
- data/docs/api/Sequel/Extensions.html +2 -2
- data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +2 -2
- data/docs/api/Sequel/Plugins/CreatedAt.html +2 -2
- data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +2 -2
- data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +2 -2
- data/docs/api/Sequel/Plugins/ExternalId.html +2 -2
- data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +2 -2
- data/docs/api/Sequel/Plugins/FindBang.html +2 -2
- data/docs/api/Sequel/Plugins.html +2 -2
- data/docs/api/Sequel.html +2 -2
- data/docs/api/_index.html +16 -2
- data/docs/api/class_list.html +1 -1
- data/docs/api/file.README.html +28 -2
- data/docs/api/index.html +28 -2
- data/docs/api/method_list.html +192 -168
- data/docs/api/top-level-namespace.html +2 -2
- data/docs/assets/{app.DyQLb4Ot.js → app.BuBdZoUg.js} +1 -1
- data/docs/assets/basic-form-with-violations.Cv6Y9-Q_.png +0 -0
- data/docs/assets/basic-form.DbHnu0oW.png +0 -0
- data/docs/assets/chunks/@localSearchIndexroot.BZ_a3X0T.js +1 -0
- data/docs/assets/chunks/{VPLocalSearchBox.T1iA-eJx.js → VPLocalSearchBox.UtnyvkX-.js} +1 -1
- data/docs/assets/chunks/{theme.ChwsbWjK.js → theme.DqwvuBEK.js} +2 -2
- data/docs/assets/{components.md.DHh-NwKs.js → components.md.Bu80E2Nr.js} +3 -3
- data/docs/assets/{configuration.md.D8Wz3oJU.js → configuration.md.CuIxVsSf.js} +1 -1
- data/docs/assets/{database-schema.md.C5gXexJi.js → database-schema.md.LpmBPVEU.js} +1 -1
- data/docs/assets/{forms.md.BRE85eju.js → forms.md.DnLbzVDa.js} +1 -1
- data/docs/assets/{getting-started.md.2ioiTe-B.js → getting-started.md.DdQLmU3C.js} +2 -2
- data/docs/assets/initial-home-page.DNIaYmgP.png +0 -0
- data/docs/assets/new-post-editor.DrHr-5oh.png +0 -0
- data/docs/assets/new-post-home-page.Bm34lyMg.png +0 -0
- data/docs/assets/{recipes_migrations.md.DPN3gQE3.js → recipes_migrations.md.CTcnWDJF.js} +1 -1
- data/docs/assets/styled-form-with-server-side-violations.Bjxd8Dpv.png +0 -0
- data/docs/assets/styled-form-with-violations.Bv_sa9tg.png +0 -0
- data/docs/assets/styled-home-page-with-posts.Dd4kG89D.png +0 -0
- data/docs/assets/styled-home-page.BzdI7dWz.png +0 -0
- data/docs/assets/tutorial.md.C4zR5XPG.js +728 -0
- data/docs/assets/tutorial.md.C4zR5XPG.lean.js +1 -0
- data/docs/assets/welcome-to-brut.VSWzl17-.png +0 -0
- data/docs/assets.html +3 -3
- 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 +18 -10
- data/docs/brut-js/api/ConfirmSubmit.js.html +29 -8
- 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 +3 -3
- data/docs/business-logic.html +3 -3
- data/docs/cli.html +3 -3
- data/docs/components.html +7 -7
- data/docs/configuration.html +5 -5
- data/docs/css.html +3 -3
- data/docs/custom-element-tests.html +3 -3
- data/docs/database-access.html +3 -3
- data/docs/database-schema.html +5 -5
- data/docs/deployment.html +3 -3
- data/docs/dev-environment.html +3 -3
- data/docs/dir-structure.html +3 -3
- data/docs/doc-conventions.html +3 -3
- data/docs/end-to-end-tests.html +3 -3
- data/docs/features.html +3 -3
- data/docs/flash-and-session.html +3 -3
- data/docs/form-constraints.html +3 -3
- data/docs/forms.html +5 -5
- data/docs/getting-started.html +6 -6
- data/docs/handlers.html +3 -3
- data/docs/hashmap.json +1 -1
- data/docs/hooks.html +3 -3
- data/docs/i18n.html +3 -3
- data/docs/index.html +3 -3
- data/docs/instrumentation.html +3 -3
- data/docs/javascript.html +3 -3
- data/docs/jobs.html +3 -3
- data/docs/keyword-injection.html +3 -3
- data/docs/layouts.html +3 -3
- data/docs/lsp.html +3 -3
- data/docs/markdown-examples.html +3 -3
- data/docs/middleware.html +3 -3
- data/docs/overview.html +3 -3
- data/docs/pages.html +3 -3
- data/docs/recipes/alternate-layouts.html +3 -3
- data/docs/recipes/authentication.html +3 -3
- data/docs/recipes/blank-layouts.html +3 -3
- data/docs/recipes/custom-flash.html +3 -3
- data/docs/recipes/indexed-forms.html +3 -3
- data/docs/recipes/migrations.html +5 -5
- data/docs/recipes/text-field-component.html +3 -3
- data/docs/roadmap.html +3 -3
- data/docs/routes.html +3 -3
- data/docs/security.html +3 -3
- data/docs/seed-data.html +3 -3
- data/docs/space-time-continuum.html +3 -3
- data/docs/tutorial.html +732 -5
- data/docs/unit-tests.html +3 -3
- data/docs/why.html +3 -3
- data/dx/build +45 -9
- data/lib/brut/cli/app.rb +1 -1
- data/lib/brut/cli/apps/heroku_container_based_deploy.rb +1 -1
- data/lib/brut/cli/apps/scaffold.rb +1 -1
- data/lib/brut/cli/options.rb +4 -0
- data/lib/brut/factory_bot.rb +1 -1
- data/lib/brut/framework/app.rb +1 -1
- data/lib/brut/framework/config.rb +18 -12
- data/lib/brut/framework/mcp.rb +12 -7
- data/lib/brut/front_end/csrf_protector.rb +30 -0
- data/lib/brut/front_end/form.rb +4 -4
- data/lib/brut/front_end/page.rb +1 -1
- data/lib/brut/front_end/routing.rb +1 -1
- data/lib/brut/front_end.rb +1 -0
- data/lib/brut/i18n/base_methods.rb +1 -1
- data/lib/brut/instrumentation/logger_span_exporter.rb +1 -1
- data/lib/brut/junk_drawer.rb +3 -1
- data/lib/brut/rubocop_config.rb +123 -0
- data/lib/brut/spec_support/component_support.rb +0 -3
- data/lib/brut/spec_support/rspec_setup.rb +2 -2
- data/lib/brut/version.rb +1 -1
- data/mkbrut/Gemfile.lock +1 -1
- data/mkbrut/dx +1 -0
- data/mkbrut/lib/mkbrut/app.rb +1 -1
- data/mkbrut/lib/mkbrut/cli.rb +1 -1
- data/mkbrut/lib/mkbrut/segments/heroku.rb +1 -1
- data/mkbrut/lib/mkbrut/version.rb +1 -1
- data/mkbrut/mkbrut.gemspec +3 -1
- data/mkbrut/templates/Base/app/config/i18n/en/1_defaults.rb +2 -2
- data/mkbrut/templates/Base/app/config/i18n/en/2_app.rb +1 -1
- data/mkbrut/templates/Base/bin/setup +1 -1
- data/mkbrut/templates/segments/Demo/app/src/front_end/components/flash_component.rb +1 -1
- data/specs/brut/junk_drawer.spec.rb +4 -0
- metadata +92 -35
- data/.rspec +0 -3
- data/docs/assets/chunks/@localSearchIndexroot.CmtZyrFA.js +0 -1
- data/docs/assets/tutorial.md.BIb7XT6j.js +0 -1
- data/docs/assets/tutorial.md.BIb7XT6j.lean.js +0 -1
- /data/docs/assets/{components.md.DHh-NwKs.lean.js → components.md.Bu80E2Nr.lean.js} +0 -0
- /data/docs/assets/{configuration.md.D8Wz3oJU.lean.js → configuration.md.CuIxVsSf.lean.js} +0 -0
- /data/docs/assets/{database-schema.md.C5gXexJi.lean.js → database-schema.md.LpmBPVEU.lean.js} +0 -0
- /data/docs/assets/{forms.md.BRE85eju.lean.js → forms.md.DnLbzVDa.lean.js} +0 -0
- /data/docs/assets/{getting-started.md.2ioiTe-B.lean.js → getting-started.md.DdQLmU3C.lean.js} +0 -0
- /data/docs/assets/{recipes_migrations.md.DPN3gQE3.lean.js → recipes_migrations.md.CTcnWDJF.lean.js} +0 -0
@@ -139,9 +139,9 @@ like <code>[href="#{page_klass.routing(**args)}"]</code>.</p>
|
|
139
139
|
</div>
|
140
140
|
|
141
141
|
<div id="footer">
|
142
|
-
Generated on
|
142
|
+
Generated on Tue Aug 12 16:58:17 2025 by
|
143
143
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
144
|
-
0.9.37 (ruby-3.4.
|
144
|
+
0.9.37 (ruby-3.4.5).
|
145
145
|
</div>
|
146
146
|
|
147
147
|
</div>
|
@@ -155,9 +155,9 @@ did what you expect</p>
|
|
155
155
|
</div>
|
156
156
|
|
157
157
|
<div id="footer">
|
158
|
-
Generated on
|
158
|
+
Generated on Tue Aug 12 16:58:18 2025 by
|
159
159
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
160
|
-
0.9.37 (ruby-3.4.
|
160
|
+
0.9.37 (ruby-3.4.5).
|
161
161
|
</div>
|
162
162
|
|
163
163
|
</div>
|
@@ -148,9 +148,9 @@ did what you expect</p>
|
|
148
148
|
</div>
|
149
149
|
|
150
150
|
<div id="footer">
|
151
|
-
Generated on
|
151
|
+
Generated on Tue Aug 12 16:58:18 2025 by
|
152
152
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
153
|
-
0.9.37 (ruby-3.4.
|
153
|
+
0.9.37 (ruby-3.4.5).
|
154
154
|
</div>
|
155
155
|
|
156
156
|
</div>
|
@@ -146,9 +146,9 @@ did what you expect</p>
|
|
146
146
|
</div>
|
147
147
|
|
148
148
|
<div id="footer">
|
149
|
-
Generated on
|
149
|
+
Generated on Tue Aug 12 16:58:18 2025 by
|
150
150
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
151
|
-
0.9.37 (ruby-3.4.
|
151
|
+
0.9.37 (ruby-3.4.5).
|
152
152
|
</div>
|
153
153
|
|
154
154
|
</div>
|
@@ -115,9 +115,9 @@
|
|
115
115
|
</div>
|
116
116
|
|
117
117
|
<div id="footer">
|
118
|
-
Generated on
|
118
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
119
119
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
120
|
-
0.9.37 (ruby-3.4.
|
120
|
+
0.9.37 (ruby-3.4.5).
|
121
121
|
</div>
|
122
122
|
|
123
123
|
</div>
|
@@ -325,9 +325,9 @@
|
|
325
325
|
</div>
|
326
326
|
|
327
327
|
<div id="footer">
|
328
|
-
Generated on
|
328
|
+
Generated on Tue Aug 12 16:58:17 2025 by
|
329
329
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
330
|
-
0.9.37 (ruby-3.4.
|
330
|
+
0.9.37 (ruby-3.4.5).
|
331
331
|
</div>
|
332
332
|
|
333
333
|
</div>
|
@@ -550,10 +550,10 @@ re-run a test. But, it's still monkey-patching.</p>
|
|
550
550
|
<span class='kw'>if</span> <span class='id identifier rubyid_needs_request_context'>needs_request_context</span>
|
551
551
|
<span class='id identifier rubyid_session'>session</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
552
552
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>session_id</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>test-session-id</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
553
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>csrf</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>test-csrf-token</span><span class='tstring_end'>"</span></span>
|
553
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>csrf</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>test-csrf-token</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
554
554
|
<span class='rbrace'>}</span>
|
555
555
|
<span class='id identifier rubyid_env'>env</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
556
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rack.session</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_session'>session</span>
|
556
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rack.session</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
|
557
557
|
<span class='rbrace'>}</span>
|
558
558
|
<span class='id identifier rubyid_app_session'>app_session</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='period'>.</span><span class='id identifier rubyid_container'><span class='object_link'><a href="../../Brut.html#container-class_method" title="Brut.container (method)">container</a></span></span><span class='period'>.</span><span class='id identifier rubyid_session_class'>session_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>rack_session:</span> <span class='id identifier rubyid_session'>session</span><span class='rparen'>)</span>
|
559
559
|
<span class='id identifier rubyid_request_context'>request_context</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="../FrontEnd/RequestContext.html" title="Brut::FrontEnd::RequestContext (class)">RequestContext</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../FrontEnd/RequestContext.html#initialize-instance_method" title="Brut::FrontEnd::RequestContext#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
@@ -627,9 +627,9 @@ re-run a test. But, it's still monkey-patching.</p>
|
|
627
627
|
</div>
|
628
628
|
|
629
629
|
<div id="footer">
|
630
|
-
Generated on
|
630
|
+
Generated on Tue Aug 12 16:58:17 2025 by
|
631
631
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
632
|
-
0.9.37 (ruby-3.4.
|
632
|
+
0.9.37 (ruby-3.4.5).
|
633
633
|
</div>
|
634
634
|
|
635
635
|
</div>
|
@@ -186,9 +186,9 @@
|
|
186
186
|
</div>
|
187
187
|
|
188
188
|
<div id="footer">
|
189
|
-
Generated on
|
189
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
190
190
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
191
|
-
0.9.37 (ruby-3.4.
|
191
|
+
0.9.37 (ruby-3.4.5).
|
192
192
|
</div>
|
193
193
|
|
194
194
|
</div>
|
@@ -119,9 +119,9 @@ Your app's <code>spec_helper.rb</code> should require these explicitly.</p>
|
|
119
119
|
</div>
|
120
120
|
|
121
121
|
<div id="footer">
|
122
|
-
Generated on
|
122
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
123
123
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
124
|
-
0.9.37 (ruby-3.4.
|
124
|
+
0.9.37 (ruby-3.4.5).
|
125
125
|
</div>
|
126
126
|
|
127
127
|
</div>
|
data/docs/api/Brut.html
CHANGED
@@ -79,7 +79,7 @@
|
|
79
79
|
<dl>
|
80
80
|
<dt>Defined in:</dt>
|
81
81
|
<dd>lib/brut.rb<span class="defines">,<br />
|
82
|
-
lib/brut/cli.rb,<br /> lib/brut/version.rb,<br /> lib/brut/framework.rb,<br /> lib/brut/spec_support.rb,<br /> lib/brut/cli/app_runner.rb,<br /> lib/brut/framework/errors.rb,<br /> lib/brut/back_end/seed_data.rb,<br /> lib/brut/framework/container.rb,<br /> lib/brut/cli/execution_results.rb</span>
|
82
|
+
lib/brut/cli.rb,<br /> lib/brut/version.rb,<br /> lib/brut/framework.rb,<br /> lib/brut/spec_support.rb,<br /> lib/brut/cli/app_runner.rb,<br /> lib/brut/rubocop_config.rb,<br /> lib/brut/framework/errors.rb,<br /> lib/brut/back_end/seed_data.rb,<br /> lib/brut/framework/container.rb,<br /> lib/brut/cli/execution_results.rb</span>
|
83
83
|
</dd>
|
84
84
|
</dl>
|
85
85
|
|
@@ -87,15 +87,10 @@
|
|
87
87
|
|
88
88
|
<h2>Overview</h2><div class="docstring">
|
89
89
|
<div class="discussion">
|
90
|
-
<
|
91
|
-
|
90
|
+
<ul>
|
91
|
+
<li>prevent use of postfix conditonals entirely</li>
|
92
|
+
</ul>
|
92
93
|
|
93
|
-
<p>Brut encourages the use of the browser's technology and encourages you to build a web app based
|
94
|
-
on good practices that are set up by default. Brut may not look easy, but it aims to be simple.
|
95
|
-
It attempts to minimize dependencies and complexity, while leveraging
|
96
|
-
common tested Ruby libraries related to web development.</p>
|
97
|
-
|
98
|
-
<p>Have fun!</p>
|
99
94
|
|
100
95
|
|
101
96
|
</div>
|
@@ -111,11 +106,132 @@ common tested Ruby libraries related to web development.</p>
|
|
111
106
|
|
112
107
|
|
113
108
|
|
114
|
-
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Brut/FactoryBot.html" title="Brut::FactoryBot (class)">FactoryBot</a></span>
|
109
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Brut/FactoryBot.html" title="Brut::FactoryBot (class)">FactoryBot</a></span>, <span class='object_link'><a href="Brut/RubocopConfig.html" title="Brut::RubocopConfig (class)">RubocopConfig</a></span>
|
115
110
|
|
116
111
|
|
117
112
|
</p>
|
118
113
|
|
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="IM_NOT_CALLING_THEM_COPS-constant" class="">IM_NOT_CALLING_THEM_COPS =
|
123
|
+
|
124
|
+
</dt>
|
125
|
+
<dd><pre class="code"><span class='lbrace'>{</span>
|
126
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Gemspec/AddRuntimeDependency</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
127
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AmbiguousAssignment</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
128
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AmbiguousOperator</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
129
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AmbiguousOperatorPrecedence</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
130
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AmbiguousRange</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
131
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AmbiguousRegexpLiteral</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
132
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/DuplicateCaseCondition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
133
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/DuplicateElsifCondition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
134
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/Loop</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
135
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/RedundantSplatExpansion</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
136
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/RedundantStringCoercion</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
137
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/RedundantTypeConversion</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
138
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/ToJSON</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
139
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/ColonMethodDefinition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
140
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/DefWithParentheses</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
141
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/InvertibleUnlessCondition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
142
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/KeywordArgumentsMerging</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
143
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/MethodDefParentheses</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
144
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/MissingRespondToMissing</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
145
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/MultilineTernaryOperator</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
146
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/NegatedUnless</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
147
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/NestedTernaryOperator</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
148
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/PreferredHashMethods</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
149
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/UnlessElse</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
150
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/UnlessLogicalOperators</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
151
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Layout/DotPosition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
152
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyle</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>trailing</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
153
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
154
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lint/AssignmentInCondition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
155
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>AllowSafeAssignment</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>false</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
156
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
157
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/ClassMethodsDefinitions</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
158
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyle</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>def_self</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
159
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
160
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/CollectionMethods</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
161
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PreferredMethods</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
162
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>find</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>detect</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
163
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>collect</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>map</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
164
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>find_all</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>select</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
165
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>member?</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>include?</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
166
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
167
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
168
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/EndlessMethod</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
169
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyle</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>allow_single_line</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
170
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
171
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/For</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
172
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyle</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>each</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
173
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
174
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/YodaCondition</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
175
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyle</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>forbid_for_all_comparison_operators</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
176
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
177
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/DisableSyntax</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
178
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DisableSyntax</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbracket'>[</span>
|
179
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>unless</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
180
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>and_or_not</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
181
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>until</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
182
|
+
<span class='rbracket'>]</span><span class='comma'>,</span>
|
183
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
184
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/TrailingCommaInArrayLiteral</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
185
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyleForMultiline</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>consistent_comma</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
186
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
187
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Style/TrailingCommaInHashLiteral</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
188
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EnforcedStyleForMultiline</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>consistent_comma</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
189
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
190
|
+
<span class='comment'># Documented, but nonexistent
|
191
|
+
</span> <span class='comment'>#"Style/ItBlockParameter" => {
|
192
|
+
</span> <span class='comment'># "EnforcedStyle" => "allow_single_line",
|
193
|
+
</span> <span class='comment'>#},
|
194
|
+
</span><span class='rbrace'>}</span></pre></dd>
|
195
|
+
|
196
|
+
<dt id="PREAMBLE-constant" class="">PREAMBLE =
|
197
|
+
<div class="docstring">
|
198
|
+
<div class="discussion">
|
199
|
+
<p>Documented, but nonexistent
|
200
|
+
"Style/ItBlockParameter" => {
|
201
|
+
"EnforcedStyle" => "allow_single_line",
|
202
|
+
},</p>
|
203
|
+
|
204
|
+
|
205
|
+
</div>
|
206
|
+
</div>
|
207
|
+
<div class="tags">
|
208
|
+
|
209
|
+
|
210
|
+
</div>
|
211
|
+
</dt>
|
212
|
+
<dd><pre class="code"><span class='lbrace'>{</span>
|
213
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>inherit_mode</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
214
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>merge</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Exclude</span><span class='tstring_end'>"</span></span> <span class='rbracket'>]</span><span class='comma'>,</span>
|
215
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
216
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>plugins</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbracket'>[</span>
|
217
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rubocop-disable_syntax</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
218
|
+
<span class='rbracket'>]</span><span class='comma'>,</span>
|
219
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>AllCops</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
220
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>DisabledByDefault</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>true</span><span class='comma'>,</span>
|
221
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TargetRubyVersion</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='const'>RUBY_VERSION</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='comma'>,</span>
|
222
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>SuggestExtensions</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>false</span><span class='comma'>,</span>
|
223
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Exclude</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='lbracket'>[</span>
|
224
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>local-gems/**/*</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
225
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>**/local-gems/**/*</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
226
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>node_modules/**/*</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
227
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>**/node_modules/**/*</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
228
|
+
<span class='rbracket'>]</span><span class='comma'>,</span>
|
229
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
230
|
+
<span class='rbrace'>}</span></pre></dd>
|
231
|
+
|
232
|
+
</dl>
|
233
|
+
|
234
|
+
|
119
235
|
|
120
236
|
|
121
237
|
|
@@ -215,9 +331,9 @@ common tested Ruby libraries related to web development.</p>
|
|
215
331
|
</div>
|
216
332
|
|
217
333
|
<div id="footer">
|
218
|
-
Generated on
|
334
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
219
335
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
220
|
-
0.9.37 (ruby-3.4.
|
336
|
+
0.9.37 (ruby-3.4.5).
|
221
337
|
</div>
|
222
338
|
|
223
339
|
</div>
|
data/docs/api/Clock.html
CHANGED
@@ -593,9 +593,9 @@ returned in the configured time zone.</p>
|
|
593
593
|
</div>
|
594
594
|
|
595
595
|
<div id="footer">
|
596
|
-
Generated on
|
596
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
597
597
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
598
|
-
0.9.37 (ruby-3.4.
|
598
|
+
0.9.37 (ruby-3.4.5).
|
599
599
|
</div>
|
600
600
|
|
601
601
|
</div>
|
data/docs/api/ModuleName.html
CHANGED
@@ -327,12 +327,12 @@
|
|
327
327
|
<pre class="lines">
|
328
328
|
|
329
329
|
|
330
|
-
|
331
|
-
|
332
|
-
|
330
|
+
191
|
331
|
+
192
|
332
|
+
193</pre>
|
333
333
|
</td>
|
334
334
|
<td>
|
335
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
335
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 191</span>
|
336
336
|
|
337
337
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_parts_of_module'>parts_of_module</span><span class='rparen'>)</span>
|
338
338
|
<span class='ivar'>@parts_of_module</span> <span class='op'>=</span> <span class='id identifier rubyid_parts_of_module'>parts_of_module</span>
|
@@ -374,12 +374,12 @@
|
|
374
374
|
<pre class="lines">
|
375
375
|
|
376
376
|
|
377
|
-
|
378
|
-
|
379
|
-
|
377
|
+
189
|
378
|
+
190
|
379
|
+
191</pre>
|
380
380
|
</td>
|
381
381
|
<td>
|
382
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
382
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 189</span>
|
383
383
|
|
384
384
|
<span class='kw'>def</span> <span class='id identifier rubyid_parts_of_module'>parts_of_module</span>
|
385
385
|
<span class='ivar'>@parts_of_module</span>
|
@@ -411,16 +411,16 @@
|
|
411
411
|
<pre class="lines">
|
412
412
|
|
413
413
|
|
414
|
-
179
|
415
|
-
180
|
416
414
|
181
|
417
415
|
182
|
418
416
|
183
|
419
417
|
184
|
420
|
-
185
|
418
|
+
185
|
419
|
+
186
|
420
|
+
187</pre>
|
421
421
|
</td>
|
422
422
|
<td>
|
423
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
423
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 181</span>
|
424
424
|
|
425
425
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_string'>from_string</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
|
426
426
|
<span class='id identifier rubyid_string'>string</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_string'><span class='object_link'><a href="RichString.html#from_string-class_method" title="RichString.from_string (method)">from_string</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
|
@@ -455,12 +455,12 @@
|
|
455
455
|
<pre class="lines">
|
456
456
|
|
457
457
|
|
458
|
-
|
459
|
-
|
460
|
-
|
458
|
+
203
|
459
|
+
204
|
460
|
+
205</pre>
|
461
461
|
</td>
|
462
462
|
<td>
|
463
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
463
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 203</span>
|
464
464
|
|
465
465
|
<span class='kw'>def</span> <span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
|
466
466
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@parts_of_module</span> <span class='op'>+</span> <span class='id identifier rubyid_module_name'>module_name</span><span class='period'>.</span><span class='id identifier rubyid_parts_of_module'>parts_of_module</span><span class='rparen'>)</span>
|
@@ -485,16 +485,16 @@
|
|
485
485
|
<pre class="lines">
|
486
486
|
|
487
487
|
|
488
|
-
193
|
489
|
-
194
|
490
488
|
195
|
491
489
|
196
|
492
490
|
197
|
493
491
|
198
|
494
|
-
199
|
492
|
+
199
|
493
|
+
200
|
494
|
+
201</pre>
|
495
495
|
</td>
|
496
496
|
<td>
|
497
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
497
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 195</span>
|
498
498
|
|
499
499
|
<span class='kw'>def</span> <span class='id identifier rubyid_in_module'>in_module</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
|
500
500
|
<span class='kw'>if</span> <span class='id identifier rubyid_in_module?'>in_module?</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
|
@@ -523,8 +523,6 @@
|
|
523
523
|
<pre class="lines">
|
524
524
|
|
525
525
|
|
526
|
-
207
|
527
|
-
208
|
528
526
|
209
|
529
527
|
210
|
530
528
|
211
|
@@ -533,10 +531,12 @@
|
|
533
531
|
214
|
534
532
|
215
|
535
533
|
216
|
536
|
-
217
|
534
|
+
217
|
535
|
+
218
|
536
|
+
219</pre>
|
537
537
|
</td>
|
538
538
|
<td>
|
539
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
539
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 209</span>
|
540
540
|
|
541
541
|
<span class='kw'>def</span> <span class='id identifier rubyid_path_from'>path_from</span><span class='lparen'>(</span><span class='id identifier rubyid_base_path'>base_path</span><span class='comma'>,</span> <span class='label'>extname:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.rb</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
542
542
|
<span class='id identifier rubyid_parts_as_path_segment'>parts_as_path_segment</span> <span class='op'>=</span> <span class='ivar'>@parts_of_module</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_part'>part</span><span class='op'>|</span>
|
@@ -569,10 +569,10 @@
|
|
569
569
|
<pre class="lines">
|
570
570
|
|
571
571
|
|
572
|
-
|
572
|
+
207</pre>
|
573
573
|
</td>
|
574
574
|
<td>
|
575
|
-
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line
|
575
|
+
<pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 207</span>
|
576
576
|
|
577
577
|
<span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>=</span> <span class='ivar'>@parts_of_module</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>::</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span></pre>
|
578
578
|
</td>
|
@@ -585,9 +585,9 @@
|
|
585
585
|
</div>
|
586
586
|
|
587
587
|
<div id="footer">
|
588
|
-
Generated on
|
588
|
+
Generated on Tue Aug 12 16:58:16 2025 by
|
589
589
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
590
|
-
0.9.37 (ruby-3.4.
|
590
|
+
0.9.37 (ruby-3.4.5).
|
591
591
|
</div>
|
592
592
|
|
593
593
|
</div>
|