brut 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +4 -1
- data/bin/docs +7 -0
- data/brut-css/package-lock.json +2 -2
- data/brut-css/package.json +1 -1
- data/brut-js/package-lock.json +2 -2
- data/brut-js/package.json +1 -1
- data/brut.gemspec +2 -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 +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 +1 -1
- data/docs/api/Brut/CLI/AppRunner.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
- data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB.html +1 -1
- data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
- data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +2 -2
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +10 -6
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test.html +1 -1
- data/docs/api/Brut/CLI/Apps.html +1 -1
- data/docs/api/Brut/CLI/Command.html +1 -1
- 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 +1 -1
- data/docs/api/Brut/CLI/InvalidOption.html +1 -1
- data/docs/api/Brut/CLI/Options.html +1 -1
- 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 +1 -1
- data/docs/api/Brut/Framework/Error.html +1 -1
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -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 +1 -1
- 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 +1 -1
- data/docs/api/Brut/FrontEnd/Component.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
- 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/ButtonTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
- 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 +1 -1
- data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
- 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/Button.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/Methods/ClassMethods.html +1 -1
- data/docs/api/Brut/Instrumentation/Methods.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/RubocopConfig.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 +1 -1
- 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 +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
- data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
- data/docs/api/Brut/SpecSupport.html +1 -1
- data/docs/api/Brut/TUI/AnsiEscapeCode/Mod.html +409 -0
- data/docs/api/Brut/TUI/AnsiEscapeCode.html +426 -0
- data/docs/api/Brut/TUI/EventLoop/Deque.html +531 -0
- data/docs/api/Brut/TUI/EventLoop.html +676 -0
- data/docs/api/Brut/TUI/Events/BaseEvent.html +449 -0
- data/docs/api/Brut/TUI/Events/EventBus.html +485 -0
- data/docs/api/Brut/TUI/Events/EventLoopStarted.html +211 -0
- data/docs/api/Brut/TUI/Events/Exception.html +523 -0
- data/docs/api/Brut/TUI/Events/Tick.html +294 -0
- data/docs/api/Brut/TUI/Events.html +131 -0
- data/docs/api/Brut/TUI/MarkupString.html +537 -0
- data/docs/api/Brut/TUI/Script/BlockStep.html +300 -0
- data/docs/api/Brut/TUI/Script/Events/CommandExecutionFailed.html +252 -0
- data/docs/api/Brut/TUI/Script/Events/CommandExecutionSucceeded.html +163 -0
- data/docs/api/Brut/TUI/Script/Events/CommandStdErr.html +163 -0
- data/docs/api/Brut/TUI/Script/Events/CommandStdOut.html +300 -0
- data/docs/api/Brut/TUI/Script/Events/ExecutingCommand.html +298 -0
- data/docs/api/Brut/TUI/Script/Events/Message.html +345 -0
- data/docs/api/Brut/TUI/Script/Events/PhaseCompleted.html +229 -0
- data/docs/api/Brut/TUI/Script/Events/PhaseStarted.html +350 -0
- data/docs/api/Brut/TUI/Script/Events/ScriptCompleted.html +282 -0
- data/docs/api/Brut/TUI/Script/Events/ScriptStarted.html +343 -0
- data/docs/api/Brut/TUI/Script/Events/StepCompleted.html +163 -0
- data/docs/api/Brut/TUI/Script/Events/StepStarted.html +346 -0
- data/docs/api/Brut/TUI/Script/Events.html +115 -0
- data/docs/api/Brut/TUI/Script/ExecStep/ProcessStatusFailed.html +210 -0
- data/docs/api/Brut/TUI/Script/ExecStep.html +493 -0
- data/docs/api/Brut/TUI/Script/LoggingSubscriber.html +914 -0
- data/docs/api/Brut/TUI/Script/PutsSubscriber.html +783 -0
- data/docs/api/Brut/TUI/Script/Step.html +313 -0
- data/docs/api/Brut/TUI/Script.html +1250 -0
- data/docs/api/Brut/TUI/Terminal.html +593 -0
- data/docs/api/Brut/TUI/TerminalTheme.html +1403 -0
- data/docs/api/Brut/TUI/Themes/Dark.html +706 -0
- data/docs/api/Brut/TUI/Themes/Light.html +804 -0
- data/docs/api/Brut/TUI/Themes/None.html +218 -0
- data/docs/api/Brut/TUI/Themes.html +115 -0
- data/docs/api/Brut/TUI.html +129 -0
- data/docs/api/Brut.html +3 -3
- data/docs/api/Clock.html +1 -1
- data/docs/api/ModuleName.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 +1 -1
- data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
- 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 +246 -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 +1551 -431
- data/docs/api/top-level-namespace.html +1 -1
- data/docs/assets/{app.CovevI7X.js → app.B8jAEB7R.js} +1 -1
- data/docs/assets/chunks/@localSearchIndexroot.DJ8mocCj.js +1 -0
- data/docs/assets/chunks/{VPLocalSearchBox.CrvLAvKW.js → VPLocalSearchBox.gF-Po_fz.js} +1 -1
- data/docs/assets/chunks/{theme.BAi5_yQI.js → theme.BjPAOJkz.js} +2 -2
- data/docs/assets/{components.md.9sqJ27Oc.js → components.md.Ber8UBM0.js} +3 -3
- data/docs/assets/{configuration.md.Cb_oAR8Z.js → configuration.md.DrJ6YVoZ.js} +1 -1
- data/docs/assets/{forms.md.BdpYpNIk.js → forms.md.RK0zkhm0.js} +2 -2
- data/docs/assets/{forms.md.BdpYpNIk.lean.js → forms.md.RK0zkhm0.lean.js} +1 -1
- data/docs/assets/{getting-started.md.CKpNGvno.js → getting-started.md.CGJ44juQ.js} +2 -2
- data/docs/assets/{tutorials_02-dialog.md.Z_DOF2mU.js → tutorials_02-dialog.md.DE5WfCXI.js} +1 -1
- data/docs/assets.html +3 -3
- data/docs/brut-css/brut.css +1 -0
- 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/Toast.html +1 -1
- data/docs/brut-js/api/Toast.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 +3 -3
- 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/custom-flash.html +3 -3
- data/docs/recipes/dev-env-secrets.html +3 -3
- data/docs/recipes/form-errors.html +3 -3
- data/docs/recipes/indexed-forms.html +3 -3
- data/docs/recipes/migrations.html +3 -3
- 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 +3 -3
- data/docs/tutorials/01-intro.html +3 -3
- data/docs/tutorials/02-dialog.html +5 -5
- data/docs/unit-tests.html +3 -3
- data/docs/why.html +3 -3
- data/lib/brut/cli/apps/build_assets.rb +1 -1
- data/lib/brut/cli/apps/heroku_container_based_deploy.rb +1 -1
- data/lib/brut/cli/apps/test.rb +6 -4
- data/lib/brut/tui/ansi_escape_code.rb +104 -0
- data/lib/brut/tui/event_loop.rb +168 -0
- data/lib/brut/tui/events/base_event.rb +29 -0
- data/lib/brut/tui/events/event_bus.rb +73 -0
- data/lib/brut/tui/events/event_loop_started.rb +5 -0
- data/lib/brut/tui/events/exception.rb +24 -0
- data/lib/brut/tui/events/tick.rb +12 -0
- data/lib/brut/tui/events.rb +7 -0
- data/lib/brut/tui/markup_string.rb +68 -0
- data/lib/brut/tui/script/block_step.rb +17 -0
- data/lib/brut/tui/script/events/command_execution_failed.rb +4 -0
- data/lib/brut/tui/script/events/command_execution_succeeded.rb +3 -0
- data/lib/brut/tui/script/events/command_std_err.rb +3 -0
- data/lib/brut/tui/script/events/command_std_out.rb +13 -0
- data/lib/brut/tui/script/events/executing_command.rb +12 -0
- data/lib/brut/tui/script/events/message.rb +15 -0
- data/lib/brut/tui/script/events/phase_completed.rb +4 -0
- data/lib/brut/tui/script/events/phase_started.rb +14 -0
- data/lib/brut/tui/script/events/script_completed.rb +5 -0
- data/lib/brut/tui/script/events/script_started.rb +12 -0
- data/lib/brut/tui/script/events/step_completed.rb +3 -0
- data/lib/brut/tui/script/events/step_started.rb +12 -0
- data/lib/brut/tui/script/events.rb +14 -0
- data/lib/brut/tui/script/exec_step.rb +60 -0
- data/lib/brut/tui/script/logging_subscriber.rb +98 -0
- data/lib/brut/tui/script/puts_subscriber.rb +109 -0
- data/lib/brut/tui/script/step.rb +13 -0
- data/lib/brut/tui/script.rb +211 -0
- data/lib/brut/tui/terminal.rb +74 -0
- data/lib/brut/tui/terminal_theme.rb +140 -0
- data/lib/brut/tui/themes/dark.rb +14 -0
- data/lib/brut/tui/themes/light.rb +17 -0
- data/lib/brut/tui/themes/none.rb +9 -0
- data/lib/brut/tui/themes.rb +5 -0
- data/lib/brut/tui.rb +15 -0
- data/lib/brut/version.rb +1 -1
- data/lib/brut.rb +1 -0
- data/mkbrut/Gemfile.lock +1 -1
- data/mkbrut/lib/mkbrut/version.rb +1 -1
- data/specs/brut/tui/ansi_escape_code.spec.rb +30 -0
- data/specs/brut/tui/event_loop.spec.rb +70 -0
- data/specs/brut/tui/events/base_event.spec.rb +26 -0
- data/specs/brut/tui/events/event_bus.spec.rb +141 -0
- data/specs/brut/tui/events/exception.spec.rb +19 -0
- data/specs/brut/tui/events/test_event.rb +5 -0
- data/specs/spec_helper.rb +4 -0
- metadata +124 -15
- data/docs/assets/chunks/@localSearchIndexroot.BiNc3tFI.js +0 -1
- /data/docs/assets/{components.md.9sqJ27Oc.lean.js → components.md.Ber8UBM0.lean.js} +0 -0
- /data/docs/assets/{configuration.md.Cb_oAR8Z.lean.js → configuration.md.DrJ6YVoZ.lean.js} +0 -0
- /data/docs/assets/{getting-started.md.CKpNGvno.lean.js → getting-started.md.CGJ44juQ.lean.js} +0 -0
- /data/docs/assets/{tutorials_02-dialog.md.Z_DOF2mU.lean.js → tutorials_02-dialog.md.DE5WfCXI.lean.js} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "brut/tui"
|
|
3
|
+
require_relative "test_event"
|
|
4
|
+
|
|
5
|
+
RSpec.describe Brut::TUI::Events::EventBus do
|
|
6
|
+
class OtherTestEvent < Brut::TUI::Events::BaseEvent
|
|
7
|
+
def self.handler_method_name
|
|
8
|
+
:on_other_test_event
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class SubscriberToTestEvent
|
|
13
|
+
def notified = @notified
|
|
14
|
+
def notified_method = @notified_method
|
|
15
|
+
def on_test_event(event)
|
|
16
|
+
@notified = event
|
|
17
|
+
@notified_method = :on_test_event
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
class SubscriberToAnyEventOnly
|
|
21
|
+
def notified = @notified
|
|
22
|
+
def notified_method = @notified_method
|
|
23
|
+
def on_any_event(event)
|
|
24
|
+
@notified = event
|
|
25
|
+
@notified_method = :on_any_event
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
class SubscriberToTestEventAndAnyEvent
|
|
29
|
+
def notified = @notified
|
|
30
|
+
def notified_method = @notified_method
|
|
31
|
+
def on_test_event(event)
|
|
32
|
+
@notified = event
|
|
33
|
+
@notified_method = :on_test_event
|
|
34
|
+
end
|
|
35
|
+
def on_any_event(event)
|
|
36
|
+
@notified = event
|
|
37
|
+
@notified_method = :on_any_event
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class RaisesErrorInTestEvent
|
|
42
|
+
def on_test_event(event)
|
|
43
|
+
raise "Error in on_test_event"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class RaisesErrorInAnyEvent
|
|
48
|
+
def on_any_event(event)
|
|
49
|
+
raise "Error in on_any_event"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
subject(:event_bus) { described_class.new }
|
|
54
|
+
|
|
55
|
+
describe "#subscribe" do
|
|
56
|
+
context "subscriber implements the handler method" do
|
|
57
|
+
it "is notified" do
|
|
58
|
+
subscriber = SubscriberToTestEvent.new
|
|
59
|
+
event_bus.subscribe(SpecSupport::TestEvent, subscriber)
|
|
60
|
+
event = SpecSupport::TestEvent.new
|
|
61
|
+
|
|
62
|
+
errors = event_bus.notify(event)
|
|
63
|
+
|
|
64
|
+
expect(errors).to eq([])
|
|
65
|
+
expect(subscriber.notified).to eq(event)
|
|
66
|
+
expect(subscriber.notified_method).to eq(:on_test_event)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
context "subscriber does not implement the handler method" do
|
|
70
|
+
it "is raises when subscribing" do
|
|
71
|
+
subscriber = SubscriberToAnyEventOnly.new
|
|
72
|
+
expect {
|
|
73
|
+
event_bus.subscribe(SpecSupport::TestEvent, subscriber)
|
|
74
|
+
}.to raise_error(ArgumentError, /does not implement handler method/)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
describe "#subscribe_to_all" do
|
|
79
|
+
context "subscriber implements the handler method" do
|
|
80
|
+
it "is notified via that method" do
|
|
81
|
+
subscriber = SubscriberToTestEventAndAnyEvent.new
|
|
82
|
+
event_bus.subscribe_to_all(subscriber)
|
|
83
|
+
event = SpecSupport::TestEvent.new
|
|
84
|
+
|
|
85
|
+
errors = event_bus.notify(event)
|
|
86
|
+
|
|
87
|
+
expect(errors).to eq([])
|
|
88
|
+
expect(subscriber.notified).to eq(event)
|
|
89
|
+
expect(subscriber.notified_method).to eq(:on_test_event)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
context "subscriber does not implement the handler method" do
|
|
93
|
+
context "subscriber implements on_any_event" do
|
|
94
|
+
it "calls on_any_event when notified" do
|
|
95
|
+
subscriber = SubscriberToAnyEventOnly.new
|
|
96
|
+
event_bus.subscribe_to_all(subscriber)
|
|
97
|
+
event = SpecSupport::TestEvent.new
|
|
98
|
+
|
|
99
|
+
errors = event_bus.notify(event)
|
|
100
|
+
|
|
101
|
+
expect(errors).to eq([])
|
|
102
|
+
expect(subscriber.notified).to eq(event)
|
|
103
|
+
expect(subscriber.notified_method).to eq(:on_any_event)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
context "subscriber does not implement on_any_event" do
|
|
107
|
+
it "nothing happens" do
|
|
108
|
+
subscriber = SubscriberToTestEvent.new
|
|
109
|
+
event_bus.subscribe_to_all(subscriber)
|
|
110
|
+
event = OtherTestEvent.new
|
|
111
|
+
|
|
112
|
+
errors = event_bus.notify(event)
|
|
113
|
+
|
|
114
|
+
expect(errors).to eq([])
|
|
115
|
+
expect(subscriber.notified).to eq(nil)
|
|
116
|
+
expect(subscriber.notified_method).to eq(nil)
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
describe "#notify" do
|
|
122
|
+
|
|
123
|
+
# some of this method's behavior is covered by the tests above
|
|
124
|
+
|
|
125
|
+
context "when subscribers raise errors" do
|
|
126
|
+
it "returns them as an array" do
|
|
127
|
+
event_bus.subscribe(SpecSupport::TestEvent, RaisesErrorInTestEvent.new)
|
|
128
|
+
event_bus.subscribe_to_all(RaisesErrorInAnyEvent.new)
|
|
129
|
+
event_bus.subscribe_to_all(SubscriberToAnyEventOnly.new)
|
|
130
|
+
|
|
131
|
+
event = SpecSupport::TestEvent.new
|
|
132
|
+
|
|
133
|
+
errors = event_bus.notify(event)
|
|
134
|
+
|
|
135
|
+
expect(errors.length).to eq(2)
|
|
136
|
+
expect(errors.map(&:message)).to include("Error in on_test_event")
|
|
137
|
+
expect(errors.map(&:message)).to include("Error in on_any_event")
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "brut/tui"
|
|
3
|
+
|
|
4
|
+
RSpec.describe Brut::TUI::Events::Exception do
|
|
5
|
+
|
|
6
|
+
describe ":#exit?" do
|
|
7
|
+
it "is true" do
|
|
8
|
+
event = described_class.new(StandardError.new("Test exception"))
|
|
9
|
+
expect(event.exit?).to eq(true)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
describe ":#drain_then_exit?" do
|
|
13
|
+
it "is false" do
|
|
14
|
+
event = described_class.new(StandardError.new("Test exception"))
|
|
15
|
+
expect(event.drain_then_exit?).to eq(false)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
data/specs/spec_helper.rb
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
require "brut"
|
|
2
|
+
require "confidence_check/for_rspec"
|
|
3
|
+
|
|
2
4
|
require_relative "support"
|
|
3
5
|
|
|
4
6
|
RSpec.configure do |config|
|
|
7
|
+
config.include ConfidenceCheck::ForRSpec
|
|
8
|
+
|
|
5
9
|
config.expect_with :rspec do |expectations|
|
|
6
10
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
7
11
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brut
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Bryant Copeland
|
|
@@ -247,6 +247,20 @@ dependencies:
|
|
|
247
247
|
- - ">="
|
|
248
248
|
- !ruby/object:Gem::Version
|
|
249
249
|
version: '0'
|
|
250
|
+
- !ruby/object:Gem::Dependency
|
|
251
|
+
name: unicode-display_width
|
|
252
|
+
requirement: !ruby/object:Gem::Requirement
|
|
253
|
+
requirements:
|
|
254
|
+
- - ">="
|
|
255
|
+
- !ruby/object:Gem::Version
|
|
256
|
+
version: '0'
|
|
257
|
+
type: :runtime
|
|
258
|
+
prerelease: false
|
|
259
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
260
|
+
requirements:
|
|
261
|
+
- - ">="
|
|
262
|
+
- !ruby/object:Gem::Version
|
|
263
|
+
version: '0'
|
|
250
264
|
- !ruby/object:Gem::Dependency
|
|
251
265
|
name: activesupport
|
|
252
266
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -275,6 +289,20 @@ dependencies:
|
|
|
275
289
|
- - ">="
|
|
276
290
|
- !ruby/object:Gem::Version
|
|
277
291
|
version: '0'
|
|
292
|
+
- !ruby/object:Gem::Dependency
|
|
293
|
+
name: confidence-check
|
|
294
|
+
requirement: !ruby/object:Gem::Requirement
|
|
295
|
+
requirements:
|
|
296
|
+
- - ">="
|
|
297
|
+
- !ruby/object:Gem::Version
|
|
298
|
+
version: '0'
|
|
299
|
+
type: :development
|
|
300
|
+
prerelease: false
|
|
301
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
302
|
+
requirements:
|
|
303
|
+
- - ">="
|
|
304
|
+
- !ruby/object:Gem::Version
|
|
305
|
+
version: '0'
|
|
278
306
|
- !ruby/object:Gem::Dependency
|
|
279
307
|
name: dotenv
|
|
280
308
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -923,6 +951,44 @@ files:
|
|
|
923
951
|
- docs/api/Brut/SpecSupport/RSpecSetup.html
|
|
924
952
|
- docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html
|
|
925
953
|
- docs/api/Brut/SpecSupport/SessionSupport.html
|
|
954
|
+
- docs/api/Brut/TUI.html
|
|
955
|
+
- docs/api/Brut/TUI/AnsiEscapeCode.html
|
|
956
|
+
- docs/api/Brut/TUI/AnsiEscapeCode/Mod.html
|
|
957
|
+
- docs/api/Brut/TUI/EventLoop.html
|
|
958
|
+
- docs/api/Brut/TUI/EventLoop/Deque.html
|
|
959
|
+
- docs/api/Brut/TUI/Events.html
|
|
960
|
+
- docs/api/Brut/TUI/Events/BaseEvent.html
|
|
961
|
+
- docs/api/Brut/TUI/Events/EventBus.html
|
|
962
|
+
- docs/api/Brut/TUI/Events/EventLoopStarted.html
|
|
963
|
+
- docs/api/Brut/TUI/Events/Exception.html
|
|
964
|
+
- docs/api/Brut/TUI/Events/Tick.html
|
|
965
|
+
- docs/api/Brut/TUI/MarkupString.html
|
|
966
|
+
- docs/api/Brut/TUI/Script.html
|
|
967
|
+
- docs/api/Brut/TUI/Script/BlockStep.html
|
|
968
|
+
- docs/api/Brut/TUI/Script/Events.html
|
|
969
|
+
- docs/api/Brut/TUI/Script/Events/CommandExecutionFailed.html
|
|
970
|
+
- docs/api/Brut/TUI/Script/Events/CommandExecutionSucceeded.html
|
|
971
|
+
- docs/api/Brut/TUI/Script/Events/CommandStdErr.html
|
|
972
|
+
- docs/api/Brut/TUI/Script/Events/CommandStdOut.html
|
|
973
|
+
- docs/api/Brut/TUI/Script/Events/ExecutingCommand.html
|
|
974
|
+
- docs/api/Brut/TUI/Script/Events/Message.html
|
|
975
|
+
- docs/api/Brut/TUI/Script/Events/PhaseCompleted.html
|
|
976
|
+
- docs/api/Brut/TUI/Script/Events/PhaseStarted.html
|
|
977
|
+
- docs/api/Brut/TUI/Script/Events/ScriptCompleted.html
|
|
978
|
+
- docs/api/Brut/TUI/Script/Events/ScriptStarted.html
|
|
979
|
+
- docs/api/Brut/TUI/Script/Events/StepCompleted.html
|
|
980
|
+
- docs/api/Brut/TUI/Script/Events/StepStarted.html
|
|
981
|
+
- docs/api/Brut/TUI/Script/ExecStep.html
|
|
982
|
+
- docs/api/Brut/TUI/Script/ExecStep/ProcessStatusFailed.html
|
|
983
|
+
- docs/api/Brut/TUI/Script/LoggingSubscriber.html
|
|
984
|
+
- docs/api/Brut/TUI/Script/PutsSubscriber.html
|
|
985
|
+
- docs/api/Brut/TUI/Script/Step.html
|
|
986
|
+
- docs/api/Brut/TUI/Terminal.html
|
|
987
|
+
- docs/api/Brut/TUI/TerminalTheme.html
|
|
988
|
+
- docs/api/Brut/TUI/Themes.html
|
|
989
|
+
- docs/api/Brut/TUI/Themes/Dark.html
|
|
990
|
+
- docs/api/Brut/TUI/Themes/Light.html
|
|
991
|
+
- docs/api/Brut/TUI/Themes/None.html
|
|
926
992
|
- docs/api/Clock.html
|
|
927
993
|
- docs/api/ModuleName.html
|
|
928
994
|
- docs/api/RichString.html
|
|
@@ -939,6 +1005,7 @@ files:
|
|
|
939
1005
|
- docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html
|
|
940
1006
|
- docs/api/Sequel/Plugins/FindBang.html
|
|
941
1007
|
- docs/api/Sequel/Plugins/FindBang/ClassMethods.html
|
|
1008
|
+
- docs/api/SpecSupport/Matchers/BeABug.html
|
|
942
1009
|
- docs/api/_index.html
|
|
943
1010
|
- docs/api/class_list.html
|
|
944
1011
|
- docs/api/css/common.css
|
|
@@ -965,7 +1032,7 @@ files:
|
|
|
965
1032
|
- docs/assets/adrs.md.YglbWtQe.lean.js
|
|
966
1033
|
- docs/assets/ai.md.ChLnvDAX.js
|
|
967
1034
|
- docs/assets/ai.md.ChLnvDAX.lean.js
|
|
968
|
-
- docs/assets/app.
|
|
1035
|
+
- docs/assets/app.B8jAEB7R.js
|
|
969
1036
|
- docs/assets/assets.md.BEF6Oz6K.js
|
|
970
1037
|
- docs/assets/assets.md.BEF6Oz6K.lean.js
|
|
971
1038
|
- docs/assets/basic-form-with-violations.Cv6Y9-Q_.png
|
|
@@ -974,16 +1041,16 @@ files:
|
|
|
974
1041
|
- docs/assets/brut-js.md.BMz0X1Rz.lean.js
|
|
975
1042
|
- docs/assets/business-logic.md.DbuaOYGU.js
|
|
976
1043
|
- docs/assets/business-logic.md.DbuaOYGU.lean.js
|
|
977
|
-
- docs/assets/chunks/@localSearchIndexroot.
|
|
978
|
-
- docs/assets/chunks/VPLocalSearchBox.
|
|
1044
|
+
- docs/assets/chunks/@localSearchIndexroot.DJ8mocCj.js
|
|
1045
|
+
- docs/assets/chunks/VPLocalSearchBox.gF-Po_fz.js
|
|
979
1046
|
- docs/assets/chunks/framework.C4nOkCZI.js
|
|
980
|
-
- docs/assets/chunks/theme.
|
|
1047
|
+
- docs/assets/chunks/theme.BjPAOJkz.js
|
|
981
1048
|
- docs/assets/cli.md.DDMar_51.js
|
|
982
1049
|
- docs/assets/cli.md.DDMar_51.lean.js
|
|
983
|
-
- docs/assets/components.md.
|
|
984
|
-
- docs/assets/components.md.
|
|
985
|
-
- docs/assets/configuration.md.
|
|
986
|
-
- docs/assets/configuration.md.
|
|
1050
|
+
- docs/assets/components.md.Ber8UBM0.js
|
|
1051
|
+
- docs/assets/components.md.Ber8UBM0.lean.js
|
|
1052
|
+
- docs/assets/configuration.md.DrJ6YVoZ.js
|
|
1053
|
+
- docs/assets/configuration.md.DrJ6YVoZ.lean.js
|
|
987
1054
|
- docs/assets/css.md.K5rOCOQY.js
|
|
988
1055
|
- docs/assets/css.md.K5rOCOQY.lean.js
|
|
989
1056
|
- docs/assets/custom-element-tests.md.DiLe-eFw.js
|
|
@@ -1009,10 +1076,10 @@ files:
|
|
|
1009
1076
|
- docs/assets/flash-and-session.md.CUsMxoNl.lean.js
|
|
1010
1077
|
- docs/assets/form-constraints.md.KlfXSKm2.js
|
|
1011
1078
|
- docs/assets/form-constraints.md.KlfXSKm2.lean.js
|
|
1012
|
-
- docs/assets/forms.md.
|
|
1013
|
-
- docs/assets/forms.md.
|
|
1014
|
-
- docs/assets/getting-started.md.
|
|
1015
|
-
- docs/assets/getting-started.md.
|
|
1079
|
+
- docs/assets/forms.md.RK0zkhm0.js
|
|
1080
|
+
- docs/assets/forms.md.RK0zkhm0.lean.js
|
|
1081
|
+
- docs/assets/getting-started.md.CGJ44juQ.js
|
|
1082
|
+
- docs/assets/getting-started.md.CGJ44juQ.lean.js
|
|
1016
1083
|
- docs/assets/handlers.md.C5tUwmmo.js
|
|
1017
1084
|
- docs/assets/handlers.md.C5tUwmmo.lean.js
|
|
1018
1085
|
- docs/assets/hooks.md.CoiYCKRc.js
|
|
@@ -1080,14 +1147,15 @@ files:
|
|
|
1080
1147
|
- docs/assets/tutorial.md.BX6f6l00.lean.js
|
|
1081
1148
|
- docs/assets/tutorials_01-intro.md.CzZ3kpF_.js
|
|
1082
1149
|
- docs/assets/tutorials_01-intro.md.CzZ3kpF_.lean.js
|
|
1083
|
-
- docs/assets/tutorials_02-dialog.md.
|
|
1084
|
-
- docs/assets/tutorials_02-dialog.md.
|
|
1150
|
+
- docs/assets/tutorials_02-dialog.md.DE5WfCXI.js
|
|
1151
|
+
- docs/assets/tutorials_02-dialog.md.DE5WfCXI.lean.js
|
|
1085
1152
|
- docs/assets/unit-tests.md.vDsdBbO_.js
|
|
1086
1153
|
- docs/assets/unit-tests.md.vDsdBbO_.lean.js
|
|
1087
1154
|
- docs/assets/welcome-to-brut.VSWzl17-.png
|
|
1088
1155
|
- docs/assets/why.md.4WpxdrQ2.js
|
|
1089
1156
|
- docs/assets/why.md.4WpxdrQ2.lean.js
|
|
1090
1157
|
- docs/assets/workspace-protocol.C0gXsoDb.png
|
|
1158
|
+
- docs/brut-css/brut.css
|
|
1091
1159
|
- docs/brut-css/brut.max.css
|
|
1092
1160
|
- docs/brut-css/classes/appearances.html
|
|
1093
1161
|
- docs/brut-css/classes/background-colors.html
|
|
@@ -1383,6 +1451,41 @@ files:
|
|
|
1383
1451
|
- lib/brut/spec_support/matchers/have_returned_rack_response.rb
|
|
1384
1452
|
- lib/brut/spec_support/rspec_setup.rb
|
|
1385
1453
|
- lib/brut/spec_support/session_support.rb
|
|
1454
|
+
- lib/brut/tui.rb
|
|
1455
|
+
- lib/brut/tui/ansi_escape_code.rb
|
|
1456
|
+
- lib/brut/tui/event_loop.rb
|
|
1457
|
+
- lib/brut/tui/events.rb
|
|
1458
|
+
- lib/brut/tui/events/base_event.rb
|
|
1459
|
+
- lib/brut/tui/events/event_bus.rb
|
|
1460
|
+
- lib/brut/tui/events/event_loop_started.rb
|
|
1461
|
+
- lib/brut/tui/events/exception.rb
|
|
1462
|
+
- lib/brut/tui/events/tick.rb
|
|
1463
|
+
- lib/brut/tui/markup_string.rb
|
|
1464
|
+
- lib/brut/tui/script.rb
|
|
1465
|
+
- lib/brut/tui/script/block_step.rb
|
|
1466
|
+
- lib/brut/tui/script/events.rb
|
|
1467
|
+
- lib/brut/tui/script/events/command_execution_failed.rb
|
|
1468
|
+
- lib/brut/tui/script/events/command_execution_succeeded.rb
|
|
1469
|
+
- lib/brut/tui/script/events/command_std_err.rb
|
|
1470
|
+
- lib/brut/tui/script/events/command_std_out.rb
|
|
1471
|
+
- lib/brut/tui/script/events/executing_command.rb
|
|
1472
|
+
- lib/brut/tui/script/events/message.rb
|
|
1473
|
+
- lib/brut/tui/script/events/phase_completed.rb
|
|
1474
|
+
- lib/brut/tui/script/events/phase_started.rb
|
|
1475
|
+
- lib/brut/tui/script/events/script_completed.rb
|
|
1476
|
+
- lib/brut/tui/script/events/script_started.rb
|
|
1477
|
+
- lib/brut/tui/script/events/step_completed.rb
|
|
1478
|
+
- lib/brut/tui/script/events/step_started.rb
|
|
1479
|
+
- lib/brut/tui/script/exec_step.rb
|
|
1480
|
+
- lib/brut/tui/script/logging_subscriber.rb
|
|
1481
|
+
- lib/brut/tui/script/puts_subscriber.rb
|
|
1482
|
+
- lib/brut/tui/script/step.rb
|
|
1483
|
+
- lib/brut/tui/terminal.rb
|
|
1484
|
+
- lib/brut/tui/terminal_theme.rb
|
|
1485
|
+
- lib/brut/tui/themes.rb
|
|
1486
|
+
- lib/brut/tui/themes/dark.rb
|
|
1487
|
+
- lib/brut/tui/themes/light.rb
|
|
1488
|
+
- lib/brut/tui/themes/none.rb
|
|
1386
1489
|
- lib/brut/version.rb
|
|
1387
1490
|
- lib/sequel/extensions/brut_instrumentation.rb
|
|
1388
1491
|
- lib/sequel/extensions/brut_migrations.rb
|
|
@@ -1565,6 +1668,12 @@ files:
|
|
|
1565
1668
|
- specs/brut/front_end/forms/select_input.spec.rb
|
|
1566
1669
|
- specs/brut/instrumentation/methods.spec.rb
|
|
1567
1670
|
- specs/brut/junk_drawer.spec.rb
|
|
1671
|
+
- specs/brut/tui/ansi_escape_code.spec.rb
|
|
1672
|
+
- specs/brut/tui/event_loop.spec.rb
|
|
1673
|
+
- specs/brut/tui/events/base_event.spec.rb
|
|
1674
|
+
- specs/brut/tui/events/event_bus.spec.rb
|
|
1675
|
+
- specs/brut/tui/events/exception.spec.rb
|
|
1676
|
+
- specs/brut/tui/events/test_event.rb
|
|
1568
1677
|
- specs/spec_helper.rb
|
|
1569
1678
|
- specs/support.rb
|
|
1570
1679
|
- specs/support/matchers.rb
|