brut 0.0.20 → 0.0.22
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 +24 -3
- data/.nvim.lua +1 -0
- data/Dockerfile.dx +12 -3
- data/Gemfile.lock +9 -7
- data/README.md +0 -7
- data/Rakefile +6 -4
- data/bin/dev +20 -0
- data/bin/docs +27 -0
- data/bin/setup +47 -1
- data/brut-css/.nvim.lua +1 -0
- data/brut-css/README.md +28 -0
- data/brut-css/bin/build +31 -0
- data/brut-css/bin/dev +1 -0
- data/brut-css/bin/docs +15 -0
- data/brut-css/bin/setup +5 -0
- data/brut-css/config/media-queries-all.css +15 -0
- data/brut-css/config/media-queries-minimal.css +5 -0
- data/brut-css/config/postcss.config.cjs +7 -0
- data/brut-css/config/pseudo-classes-all.css +9 -0
- data/brut-css/dx +1 -0
- data/brut-css/package-lock.json +3217 -0
- data/brut-css/package.json +36 -0
- data/brut-css/src/css/appearance.css +145 -0
- data/brut-css/src/css/border.css +522 -0
- data/brut-css/src/css/colors.css +3502 -0
- data/brut-css/src/css/dimensions.css +548 -0
- data/brut-css/src/css/flex.css +179 -0
- data/brut-css/src/css/index.css +13 -0
- data/brut-css/src/css/layout.css +120 -0
- data/brut-css/src/css/list.css +41 -0
- data/brut-css/src/css/positioning.css +354 -0
- data/brut-css/src/css/properties/colors.css +455 -0
- data/brut-css/src/css/properties/index.css +3 -0
- data/brut-css/src/css/properties/spacing.css +140 -0
- data/brut-css/src/css/properties/typography.css +224 -0
- data/brut-css/src/css/reset.css +107 -0
- data/brut-css/src/css/spacing.css +585 -0
- data/brut-css/src/css/typography.css +519 -0
- data/brut-css/src/css/utils.css +104 -0
- data/brut-css/src/docs/1_getting-started/1_overview.md +46 -0
- data/brut-css/src/docs/1_getting-started/2_installation.md +25 -0
- data/brut-css/src/docs/1_getting-started/3_core-concepts.md +75 -0
- data/brut-css/src/docs/1_getting-started/4_simple-example.md +132 -0
- data/brut-css/src/docs/1_getting-started/page.html.ejs +10 -0
- data/brut-css/src/docs/2_properties/page.html.ejs +71 -0
- data/brut-css/src/docs/3_classes/color-demo.html.ejs +31 -0
- data/brut-css/src/docs/3_classes/page.html.ejs +87 -0
- data/brut-css/src/docs/4_customization/1_design-system.md +36 -0
- data/brut-css/src/docs/4_customization/2_breakpoints.md +75 -0
- data/brut-css/src/docs/4_customization/3_pseudo-classes.md +74 -0
- data/brut-css/src/docs/4_customization/4_advanced-configuration.md +40 -0
- data/brut-css/src/docs/4_customization/page.html.ejs +10 -0
- data/brut-css/src/docs/docs.css +98 -0
- data/brut-css/src/docs/includes/body-and-header.html.ejs +30 -0
- data/brut-css/src/docs/includes/footer-and-rest.html.ejs +9 -0
- data/brut-css/src/docs/includes/head.html.ejs +5 -0
- data/brut-css/src/docs/includes/nav.html.ejs +10 -0
- data/brut-css/src/docs/index.html.ejs +32 -0
- data/brut-css/src/docs/prism-twilight.min.css +1 -0
- data/brut-css/src/js/Logger.js +71 -0
- data/brut-css/src/js/build.js +111 -0
- data/brut-css/src/js/cli/CLIArgError.js +7 -0
- data/brut-css/src/js/cli/Debug.js +27 -0
- data/brut-css/src/js/cli/DocsDir.js +16 -0
- data/brut-css/src/js/cli/DocsTemplateSourceDir.js +16 -0
- data/brut-css/src/js/cli/InputFile.js +31 -0
- data/brut-css/src/js/cli/MediaQueryConfigFile.js +10 -0
- data/brut-css/src/js/cli/OutputFile.js +22 -0
- data/brut-css/src/js/cli/ParsedArg.js +17 -0
- data/brut-css/src/js/cli/PathToBrutCSSRoot.js +19 -0
- data/brut-css/src/js/cli/PseudoClassConfigFile.js +11 -0
- data/brut-css/src/js/cli.js +108 -0
- data/brut-css/src/js/docGenerator.js +467 -0
- data/brut-css/src/js/mediaQueryConfigParser.js +98 -0
- data/brut-css/src/js/post-css-plugins/addMediaQueriesPlugin.js +49 -0
- data/brut-css/src/js/post-css-plugins/addPseudoClassesPlugin.js +42 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Category.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/DocState.js +185 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Documentable.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Group.js +7 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/ParsedComment.js +73 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Property.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyCategory.js +4 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyGroup.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Rule.js +12 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleCategory.js +4 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleGroup.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeRef.js +5 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeURL.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin.js +49 -0
- data/brut-css/src/js/post-css-plugins/generateRootCustomPropertiesPlugin.js +45 -0
- data/brut-css/src/js/pseudoClassConfigParser.js +145 -0
- data/brut-js/.projections.json +10 -0
- data/brut-js/README.md +118 -0
- data/brut-js/bin/build +10 -0
- data/brut-js/bin/ci +5 -0
- data/brut-js/bin/setup +5 -0
- data/brut-js/docs/README.md +8 -0
- data/brut-js/docs/jsdoc-plugins/customElementTag.js +8 -0
- data/brut-js/docs/jsdoc-theme/publish.js +692 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/linenumber.js +25 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/Apache-License-2.0.txt +202 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/lang-css.js +2 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/prettify.js +28 -0
- data/brut-js/docs/jsdoc-theme/static/styles/jsdoc-default.css +327 -0
- data/brut-js/docs/jsdoc-theme/static/styles/prettify-jsdoc.css +111 -0
- data/brut-js/docs/jsdoc-theme/static/styles/prettify-tomorrow.css +132 -0
- data/brut-js/docs/jsdoc-theme/tmpl/augments.tmpl +10 -0
- data/brut-js/docs/jsdoc-theme/tmpl/container.tmpl +199 -0
- data/brut-js/docs/jsdoc-theme/tmpl/details.tmpl +143 -0
- data/brut-js/docs/jsdoc-theme/tmpl/example.tmpl +2 -0
- data/brut-js/docs/jsdoc-theme/tmpl/examples.tmpl +13 -0
- data/brut-js/docs/jsdoc-theme/tmpl/exceptions.tmpl +32 -0
- data/brut-js/docs/jsdoc-theme/tmpl/layout.tmpl +38 -0
- data/brut-js/docs/jsdoc-theme/tmpl/mainpage.tmpl +14 -0
- data/brut-js/docs/jsdoc-theme/tmpl/members.tmpl +38 -0
- data/brut-js/docs/jsdoc-theme/tmpl/method.tmpl +131 -0
- data/brut-js/docs/jsdoc-theme/tmpl/modifies.tmpl +14 -0
- data/brut-js/docs/jsdoc-theme/tmpl/params.tmpl +131 -0
- data/brut-js/docs/jsdoc-theme/tmpl/properties.tmpl +108 -0
- data/brut-js/docs/jsdoc-theme/tmpl/returns.tmpl +19 -0
- data/brut-js/docs/jsdoc-theme/tmpl/source.tmpl +8 -0
- data/brut-js/docs/jsdoc-theme/tmpl/tutorial.tmpl +19 -0
- data/brut-js/docs/jsdoc-theme/tmpl/type.tmpl +7 -0
- data/brut-js/docs/jsdoc.config.json +23 -0
- data/brut-js/docs/package-lock.json +343 -0
- data/brut-js/docs/package.json +7 -0
- data/brut-js/package-lock.json +2171 -0
- data/brut-js/package.json +32 -0
- data/brut-js/specs/AjaxSubmit.spec.js +256 -0
- data/brut-js/specs/Autosubmit.spec.js +127 -0
- data/brut-js/specs/ConfirmSubmit.spec.js +193 -0
- data/brut-js/specs/ConstraintViolationMessage.spec.js +33 -0
- data/brut-js/specs/ConstraintViolationMessages.spec.js +29 -0
- data/brut-js/specs/CopyToClipboard.spec.js +35 -0
- data/brut-js/specs/Form.spec.js +181 -0
- data/brut-js/specs/I18nTranslation.spec.js +19 -0
- data/brut-js/specs/LocaleDetection.spec.js +22 -0
- data/brut-js/specs/Message.spec.js +15 -0
- data/brut-js/specs/SpecHelper.js +23 -0
- data/brut-js/specs/Tabs.spec.js +41 -0
- data/brut-js/specs/config/asset_metadata.json +7 -0
- data/brut-js/src/AjaxSubmit.js +384 -0
- data/brut-js/src/Autosubmit.js +63 -0
- data/brut-js/src/BaseCustomElement.js +261 -0
- data/brut-js/src/ConfirmSubmit.js +116 -0
- data/brut-js/src/ConfirmationDialog.js +143 -0
- data/brut-js/src/ConstraintViolationMessage.js +125 -0
- data/brut-js/src/ConstraintViolationMessages.js +98 -0
- data/brut-js/src/CopyToClipboard.js +96 -0
- data/brut-js/src/Form.js +151 -0
- data/brut-js/src/I18nTranslation.js +61 -0
- data/brut-js/src/LocaleDetection.js +117 -0
- data/brut-js/src/Logger.js +90 -0
- data/brut-js/src/Message.js +56 -0
- data/brut-js/src/RichString.js +113 -0
- data/brut-js/src/Tabs.js +168 -0
- data/brut-js/src/Tracing.js +247 -0
- data/brut-js/src/appForTestingOnly.js +15 -0
- data/brut-js/src/index.js +130 -0
- data/brut-js/src/testing/AssetMetadata.js +35 -0
- data/brut-js/src/testing/AssetMetadataLoader.js +25 -0
- data/brut-js/src/testing/CustomElementTest.js +235 -0
- data/brut-js/src/testing/DOMCreator.js +45 -0
- data/brut-js/src/testing/index.js +48 -0
- data/brutrb.com/.vitepress/config.mjs +106 -0
- data/brutrb.com/.vitepress/plugins/jsdocLinker.js +34 -0
- data/brutrb.com/.vitepress/plugins/rdocLinker.js +18 -0
- data/brutrb.com/.vitepress/theme/custom.css +7 -0
- data/brutrb.com/.vitepress/theme/index.js +18 -0
- data/brutrb.com/.vitepress/theme/style.css +149 -0
- data/brutrb.com/ai.md +68 -0
- data/brutrb.com/assets.md +138 -0
- data/brutrb.com/bin/build +5 -0
- data/brutrb.com/bin/deploy +7 -0
- data/brutrb.com/bin/dev +5 -0
- data/brutrb.com/bin/setup +5 -0
- data/brutrb.com/brut-js.md +117 -0
- data/brutrb.com/business-logic.md +55 -0
- data/brutrb.com/cli.md +278 -0
- data/brutrb.com/components.md +243 -0
- data/brutrb.com/configuration.md +257 -0
- data/brutrb.com/css.md +103 -0
- data/brutrb.com/custom-element-tests.md +149 -0
- data/brutrb.com/database-access.md +201 -0
- data/brutrb.com/database-schema.md +312 -0
- data/brutrb.com/deployment.md +66 -0
- data/brutrb.com/dev-environment.md +179 -0
- data/brutrb.com/doc-conventions.md +39 -0
- data/brutrb.com/end-to-end-tests.md +174 -0
- data/brutrb.com/flash-and-session.md +224 -0
- data/brutrb.com/forms.md +866 -0
- data/brutrb.com/getting-started.md +66 -0
- data/brutrb.com/handlers.md +153 -0
- data/brutrb.com/hooks.md +178 -0
- data/brutrb.com/i18n.md +188 -0
- data/brutrb.com/images/Makefile +10 -0
- data/brutrb.com/images/dev-env-overview.dot +54 -0
- data/brutrb.com/images/dev-env-overview.png +0 -0
- data/brutrb.com/images/dev-env-protocol.dot +37 -0
- data/brutrb.com/images/dev-env-protocol.png +0 -0
- data/brutrb.com/images/logo-300.png +0 -0
- data/brutrb.com/images/logo.png +0 -0
- data/brutrb.com/images/overview.graffle +0 -0
- data/brutrb.com/images/overview.png +0 -0
- data/brutrb.com/images/spa.dot +19 -0
- data/brutrb.com/images/spa.png +0 -0
- data/brutrb.com/images/workspace-protocol.dot +44 -0
- data/brutrb.com/images/workspace-protocol.png +0 -0
- data/brutrb.com/index.md +36 -0
- data/brutrb.com/instrumentation.md +183 -0
- data/brutrb.com/javascript.md +122 -0
- data/brutrb.com/jobs.md +14 -0
- data/{doc-src → brutrb.com}/keyword-injection.md +122 -68
- data/brutrb.com/markdown-examples.md +85 -0
- data/brutrb.com/middleware.md +80 -0
- data/brutrb.com/not-released.md +5 -0
- data/brutrb.com/overview.md +404 -0
- data/brutrb.com/package-lock.json +2404 -0
- data/brutrb.com/package.json +11 -0
- data/brutrb.com/pages.md +378 -0
- data/brutrb.com/public/images/logo-300.png +0 -0
- data/brutrb.com/public/images/logo.png +0 -0
- data/brutrb.com/routes.md +215 -0
- data/brutrb.com/security.md +105 -0
- data/brutrb.com/seed-data.md +63 -0
- data/brutrb.com/space-time-continuum.md +85 -0
- data/brutrb.com/tutorial.md +3 -0
- data/brutrb.com/unit-tests.md +148 -0
- data/docker-compose.dx.yml +6 -3
- data/docs/404.html +21 -0
- data/docs/CNAME +1 -0
- data/docs/ai.html +24 -0
- data/docs/api/Brut/BackEnd/SeedData.html +493 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +214 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +125 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +125 -0
- data/docs/api/Brut/BackEnd/Sidekiq.html +125 -0
- data/docs/api/Brut/BackEnd/Validators/FormValidator.html +414 -0
- data/docs/api/Brut/BackEnd/Validators.html +128 -0
- data/docs/api/Brut/BackEnd.html +132 -0
- data/docs/api/Brut/CLI/App.html +1576 -0
- data/docs/api/Brut/CLI/AppRunner.html +491 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +264 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +306 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +262 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +314 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets.html +183 -0
- data/docs/api/Brut/CLI/Apps/DB/Create.html +365 -0
- data/docs/api/Brut/CLI/Apps/DB/Drop.html +357 -0
- data/docs/api/Brut/CLI/Apps/DB/Migrate.html +383 -0
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +335 -0
- data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +329 -0
- data/docs/api/Brut/CLI/Apps/DB/Seed.html +347 -0
- data/docs/api/Brut/CLI/Apps/DB/Status.html +383 -0
- data/docs/api/Brut/CLI/Apps/DB.html +183 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +303 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +512 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +398 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +374 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +410 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +262 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +303 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +480 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +450 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +380 -0
- data/docs/api/Brut/CLI/Apps/Scaffold.html +253 -0
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +464 -0
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +407 -0
- data/docs/api/Brut/CLI/Apps/Test/JS.html +262 -0
- data/docs/api/Brut/CLI/Apps/Test/Run.html +578 -0
- data/docs/api/Brut/CLI/Apps/Test.html +253 -0
- data/docs/api/Brut/CLI/Apps.html +125 -0
- data/docs/api/Brut/CLI/Command.html +2342 -0
- data/docs/api/Brut/CLI/Error.html +139 -0
- data/docs/api/Brut/CLI/ExecutionResults/Result.html +664 -0
- data/docs/api/Brut/CLI/ExecutionResults.html +675 -0
- data/docs/api/Brut/CLI/Executor.html +430 -0
- data/docs/api/Brut/CLI/InvalidOption.html +245 -0
- data/docs/api/Brut/CLI/Options.html +753 -0
- data/docs/api/Brut/CLI/Output.html +699 -0
- data/docs/api/Brut/CLI/SystemExecError.html +451 -0
- data/docs/api/Brut/CLI.html +263 -0
- data/docs/api/Brut/FactoryBot.html +225 -0
- data/docs/api/Brut/Framework/App.html +1097 -0
- data/docs/api/Brut/Framework/Config.html +1045 -0
- data/docs/api/Brut/Framework/Container.html +1379 -0
- data/docs/api/Brut/Framework/Error.html +140 -0
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +144 -0
- data/docs/api/Brut/Framework/Errors/Bug.html +234 -0
- data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +257 -0
- data/docs/api/Brut/Framework/Errors/MissingParameter.html +273 -0
- data/docs/api/Brut/Framework/Errors/NoClassForPath.html +471 -0
- data/docs/api/Brut/Framework/Errors/NotFound.html +308 -0
- data/docs/api/Brut/Framework/Errors/NotImplemented.html +234 -0
- data/docs/api/Brut/Framework/Errors.html +328 -0
- data/docs/api/Brut/Framework/FussyTypeEnforcement.html +392 -0
- data/docs/api/Brut/Framework/MCP.html +861 -0
- data/docs/api/Brut/Framework/ProjectEnvironment.html +648 -0
- data/docs/api/Brut/Framework.html +129 -0
- data/docs/api/Brut/FrontEnd/AssetPathResolver.html +317 -0
- data/docs/api/Brut/FrontEnd/Component/Helpers.html +326 -0
- data/docs/api/Brut/FrontEnd/Component.html +365 -0
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +470 -0
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +518 -0
- data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +317 -0
- data/docs/api/Brut/FrontEnd/Components/Input.html +195 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +339 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +660 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +417 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +918 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +651 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs.html +125 -0
- data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +367 -0
- data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +336 -0
- data/docs/api/Brut/FrontEnd/Components/TimeTag.html +655 -0
- data/docs/api/Brut/FrontEnd/Components/Traceparent.html +352 -0
- data/docs/api/Brut/FrontEnd/Components.html +135 -0
- data/docs/api/Brut/FrontEnd/Download.html +467 -0
- data/docs/api/Brut/FrontEnd/Flash.html +1150 -0
- data/docs/api/Brut/FrontEnd/Form.html +1157 -0
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +634 -0
- data/docs/api/Brut/FrontEnd/Forms/Input.html +615 -0
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +547 -0
- data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1318 -0
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +609 -0
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +587 -0
- data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +613 -0
- data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +582 -0
- data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +609 -0
- data/docs/api/Brut/FrontEnd/Forms.html +127 -0
- data/docs/api/Brut/FrontEnd/GenericResponse.html +377 -0
- data/docs/api/Brut/FrontEnd/Handler.html +442 -0
- data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +318 -0
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +336 -0
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +399 -0
- data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +354 -0
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +151 -0
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +315 -0
- data/docs/api/Brut/FrontEnd/Handlers.html +125 -0
- data/docs/api/Brut/FrontEnd/HandlingResults.html +339 -0
- data/docs/api/Brut/FrontEnd/HttpMethod.html +661 -0
- data/docs/api/Brut/FrontEnd/HttpStatus.html +496 -0
- data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +284 -0
- data/docs/api/Brut/FrontEnd/Layout.html +318 -0
- data/docs/api/Brut/FrontEnd/Middleware.html +135 -0
- data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +288 -0
- data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +292 -0
- data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +324 -0
- data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +372 -0
- data/docs/api/Brut/FrontEnd/Middlewares.html +125 -0
- data/docs/api/Brut/FrontEnd/Page.html +773 -0
- data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +797 -0
- data/docs/api/Brut/FrontEnd/Pages.html +125 -0
- data/docs/api/Brut/FrontEnd/RequestContext.html +1312 -0
- data/docs/api/Brut/FrontEnd/RouteHook.html +424 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +242 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +249 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +264 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +261 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +284 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +252 -0
- data/docs/api/Brut/FrontEnd/RouteHooks.html +115 -0
- data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +227 -0
- data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +305 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +324 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +319 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +315 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +315 -0
- data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +327 -0
- data/docs/api/Brut/FrontEnd/Routing/Route.html +761 -0
- data/docs/api/Brut/FrontEnd/Routing.html +927 -0
- data/docs/api/Brut/FrontEnd/Session.html +1195 -0
- data/docs/api/Brut/FrontEnd.html +134 -0
- data/docs/api/Brut/I18n/BaseMethods.html +931 -0
- data/docs/api/Brut/I18n/ForBackEnd.html +302 -0
- data/docs/api/Brut/I18n/ForCLI.html +302 -0
- data/docs/api/Brut/I18n/ForHTML.html +296 -0
- data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +316 -0
- data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +930 -0
- data/docs/api/Brut/I18n.html +127 -0
- data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +435 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +286 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +302 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry.html +864 -0
- data/docs/api/Brut/Instrumentation.html +126 -0
- data/docs/api/Brut/SinatraHelpers/ClassMethods.html +532 -0
- data/docs/api/Brut/SinatraHelpers.html +281 -0
- data/docs/api/Brut/SpecSupport/ClockSupport.html +383 -0
- data/docs/api/Brut/SpecSupport/ComponentSupport.html +502 -0
- data/docs/api/Brut/SpecSupport/E2ETestServer.html +503 -0
- data/docs/api/Brut/SpecSupport/E2eSupport.html +142 -0
- data/docs/api/Brut/SpecSupport/EnhancedNode.html +403 -0
- data/docs/api/Brut/SpecSupport/FlashSupport.html +278 -0
- data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +401 -0
- data/docs/api/Brut/SpecSupport/GeneralSupport.html +195 -0
- data/docs/api/Brut/SpecSupport/HandlerSupport.html +160 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +553 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +439 -0
- data/docs/api/Brut/SpecSupport/Matchers.html +125 -0
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +335 -0
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +602 -0
- data/docs/api/Brut/SpecSupport/SessionSupport.html +196 -0
- data/docs/api/Brut/SpecSupport.html +129 -0
- data/docs/api/Brut.html +225 -0
- data/docs/api/Clock.html +603 -0
- data/docs/api/RichString.html +968 -0
- data/docs/api/SemanticLogger/Appender/Async.html +219 -0
- data/docs/api/Sequel/Extensions/BrutInstrumentation.html +115 -0
- data/docs/api/Sequel/Extensions/BrutMigrations.html +533 -0
- data/docs/api/Sequel/Extensions.html +117 -0
- data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +105 -0
- data/docs/api/Sequel/Plugins/CreatedAt.html +125 -0
- data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +207 -0
- data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +186 -0
- data/docs/api/Sequel/Plugins/ExternalId.html +218 -0
- data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +202 -0
- data/docs/api/Sequel/Plugins/FindBang.html +125 -0
- data/docs/api/Sequel/Plugins.html +117 -0
- data/docs/api/Sequel.html +117 -0
- data/docs/api/_index.html +1553 -0
- data/docs/api/class_list.html +54 -0
- data/docs/api/css/common.css +1 -0
- data/docs/api/css/full_list.css +58 -0
- data/docs/api/css/style.css +503 -0
- data/docs/api/file.README.html +127 -0
- data/docs/api/file_list.html +59 -0
- data/docs/api/frames.html +22 -0
- data/docs/api/index.html +127 -0
- data/docs/api/js/app.js +344 -0
- data/docs/api/js/full_list.js +242 -0
- data/docs/api/js/jquery.js +4 -0
- data/docs/api/method_list.html +3998 -0
- data/docs/api/top-level-namespace.html +112 -0
- data/docs/assets/ai.md.tZrjP9im.js +1 -0
- data/docs/assets/ai.md.tZrjP9im.lean.js +1 -0
- data/docs/assets/app.D_yaTITQ.js +1 -0
- data/docs/assets/assets.md.D3wunzLx.js +19 -0
- data/docs/assets/assets.md.D3wunzLx.lean.js +1 -0
- data/docs/assets/brut-js.md.o2DAO2s2.js +12 -0
- data/docs/assets/brut-js.md.o2DAO2s2.lean.js +1 -0
- data/docs/assets/business-logic.md.BY4hGy0m.js +1 -0
- data/docs/assets/business-logic.md.BY4hGy0m.lean.js +1 -0
- data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +1 -0
- data/docs/assets/chunks/VPLocalSearchBox.B2-ZzyTY.js +8 -0
- data/docs/assets/chunks/framework.1L-BeKqY.js +18 -0
- data/docs/assets/chunks/theme.CfGFVRvE.js +2 -0
- data/docs/assets/cli.md.RmeA2b0i.js +127 -0
- data/docs/assets/cli.md.RmeA2b0i.lean.js +1 -0
- data/docs/assets/components.md.eCttGlN-.js +104 -0
- data/docs/assets/components.md.eCttGlN-.lean.js +1 -0
- data/docs/assets/configuration.md.BRriU0cL.js +78 -0
- data/docs/assets/configuration.md.BRriU0cL.lean.js +1 -0
- data/docs/assets/css.md.DJgj2clw.js +21 -0
- data/docs/assets/css.md.DJgj2clw.lean.js +1 -0
- data/docs/assets/custom-element-tests.md.BrYJQEl3.js +69 -0
- data/docs/assets/custom-element-tests.md.BrYJQEl3.lean.js +1 -0
- data/docs/assets/database-access.md.C7l-Vuvb.js +63 -0
- data/docs/assets/database-access.md.C7l-Vuvb.lean.js +1 -0
- data/docs/assets/database-schema.md.BUjR0VS1.js +63 -0
- data/docs/assets/database-schema.md.BUjR0VS1.lean.js +1 -0
- data/docs/assets/deployment.md.Dbka4OTr.js +1 -0
- data/docs/assets/deployment.md.Dbka4OTr.lean.js +1 -0
- data/docs/assets/dev-env-overview.Gj7NWM8-.png +0 -0
- data/docs/assets/dev-env-protocol.DysDAtnz.png +0 -0
- data/docs/assets/dev-environment.md.BNc8AYiK.js +11 -0
- data/docs/assets/dev-environment.md.BNc8AYiK.lean.js +1 -0
- data/docs/assets/doc-conventions.md.DCfRXXi-.js +1 -0
- data/docs/assets/doc-conventions.md.DCfRXXi-.lean.js +1 -0
- data/docs/assets/end-to-end-tests.md.yfQHC0b5.js +26 -0
- data/docs/assets/end-to-end-tests.md.yfQHC0b5.lean.js +1 -0
- data/docs/assets/flash-and-session.md.BXY8RvT0.js +93 -0
- data/docs/assets/flash-and-session.md.BXY8RvT0.lean.js +1 -0
- data/docs/assets/forms.md.CBTYQ_Cz.js +379 -0
- data/docs/assets/forms.md.CBTYQ_Cz.lean.js +1 -0
- data/docs/assets/getting-started.md.Bz2s1Vjb.js +2 -0
- data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +1 -0
- data/docs/assets/handlers.md.089DVD3v.js +69 -0
- data/docs/assets/handlers.md.089DVD3v.lean.js +1 -0
- data/docs/assets/hooks.md.C4-moMny.js +80 -0
- data/docs/assets/hooks.md.C4-moMny.lean.js +1 -0
- data/docs/assets/i18n.md.Do9i1qWl.js +23 -0
- data/docs/assets/i18n.md.Do9i1qWl.lean.js +1 -0
- data/docs/assets/index.md.B28EwVpq.js +1 -0
- data/docs/assets/index.md.B28EwVpq.lean.js +1 -0
- data/docs/assets/instrumentation.md.CL6ax7nT.js +35 -0
- data/docs/assets/instrumentation.md.CL6ax7nT.lean.js +1 -0
- data/docs/assets/javascript.md.GWbhRS51.js +31 -0
- data/docs/assets/javascript.md.GWbhRS51.lean.js +1 -0
- data/docs/assets/jobs.md.S-2amAYp.js +1 -0
- data/docs/assets/jobs.md.S-2amAYp.lean.js +1 -0
- data/docs/assets/keyword-injection.md.Dt2tKREs.js +25 -0
- data/docs/assets/keyword-injection.md.Dt2tKREs.lean.js +1 -0
- data/docs/assets/markdown-examples.md.CCFEQO44.js +33 -0
- data/docs/assets/markdown-examples.md.CCFEQO44.lean.js +1 -0
- data/docs/assets/middleware.md.Czz_UlJN.js +20 -0
- data/docs/assets/middleware.md.Czz_UlJN.lean.js +1 -0
- data/docs/assets/not-released.md.BBy28McC.js +1 -0
- data/docs/assets/not-released.md.BBy28McC.lean.js +1 -0
- data/docs/assets/overview.Da81cB9R.png +0 -0
- data/docs/assets/overview.md.CDalkuxV.js +133 -0
- data/docs/assets/overview.md.CDalkuxV.lean.js +1 -0
- data/docs/assets/pages.md.BE3kfOc5.js +122 -0
- data/docs/assets/pages.md.BE3kfOc5.lean.js +1 -0
- data/docs/assets/routes.md.BMM7peut.js +29 -0
- data/docs/assets/routes.md.BMM7peut.lean.js +1 -0
- data/docs/assets/security.md.C668yXCi.js +1 -0
- data/docs/assets/security.md.C668yXCi.lean.js +1 -0
- data/docs/assets/seed-data.md.BvFZlqIk.js +14 -0
- data/docs/assets/seed-data.md.BvFZlqIk.lean.js +1 -0
- data/docs/assets/spa.qejUdp-5.png +0 -0
- data/docs/assets/space-time-continuum.md.KPUIKysQ.js +1 -0
- data/docs/assets/space-time-continuum.md.KPUIKysQ.lean.js +1 -0
- data/docs/assets/style.D73IYGCX.css +1 -0
- data/docs/assets/tutorial.md.BnoGjrdK.js +1 -0
- data/docs/assets/tutorial.md.BnoGjrdK.lean.js +1 -0
- data/docs/assets/unit-tests.md.DUGrnLj5.js +13 -0
- data/docs/assets/unit-tests.md.DUGrnLj5.lean.js +1 -0
- data/docs/assets/workspace-protocol.C0gXsoDb.png +0 -0
- data/docs/assets.html +42 -0
- data/docs/brut-css/brut.css +1 -0
- data/docs/brut-css/brut.max.css +22372 -0
- data/docs/brut-css/classes/appearances.html +783 -0
- data/docs/brut-css/classes/background-colors.html +3529 -0
- data/docs/brut-css/classes/border-colors.html +3529 -0
- data/docs/brut-css/classes/borders.html +2293 -0
- data/docs/brut-css/classes/dimensions.html +2581 -0
- data/docs/brut-css/classes/flex.html +917 -0
- data/docs/brut-css/classes/foreground-colors.html +3261 -0
- data/docs/brut-css/classes/junk-drawer.html +431 -0
- data/docs/brut-css/classes/layout.html +668 -0
- data/docs/brut-css/classes/lists.html +331 -0
- data/docs/brut-css/classes/positioning.html +1751 -0
- data/docs/brut-css/classes/spacings.html +2633 -0
- data/docs/brut-css/classes/typography.html +2206 -0
- data/docs/brut-css/customization/advanced-configuration.html +204 -0
- data/docs/brut-css/customization/breakpoints.html +227 -0
- data/docs/brut-css/customization/design-system.html +197 -0
- data/docs/brut-css/customization/pseudo-classes.html +228 -0
- data/docs/brut-css/docs.css +98 -0
- data/docs/brut-css/getting-started/core-concepts.html +234 -0
- data/docs/brut-css/getting-started/installation.html +190 -0
- data/docs/brut-css/getting-started/overview.html +210 -0
- data/docs/brut-css/getting-started/simple-example.html +285 -0
- data/docs/brut-css/index.html +193 -0
- data/docs/brut-css/prism-twilight.min.css +1 -0
- data/docs/brut-css/properties/colors.html +1548 -0
- data/docs/brut-css/properties/spacings.html +614 -0
- data/docs/brut-css/properties/typography.html +777 -0
- data/docs/brut-js/api/AjaxSubmit.html +374 -0
- data/docs/brut-js/api/AjaxSubmit.js.html +435 -0
- data/docs/brut-js/api/Autosubmit.html +192 -0
- data/docs/brut-js/api/Autosubmit.js.html +114 -0
- data/docs/brut-js/api/BaseCustomElement.html +1091 -0
- data/docs/brut-js/api/BaseCustomElement.js.html +312 -0
- data/docs/brut-js/api/BrutCustomElements.html +172 -0
- data/docs/brut-js/api/BufferedLogger.html +173 -0
- data/docs/brut-js/api/ConfirmSubmit.html +278 -0
- data/docs/brut-js/api/ConfirmSubmit.js.html +167 -0
- data/docs/brut-js/api/ConfirmationDialog.html +425 -0
- data/docs/brut-js/api/ConfirmationDialog.js.html +194 -0
- data/docs/brut-js/api/ConstraintViolationMessage.html +448 -0
- data/docs/brut-js/api/ConstraintViolationMessage.js.html +176 -0
- data/docs/brut-js/api/ConstraintViolationMessages.html +590 -0
- data/docs/brut-js/api/ConstraintViolationMessages.js.html +149 -0
- data/docs/brut-js/api/CopyToClipboard.html +345 -0
- data/docs/brut-js/api/CopyToClipboard.js.html +147 -0
- data/docs/brut-js/api/Form.html +294 -0
- data/docs/brut-js/api/Form.js.html +202 -0
- data/docs/brut-js/api/I18nTranslation.html +409 -0
- data/docs/brut-js/api/I18nTranslation.js.html +112 -0
- data/docs/brut-js/api/LocaleDetection.html +312 -0
- data/docs/brut-js/api/LocaleDetection.js.html +168 -0
- data/docs/brut-js/api/Logger.html +702 -0
- data/docs/brut-js/api/Logger.js.html +141 -0
- data/docs/brut-js/api/Message.html +238 -0
- data/docs/brut-js/api/Message.js.html +107 -0
- data/docs/brut-js/api/PrefixedLogger.html +369 -0
- data/docs/brut-js/api/RichString.html +1049 -0
- data/docs/brut-js/api/RichString.js.html +164 -0
- data/docs/brut-js/api/Tabs.html +295 -0
- data/docs/brut-js/api/Tabs.js.html +219 -0
- data/docs/brut-js/api/Tracing.html +277 -0
- data/docs/brut-js/api/Tracing.js.html +298 -0
- data/docs/brut-js/api/external-CustomElementRegistry.html +140 -0
- data/docs/brut-js/api/external-Performance.html +138 -0
- data/docs/brut-js/api/external-Promise.html +138 -0
- data/docs/brut-js/api/external-ValidityState.html +138 -0
- data/docs/brut-js/api/external-Window.html +233 -0
- data/docs/brut-js/api/external-fetch.html +138 -0
- data/docs/brut-js/api/global.html +400 -0
- data/docs/brut-js/api/index.html +168 -0
- data/docs/brut-js/api/index.js.html +181 -0
- data/docs/brut-js/api/module-testing.html +383 -0
- data/docs/brut-js/api/scripts/linenumber.js +25 -0
- data/docs/brut-js/api/scripts/prettify/Apache-License-2.0.txt +202 -0
- data/docs/brut-js/api/scripts/prettify/lang-css.js +2 -0
- data/docs/brut-js/api/scripts/prettify/prettify.js +28 -0
- data/docs/brut-js/api/styles/jsdoc-default.css +327 -0
- data/docs/brut-js/api/styles/prettify-jsdoc.css +111 -0
- data/docs/brut-js/api/styles/prettify-tomorrow.css +132 -0
- data/docs/brut-js/api/testing.AssetMetadata.html +172 -0
- data/docs/brut-js/api/testing.AssetMetadataLoader.html +171 -0
- data/docs/brut-js/api/testing.CustomElementTest.html +679 -0
- data/docs/brut-js/api/testing.DOMCreator.html +171 -0
- data/docs/brut-js/api/testing_AssetMetadata.js.html +86 -0
- data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +76 -0
- data/docs/brut-js/api/testing_CustomElementTest.js.html +286 -0
- data/docs/brut-js/api/testing_DOMCreator.js.html +96 -0
- data/docs/brut-js/api/testing_index.js.html +99 -0
- data/docs/brut-js.html +35 -0
- data/docs/business-logic.html +24 -0
- data/docs/cli.html +150 -0
- data/docs/components.html +127 -0
- data/docs/configuration.html +101 -0
- data/docs/css.html +44 -0
- data/docs/custom-element-tests.html +92 -0
- data/docs/database-access.html +86 -0
- data/docs/database-schema.html +86 -0
- data/docs/deployment.html +24 -0
- data/docs/dev-environment.html +34 -0
- data/docs/doc-conventions.html +24 -0
- data/docs/end-to-end-tests.html +49 -0
- data/docs/flash-and-session.html +116 -0
- data/docs/forms.html +402 -0
- data/docs/getting-started.html +25 -0
- data/docs/handlers.html +92 -0
- data/docs/hashmap.json +1 -0
- data/docs/hooks.html +103 -0
- data/docs/i18n.html +46 -0
- data/docs/images/logo-300.png +0 -0
- data/docs/images/logo.png +0 -0
- data/docs/index.html +24 -0
- data/docs/instrumentation.html +58 -0
- data/docs/javascript.html +54 -0
- data/docs/jobs.html +24 -0
- data/docs/keyword-injection.html +48 -0
- data/docs/markdown-examples.html +56 -0
- data/docs/middleware.html +43 -0
- data/docs/not-released.html +24 -0
- data/docs/overview.html +156 -0
- data/docs/pages.html +145 -0
- data/docs/routes.html +52 -0
- data/docs/security.html +24 -0
- data/docs/seed-data.html +37 -0
- data/docs/space-time-continuum.html +24 -0
- data/docs/tutorial.html +24 -0
- data/docs/unit-tests.html +36 -0
- data/docs/vp-icons.css +1 -0
- data/lib/brut/back_end/seed_data.rb +19 -2
- data/lib/brut/back_end/sidekiq/middlewares/server.rb +2 -1
- data/lib/brut/back_end/sidekiq/middlewares.rb +2 -1
- data/lib/brut/back_end/sidekiq.rb +2 -1
- data/lib/brut/back_end/validator.rb +5 -1
- data/lib/brut/back_end.rb +4 -2
- data/lib/brut/cli/app_runner.rb +1 -1
- data/lib/brut/cli/apps/test.rb +5 -0
- data/lib/brut/cli.rb +4 -3
- data/lib/brut/factory_bot.rb +0 -5
- data/lib/brut/framework/app.rb +70 -5
- data/lib/brut/framework/config.rb +5 -3
- data/lib/brut/framework/container.rb +3 -2
- data/lib/brut/framework/errors.rb +12 -4
- data/lib/brut/framework/mcp.rb +58 -1
- data/lib/brut/framework/project_environment.rb +6 -2
- data/lib/brut/framework.rb +1 -1
- data/lib/brut/front_end/component.rb +69 -71
- data/lib/brut/front_end/components/constraint_violations.rb +1 -4
- data/lib/brut/front_end/components/form_tag.rb +1 -1
- data/lib/brut/front_end/components/input.rb +3 -3
- data/lib/brut/front_end/components/inputs/csrf_token.rb +1 -1
- data/lib/brut/front_end/components/inputs/{text_field.rb → input_tag.rb} +7 -9
- data/lib/brut/front_end/components/inputs/radio_button.rb +1 -1
- data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +187 -0
- data/lib/brut/front_end/components/inputs/{textarea.rb → textarea_tag.rb} +2 -2
- data/lib/brut/front_end/components/time_tag.rb +2 -1
- data/lib/brut/front_end/form.rb +4 -4
- data/lib/brut/front_end/forms/input.rb +2 -1
- data/lib/brut/front_end/forms/input_definition.rb +5 -2
- data/lib/brut/front_end/forms/radio_button_group_input.rb +2 -1
- data/lib/brut/front_end/forms/radio_button_group_input_definition.rb +2 -2
- data/lib/brut/front_end/forms/select_input.rb +2 -4
- data/lib/brut/front_end/forms/select_input_definition.rb +2 -2
- data/lib/brut/front_end/handler.rb +28 -26
- data/lib/brut/front_end/handlers/csp_reporting_handler.rb +5 -2
- data/lib/brut/front_end/handlers/instrumentation_handler.rb +8 -4
- data/lib/brut/front_end/handlers/locale_detection_handler.rb +9 -5
- data/lib/brut/front_end/handlers/missing_handler.rb +5 -2
- data/lib/brut/front_end/layout.rb +16 -0
- data/lib/brut/front_end/page.rb +52 -29
- data/lib/brut/front_end/request_context.rb +3 -2
- data/lib/brut/front_end/routing.rb +5 -1
- data/lib/brut/front_end.rb +4 -13
- data/lib/brut/i18n/base_methods.rb +167 -79
- data/lib/brut/i18n/for_back_end.rb +4 -0
- data/lib/brut/i18n/for_cli.rb +4 -0
- data/lib/brut/i18n/for_html.rb +32 -4
- data/lib/brut/i18n/http_accept_language.rb +47 -0
- data/lib/brut/instrumentation/open_telemetry.rb +36 -1
- data/lib/brut/instrumentation.rb +3 -5
- data/lib/brut/sinatra_helpers.rb +11 -3
- data/lib/brut/spec_support/component_support.rb +30 -16
- data/lib/brut/spec_support/e2e_support.rb +1 -1
- data/lib/brut/spec_support/e2e_test_server.rb +3 -0
- data/lib/brut/spec_support/general_support.rb +3 -0
- data/lib/brut/spec_support/handler_support.rb +6 -1
- data/lib/brut/spec_support/matcher.rb +1 -0
- data/lib/brut/spec_support/matchers/be_page_for.rb +1 -0
- data/lib/brut/spec_support/matchers/have_html_attribute.rb +1 -0
- data/lib/brut/spec_support/matchers/have_i18n_string.rb +2 -5
- data/lib/brut/spec_support/matchers/have_link_to.rb +1 -0
- data/lib/brut/spec_support/matchers/have_redirected_to.rb +1 -0
- data/lib/brut/spec_support/matchers/have_rendered.rb +1 -0
- data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +44 -0
- data/lib/brut/spec_support.rb +1 -1
- data/lib/brut/version.rb +1 -1
- data/lib/brut.rb +5 -4
- data/lib/sequel/extensions/brut_migrations.rb +1 -1
- metadata +648 -13
- data/doc-src/architecture.md +0 -102
- data/doc-src/assets.md +0 -98
- data/doc-src/forms.md +0 -214
- data/doc-src/handlers.md +0 -83
- data/doc-src/javascript.md +0 -265
- data/doc-src/pages.md +0 -210
- data/doc-src/route-hooks.md +0 -59
- data/lib/brut/front_end/components/inputs/select.rb +0 -117
@@ -0,0 +1,1576 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Class: Brut::CLI::App
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.37
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "Brut::CLI::App";
|
19
|
+
relpath = '../../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../../_index.html">Index (A)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../../Brut.html" title="Brut (module)">Brut</a></span></span> » <span class='title'><span class='object_link'><a href="../CLI.html" title="Brut::CLI (module)">CLI</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">App</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Class: Brut::CLI::App
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName">Object</span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">Brut::CLI::App</li>
|
78
|
+
|
79
|
+
</ul>
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
81
|
+
|
82
|
+
</dd>
|
83
|
+
</dl>
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
<dl>
|
91
|
+
<dt>Includes:</dt>
|
92
|
+
<dd><span class='object_link'><a href="ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html" title="Brut::I18n::ForCLI (module)">I18n::ForCLI</a></span></dd>
|
93
|
+
</dl>
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
<dl>
|
101
|
+
<dt>Defined in:</dt>
|
102
|
+
<dd>lib/brut/cli/app.rb</dd>
|
103
|
+
</dl>
|
104
|
+
|
105
|
+
</div>
|
106
|
+
|
107
|
+
<h2>Overview</h2><div class="docstring">
|
108
|
+
<div class="discussion">
|
109
|
+
<p>Base class for all Brut-powered CLI Apps. Your subclass will call or override methods to declare the UI of your CLI app, including
|
110
|
+
the commands it provides and options it recognizes. These mostly help to provide command-line documentation for your app, but also
|
111
|
+
provide basic help with accessing the command line arguments and options. Internally, this uses Ruby's <code>OptionParser</code>.</p>
|
112
|
+
|
113
|
+
<p>The types of CLIs this framework supports are <em>command suites</em> where a single CLI app has several subcommands, similar to <code>git</code>. As
|
114
|
+
such, the CLI has several parts that you can configure:</p>
|
115
|
+
|
116
|
+
<pre class="code ruby"><code class="ruby">cli_app [global options] «subcommand» [command options] [arguments]
|
117
|
+
</code></pre>
|
118
|
+
|
119
|
+
<ul>
|
120
|
+
<li>Global options appear between the CLI app's executable and the name of the subcommand. These affect any command. A common example is <code>--log-level</code>. These are configured with on or <span class='object_link'><a href="#option_parser-class_method" title="Brut::CLI::App.option_parser (method)">App.option_parser</a></span>.</li>
|
121
|
+
<li>Subcommand is a single string representing the command to execute. The available commands are returned by <span class='object_link'><a href="#commands-class_method" title="Brut::CLI::App.commands (method)">App.commands</a></span> although it's more conventional to declare inner classes of your app that extend <span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Command</a></span>.</li>
|
122
|
+
<li>Command options appear after the subcommand and apply only to that sub command. They are declared with Command.on or <span class='object_link'><a href="Command.html#opts-class_method" title="Brut::CLI::Command.opts (method)">Command.opts</a></span>.</li>
|
123
|
+
<li>Arguments are any additional values present on the command line. They are defined per-command and can be documented via <span class='object_link'><a href="Command.html#args-class_method" title="Brut::CLI::Command.args (method)">Command.args</a></span>.</li>
|
124
|
+
</ul>
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
</div>
|
129
|
+
</div>
|
130
|
+
<div class="tags">
|
131
|
+
|
132
|
+
|
133
|
+
</div><div id="subclasses">
|
134
|
+
<h2>Direct Known Subclasses</h2>
|
135
|
+
<p class="children"><span class='object_link'><a href="Apps/BuildAssets.html" title="Brut::CLI::Apps::BuildAssets (class)">Brut::CLI::Apps::BuildAssets</a></span>, <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::Apps::DB (class)">Brut::CLI::Apps::DB</a></span>, <span class='object_link'><a href="Apps/Scaffold.html" title="Brut::CLI::Apps::Scaffold (class)">Brut::CLI::Apps::Scaffold</a></span>, <span class='object_link'><a href="Apps/Test.html" title="Brut::CLI::Apps::Test (class)">Brut::CLI::Apps::Test</a></span></p>
|
136
|
+
</div>
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
<h2>
|
146
|
+
Class Method Summary
|
147
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
148
|
+
</h2>
|
149
|
+
|
150
|
+
<ul class="summary">
|
151
|
+
|
152
|
+
<li class="public ">
|
153
|
+
<span class="summary_signature">
|
154
|
+
|
155
|
+
<a href="#commands-class_method" title="commands (class method)">.<strong>commands</strong> ⇒ Object </a>
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
</span>
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
<span class="summary_desc"><div class='inline'><p>Returns a list of <span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Command</a></span> classes that each represent the subcommands your CLI app accepts.</p>
|
170
|
+
</div></span>
|
171
|
+
|
172
|
+
</li>
|
173
|
+
|
174
|
+
|
175
|
+
<li class="public ">
|
176
|
+
<span class="summary_signature">
|
177
|
+
|
178
|
+
<a href="#configure_only!-class_method" title="configure_only! (class method)">.<strong>configure_only!</strong> ⇒ Object </a>
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
</span>
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
<span class="summary_desc"><div class='inline'><p>Call this if your app must operate before the Brut framework starts up.</p>
|
193
|
+
</div></span>
|
194
|
+
|
195
|
+
</li>
|
196
|
+
|
197
|
+
|
198
|
+
<li class="public ">
|
199
|
+
<span class="summary_signature">
|
200
|
+
|
201
|
+
<a href="#configure_only%3F-class_method" title="configure_only? (class method)">.<strong>configure_only?</strong> ⇒ Boolean </a>
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
</span>
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
<span class="summary_desc"><div class='inline'>
|
216
|
+
</div></span>
|
217
|
+
|
218
|
+
</li>
|
219
|
+
|
220
|
+
|
221
|
+
<li class="public ">
|
222
|
+
<span class="summary_signature">
|
223
|
+
|
224
|
+
<a href="#default_command-class_method" title="default_command (class method)">.<strong>default_command</strong>(new_command_name = nil) ⇒ Object </a>
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
</span>
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
<span class="summary_desc"><div class='inline'><p>Specify the default command to use when no subcommand is given.</p>
|
239
|
+
</div></span>
|
240
|
+
|
241
|
+
</li>
|
242
|
+
|
243
|
+
|
244
|
+
<li class="public ">
|
245
|
+
<span class="summary_signature">
|
246
|
+
|
247
|
+
<a href="#default_env-class_method" title="default_env (class method)">.<strong>default_env</strong> ⇒ Object </a>
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
</span>
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
<span class="summary_desc"><div class='inline'><p>Returns the default project env, based on the logic described in <span class='object_link'><a href="#requires_project_env-class_method" title="Brut::CLI::App.requires_project_env (method)">App.requires_project_env</a></span>.</p>
|
262
|
+
</div></span>
|
263
|
+
|
264
|
+
</li>
|
265
|
+
|
266
|
+
|
267
|
+
<li class="public ">
|
268
|
+
<span class="summary_signature">
|
269
|
+
|
270
|
+
<a href="#description-class_method" title="description (class method)">.<strong>description</strong>(new_description = nil) ⇒ String </a>
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
</span>
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
<span class="summary_desc"><div class='inline'><p>Call this to set the one-line description of your command line app.</p>
|
285
|
+
</div></span>
|
286
|
+
|
287
|
+
</li>
|
288
|
+
|
289
|
+
|
290
|
+
<li class="public ">
|
291
|
+
<span class="summary_signature">
|
292
|
+
|
293
|
+
<a href="#env_var-class_method" title="env_var (class method)">.<strong>env_var</strong>(var_name, purpose:) ⇒ Object </a>
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
</span>
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
<span class="summary_desc"><div class='inline'><p>Call this for each environment variable your <em>app</em> responds to.</p>
|
308
|
+
</div></span>
|
309
|
+
|
310
|
+
</li>
|
311
|
+
|
312
|
+
|
313
|
+
<li class="public ">
|
314
|
+
<span class="summary_signature">
|
315
|
+
|
316
|
+
<a href="#option_parser-class_method" title="option_parser (class method)">.<strong>option_parser</strong> ⇒ OptionParser </a>
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
</span>
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
<span class="summary_desc"><div class='inline'><p>Returns the configured <code>OptionParser</code> used to parse global portion of the command line.</p>
|
331
|
+
</div></span>
|
332
|
+
|
333
|
+
</li>
|
334
|
+
|
335
|
+
|
336
|
+
<li class="public ">
|
337
|
+
<span class="summary_signature">
|
338
|
+
|
339
|
+
<a href="#opts-class_method" title="opts (class method)">.<strong>opts</strong> ⇒ OptionParser </a>
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
</span>
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
<span class="summary_desc"><div class='inline'><p>Provides access to an <code>OptionParser</code> you can use to declare flags and switches that should be accepted globally.</p>
|
354
|
+
</div></span>
|
355
|
+
|
356
|
+
</li>
|
357
|
+
|
358
|
+
|
359
|
+
<li class="public ">
|
360
|
+
<span class="summary_signature">
|
361
|
+
|
362
|
+
<a href="#requires_project_env-class_method" title="requires_project_env (class method)">.<strong>requires_project_env</strong>(default: "development") ⇒ Object </a>
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
</span>
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
<span class="summary_desc"><div class='inline'><p>Call this if your CLI requires a project environment as context for what it does.</p>
|
377
|
+
</div></span>
|
378
|
+
|
379
|
+
</li>
|
380
|
+
|
381
|
+
|
382
|
+
<li class="public ">
|
383
|
+
<span class="summary_signature">
|
384
|
+
|
385
|
+
<a href="#requires_project_env%3F-class_method" title="requires_project_env? (class method)">.<strong>requires_project_env?</strong> ⇒ Boolean </a>
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
</span>
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
<span class="summary_desc"><div class='inline'><p>Returns true if this app requires a project env.</p>
|
400
|
+
</div></span>
|
401
|
+
|
402
|
+
</li>
|
403
|
+
|
404
|
+
|
405
|
+
</ul>
|
406
|
+
|
407
|
+
<h2>
|
408
|
+
Instance Method Summary
|
409
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
410
|
+
</h2>
|
411
|
+
|
412
|
+
<ul class="summary">
|
413
|
+
|
414
|
+
<li class="public ">
|
415
|
+
<span class="summary_signature">
|
416
|
+
|
417
|
+
<a href="#after_bootstrap-instance_method" title="#after_bootstrap (instance method)">#<strong>after_bootstrap</strong> ⇒ Object </a>
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
</span>
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
<span class="summary_desc"><div class='inline'><p>Called after all setup has been executed.</p>
|
432
|
+
</div></span>
|
433
|
+
|
434
|
+
</li>
|
435
|
+
|
436
|
+
|
437
|
+
<li class="public ">
|
438
|
+
<span class="summary_signature">
|
439
|
+
|
440
|
+
<a href="#before_execute-instance_method" title="#before_execute (instance method)">#<strong>before_execute</strong> ⇒ Object </a>
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
</span>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<span class="summary_desc"><div class='inline'><p>Called before anything else happens.</p>
|
455
|
+
</div></span>
|
456
|
+
|
457
|
+
</li>
|
458
|
+
|
459
|
+
|
460
|
+
<li class="public ">
|
461
|
+
<span class="summary_signature">
|
462
|
+
|
463
|
+
<a href="#execute!-instance_method" title="#execute! (instance method)">#<strong>execute!</strong>(command, project_root:) ⇒ Object </a>
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
</span>
|
468
|
+
|
469
|
+
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
<span class="summary_desc"><div class='inline'><p>Executes the command.</p>
|
478
|
+
</div></span>
|
479
|
+
|
480
|
+
</li>
|
481
|
+
|
482
|
+
|
483
|
+
<li class="public ">
|
484
|
+
<span class="summary_signature">
|
485
|
+
|
486
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(global_options:, out:, err:, executor:) ⇒ App </a>
|
487
|
+
|
488
|
+
|
489
|
+
|
490
|
+
</span>
|
491
|
+
|
492
|
+
|
493
|
+
<span class="note title constructor">constructor</span>
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
<span class="summary_desc"><div class='inline'><p>Create the App.</p>
|
503
|
+
</div></span>
|
504
|
+
|
505
|
+
</li>
|
506
|
+
|
507
|
+
|
508
|
+
</ul>
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="../I18n/ForCLI.html" title="Brut::I18n::ForCLI (module)">I18n::ForCLI</a></span></h3>
|
521
|
+
<p class="inherited"><span class='object_link'><a href="../I18n/ForCLI.html#capture-instance_method" title="Brut::I18n::ForCLI#capture (method)">#capture</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html#html_escape-instance_method" title="Brut::I18n::ForCLI#html_escape (method)">#html_escape</a></span>, <span class='object_link'><a href="../I18n/ForCLI.html#safe-instance_method" title="Brut::I18n::ForCLI#safe (method)">#safe</a></span></p>
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="../I18n/BaseMethods.html" title="Brut::I18n::BaseMethods (module)">I18n::BaseMethods</a></span></h3>
|
532
|
+
<p class="inherited"><span class='object_link'><a href="../I18n/BaseMethods.html#l-instance_method" title="Brut::I18n::BaseMethods#l (method)">#l</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#t-instance_method" title="Brut::I18n::BaseMethods#t (method)">#t</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#t_direct-instance_method" title="Brut::I18n::BaseMethods#t_direct (method)">#t_direct</a></span>, <span class='object_link'><a href="../I18n/BaseMethods.html#this_field_value-instance_method" title="Brut::I18n::BaseMethods#this_field_value (method)">#this_field_value</a></span></p>
|
533
|
+
|
534
|
+
|
535
|
+
|
536
|
+
|
537
|
+
|
538
|
+
|
539
|
+
|
540
|
+
|
541
|
+
|
542
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span></h3>
|
543
|
+
<p class="inherited"><span class='object_link'><a href="ExecutionResults.html#abort_execution-instance_method" title="Brut::CLI::ExecutionResults#abort_execution (method)">#abort_execution</a></span>, <span class='object_link'><a href="ExecutionResults.html#as_execution_result-instance_method" title="Brut::CLI::ExecutionResults#as_execution_result (method)">#as_execution_result</a></span>, <span class='object_link'><a href="ExecutionResults.html#cli_usage_error-instance_method" title="Brut::CLI::ExecutionResults#cli_usage_error (method)">#cli_usage_error</a></span>, <span class='object_link'><a href="ExecutionResults.html#continue_execution-instance_method" title="Brut::CLI::ExecutionResults#continue_execution (method)">#continue_execution</a></span>, <span class='object_link'><a href="ExecutionResults.html#show_cli_usage-instance_method" title="Brut::CLI::ExecutionResults#show_cli_usage (method)">#show_cli_usage</a></span>, <span class='object_link'><a href="ExecutionResults.html#stop_execution-instance_method" title="Brut::CLI::ExecutionResults#stop_execution (method)">#stop_execution</a></span></p>
|
544
|
+
<div id="constructor_details" class="method_details_list">
|
545
|
+
<h2>Constructor Details</h2>
|
546
|
+
|
547
|
+
<div class="method_details first">
|
548
|
+
<h3 class="signature first" id="initialize-instance_method">
|
549
|
+
|
550
|
+
#<strong>initialize</strong>(global_options:, out:, err:, executor:) ⇒ <tt><span class='object_link'><a href="" title="Brut::CLI::App (class)">App</a></span></tt>
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
|
556
|
+
</h3><div class="docstring">
|
557
|
+
<div class="discussion">
|
558
|
+
<p>Create the App. This is called by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">Brut::CLI::AppRunner</a></span>.</p>
|
559
|
+
|
560
|
+
|
561
|
+
</div>
|
562
|
+
</div>
|
563
|
+
<div class="tags">
|
564
|
+
<p class="tag_title">Parameters:</p>
|
565
|
+
<ul class="param">
|
566
|
+
|
567
|
+
<li>
|
568
|
+
|
569
|
+
<span class='name'>global_options</span>
|
570
|
+
|
571
|
+
|
572
|
+
<span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
|
573
|
+
|
574
|
+
|
575
|
+
|
576
|
+
—
|
577
|
+
<div class='inline'><p>global options specified on the command line</p>
|
578
|
+
</div>
|
579
|
+
|
580
|
+
</li>
|
581
|
+
|
582
|
+
<li>
|
583
|
+
|
584
|
+
<span class='name'>out</span>
|
585
|
+
|
586
|
+
|
587
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
—
|
592
|
+
<div class='inline'><p>IO to use to send output to the standard output</p>
|
593
|
+
</div>
|
594
|
+
|
595
|
+
</li>
|
596
|
+
|
597
|
+
<li>
|
598
|
+
|
599
|
+
<span class='name'>err</span>
|
600
|
+
|
601
|
+
|
602
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
—
|
607
|
+
<div class='inline'><p>IO to use to send output to the standard error</p>
|
608
|
+
</div>
|
609
|
+
|
610
|
+
</li>
|
611
|
+
|
612
|
+
<li>
|
613
|
+
|
614
|
+
<span class='name'>executor</span>
|
615
|
+
|
616
|
+
|
617
|
+
<span class='type'>(<tt><span class='object_link'><a href="Executor.html" title="Brut::CLI::Executor (class)">Brut::CLI::Executor</a></span></tt>)</span>
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
—
|
622
|
+
<div class='inline'><p>Class to use to execute child processes instead of e.g. <code>system</code>.</p>
|
623
|
+
</div>
|
624
|
+
|
625
|
+
</li>
|
626
|
+
|
627
|
+
</ul>
|
628
|
+
|
629
|
+
|
630
|
+
</div><table class="source_code">
|
631
|
+
<tr>
|
632
|
+
<td>
|
633
|
+
<pre class="lines">
|
634
|
+
|
635
|
+
|
636
|
+
145
|
637
|
+
146
|
638
|
+
147
|
639
|
+
148
|
640
|
+
149
|
641
|
+
150
|
642
|
+
151
|
643
|
+
152
|
644
|
+
153</pre>
|
645
|
+
</td>
|
646
|
+
<td>
|
647
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 145</span>
|
648
|
+
|
649
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>global_options:</span><span class='comma'>,</span><span class='label'>out:</span><span class='comma'>,</span><span class='label'>err:</span><span class='comma'>,</span><span class='label'>executor:</span><span class='rparen'>)</span>
|
650
|
+
<span class='ivar'>@global_options</span> <span class='op'>=</span> <span class='id identifier rubyid_global_options'>global_options</span>
|
651
|
+
<span class='ivar'>@out</span> <span class='op'>=</span> <span class='id identifier rubyid_out'>out</span>
|
652
|
+
<span class='ivar'>@err</span> <span class='op'>=</span> <span class='id identifier rubyid_err'>err</span>
|
653
|
+
<span class='ivar'>@executor</span> <span class='op'>=</span> <span class='id identifier rubyid_executor'>executor</span>
|
654
|
+
<span class='kw'>if</span> <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_default_env'>default_env</span>
|
655
|
+
<span class='ivar'>@global_options</span><span class='period'>.</span><span class='id identifier rubyid_set_default'>set_default</span><span class='lparen'>(</span><span class='symbol'>:env</span><span class='comma'>,</span><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_default_env'>default_env</span><span class='rparen'>)</span>
|
656
|
+
<span class='kw'>end</span>
|
657
|
+
<span class='kw'>end</span></pre>
|
658
|
+
</td>
|
659
|
+
</tr>
|
660
|
+
</table>
|
661
|
+
</div>
|
662
|
+
|
663
|
+
</div>
|
664
|
+
|
665
|
+
|
666
|
+
<div id="class_method_details" class="method_details_list">
|
667
|
+
<h2>Class Method Details</h2>
|
668
|
+
|
669
|
+
|
670
|
+
<div class="method_details first">
|
671
|
+
<h3 class="signature first" id="commands-class_method">
|
672
|
+
|
673
|
+
.<strong>commands</strong> ⇒ <tt>Object</tt>
|
674
|
+
|
675
|
+
|
676
|
+
|
677
|
+
|
678
|
+
|
679
|
+
</h3><div class="docstring">
|
680
|
+
<div class="discussion">
|
681
|
+
<p>Returns a list of <span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Command</a></span> classes that each represent the subcommands your CLI app accepts.
|
682
|
+
By default, this will look for all internal classes that extend <span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Command</a></span> and use them as your subcommands.
|
683
|
+
This means that you don't need to override this method and can instead define classes inside your app subclass.</p>
|
684
|
+
|
685
|
+
|
686
|
+
</div>
|
687
|
+
</div>
|
688
|
+
<div class="tags">
|
689
|
+
|
690
|
+
|
691
|
+
</div><table class="source_code">
|
692
|
+
<tr>
|
693
|
+
<td>
|
694
|
+
<pre class="lines">
|
695
|
+
|
696
|
+
|
697
|
+
26
|
698
|
+
27
|
699
|
+
28
|
700
|
+
29
|
701
|
+
30
|
702
|
+
31
|
703
|
+
32</pre>
|
704
|
+
</td>
|
705
|
+
<td>
|
706
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 26</span>
|
707
|
+
|
708
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span>
|
709
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_constants'>constants</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_name'>name</span><span class='op'>|</span>
|
710
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_const_get'>const_get</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
711
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_constant'>constant</span><span class='op'>|</span>
|
712
|
+
<span class='id identifier rubyid_constant'>constant</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_constant'>constant</span><span class='period'>.</span><span class='id identifier rubyid_ancestors'>ancestors</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</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="../CLI.html" title="Brut::CLI (module)">CLI</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Command</a></span></span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_constant'>constant</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='symbol'>:execute</span><span class='rparen'>)</span>
|
713
|
+
<span class='rbrace'>}</span>
|
714
|
+
<span class='kw'>end</span></pre>
|
715
|
+
</td>
|
716
|
+
</tr>
|
717
|
+
</table>
|
718
|
+
</div>
|
719
|
+
|
720
|
+
<div class="method_details ">
|
721
|
+
<h3 class="signature " id="configure_only!-class_method">
|
722
|
+
|
723
|
+
.<strong>configure_only!</strong> ⇒ <tt>Object</tt>
|
724
|
+
|
725
|
+
|
726
|
+
|
727
|
+
|
728
|
+
|
729
|
+
</h3><div class="docstring">
|
730
|
+
<div class="discussion">
|
731
|
+
<p>Call this if your app must operate before the Brut framework starts up.</p>
|
732
|
+
|
733
|
+
|
734
|
+
</div>
|
735
|
+
</div>
|
736
|
+
<div class="tags">
|
737
|
+
|
738
|
+
|
739
|
+
</div><table class="source_code">
|
740
|
+
<tr>
|
741
|
+
<td>
|
742
|
+
<pre class="lines">
|
743
|
+
|
744
|
+
|
745
|
+
134
|
746
|
+
135
|
747
|
+
136</pre>
|
748
|
+
</td>
|
749
|
+
<td>
|
750
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 134</span>
|
751
|
+
|
752
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_configure_only!'>configure_only!</span>
|
753
|
+
<span class='ivar'>@configure_only</span> <span class='op'>=</span> <span class='kw'>true</span>
|
754
|
+
<span class='kw'>end</span></pre>
|
755
|
+
</td>
|
756
|
+
</tr>
|
757
|
+
</table>
|
758
|
+
</div>
|
759
|
+
|
760
|
+
<div class="method_details ">
|
761
|
+
<h3 class="signature " id="configure_only?-class_method">
|
762
|
+
|
763
|
+
.<strong>configure_only?</strong> ⇒ <tt>Boolean</tt>
|
764
|
+
|
765
|
+
|
766
|
+
|
767
|
+
|
768
|
+
|
769
|
+
</h3><div class="docstring">
|
770
|
+
<div class="discussion">
|
771
|
+
|
772
|
+
|
773
|
+
|
774
|
+
</div>
|
775
|
+
</div>
|
776
|
+
<div class="tags">
|
777
|
+
|
778
|
+
<p class="tag_title">Returns:</p>
|
779
|
+
<ul class="return">
|
780
|
+
|
781
|
+
<li>
|
782
|
+
|
783
|
+
|
784
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
785
|
+
|
786
|
+
|
787
|
+
|
788
|
+
</li>
|
789
|
+
|
790
|
+
</ul>
|
791
|
+
|
792
|
+
</div><table class="source_code">
|
793
|
+
<tr>
|
794
|
+
<td>
|
795
|
+
<pre class="lines">
|
796
|
+
|
797
|
+
|
798
|
+
137</pre>
|
799
|
+
</td>
|
800
|
+
<td>
|
801
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 137</span>
|
802
|
+
|
803
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_configure_only?'>configure_only?</span> <span class='op'>=</span> <span class='op'>!</span><span class='op'>!</span><span class='ivar'>@configure_only</span></pre>
|
804
|
+
</td>
|
805
|
+
</tr>
|
806
|
+
</table>
|
807
|
+
</div>
|
808
|
+
|
809
|
+
<div class="method_details ">
|
810
|
+
<h3 class="signature " id="default_command-class_method">
|
811
|
+
|
812
|
+
.<strong>default_command</strong>(new_command_name = nil) ⇒ <tt>Object</tt>
|
813
|
+
|
814
|
+
|
815
|
+
|
816
|
+
|
817
|
+
|
818
|
+
</h3><div class="docstring">
|
819
|
+
<div class="discussion">
|
820
|
+
<p>Specify the default command to use when no subcommand is given.</p>
|
821
|
+
|
822
|
+
|
823
|
+
</div>
|
824
|
+
</div>
|
825
|
+
<div class="tags">
|
826
|
+
<p class="tag_title">Parameters:</p>
|
827
|
+
<ul class="param">
|
828
|
+
|
829
|
+
<li>
|
830
|
+
|
831
|
+
<span class='name'>new_command_name</span>
|
832
|
+
|
833
|
+
|
834
|
+
<span class='type'>(<tt>String</tt>)</span>
|
835
|
+
|
836
|
+
|
837
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
838
|
+
|
839
|
+
|
840
|
+
—
|
841
|
+
<div class='inline'><p>if present, sets the name of the command to run when none is given on the command line. When omitted, returns the currently configured name. The default is <code>help</code>.</p>
|
842
|
+
</div>
|
843
|
+
|
844
|
+
</li>
|
845
|
+
|
846
|
+
</ul>
|
847
|
+
|
848
|
+
|
849
|
+
</div><table class="source_code">
|
850
|
+
<tr>
|
851
|
+
<td>
|
852
|
+
<pre class="lines">
|
853
|
+
|
854
|
+
|
855
|
+
66
|
856
|
+
67
|
857
|
+
68
|
858
|
+
69
|
859
|
+
70
|
860
|
+
71
|
861
|
+
72</pre>
|
862
|
+
</td>
|
863
|
+
<td>
|
864
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 66</span>
|
865
|
+
|
866
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_default_command'>default_command</span><span class='lparen'>(</span><span class='id identifier rubyid_new_command_name'>new_command_name</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
867
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_command_name'>new_command_name</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
868
|
+
<span class='kw'>return</span> <span class='ivar'>@default_command</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>help</span><span class='tstring_end'>"</span></span>
|
869
|
+
<span class='kw'>else</span>
|
870
|
+
<span class='ivar'>@default_command</span> <span class='op'>=</span> <span class='id identifier rubyid_new_command_name'>new_command_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
871
|
+
<span class='kw'>end</span>
|
872
|
+
<span class='kw'>end</span></pre>
|
873
|
+
</td>
|
874
|
+
</tr>
|
875
|
+
</table>
|
876
|
+
</div>
|
877
|
+
|
878
|
+
<div class="method_details ">
|
879
|
+
<h3 class="signature " id="default_env-class_method">
|
880
|
+
|
881
|
+
.<strong>default_env</strong> ⇒ <tt>Object</tt>
|
882
|
+
|
883
|
+
|
884
|
+
|
885
|
+
|
886
|
+
|
887
|
+
</h3><div class="docstring">
|
888
|
+
<div class="discussion">
|
889
|
+
<p>Returns the default project env, based on the logic described in <span class='object_link'><a href="#requires_project_env-class_method" title="Brut::CLI::App.requires_project_env (method)">requires_project_env</a></span></p>
|
890
|
+
|
891
|
+
|
892
|
+
</div>
|
893
|
+
</div>
|
894
|
+
<div class="tags">
|
895
|
+
|
896
|
+
|
897
|
+
</div><table class="source_code">
|
898
|
+
<tr>
|
899
|
+
<td>
|
900
|
+
<pre class="lines">
|
901
|
+
|
902
|
+
|
903
|
+
129
|
904
|
+
130</pre>
|
905
|
+
</td>
|
906
|
+
<td>
|
907
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 129</span>
|
908
|
+
|
909
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_default_env'>default_env</span> <span class='op'>=</span> <span class='ivar'>@default_env</span>
|
910
|
+
<span class='comment'># Returns true if this app requires a project env</span></pre>
|
911
|
+
</td>
|
912
|
+
</tr>
|
913
|
+
</table>
|
914
|
+
</div>
|
915
|
+
|
916
|
+
<div class="method_details ">
|
917
|
+
<h3 class="signature " id="description-class_method">
|
918
|
+
|
919
|
+
.<strong>description</strong>(new_description = nil) ⇒ <tt>String</tt>
|
920
|
+
|
921
|
+
|
922
|
+
|
923
|
+
|
924
|
+
|
925
|
+
</h3><div class="docstring">
|
926
|
+
<div class="discussion">
|
927
|
+
<p>Call this to set the one-line description of your command line app.</p>
|
928
|
+
|
929
|
+
|
930
|
+
</div>
|
931
|
+
</div>
|
932
|
+
<div class="tags">
|
933
|
+
<p class="tag_title">Parameters:</p>
|
934
|
+
<ul class="param">
|
935
|
+
|
936
|
+
<li>
|
937
|
+
|
938
|
+
<span class='name'>new_description</span>
|
939
|
+
|
940
|
+
|
941
|
+
<span class='type'>(<tt>String</tt>)</span>
|
942
|
+
|
943
|
+
|
944
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
945
|
+
|
946
|
+
|
947
|
+
—
|
948
|
+
<div class='inline'><p>When present, sets the description of this app. When omitted, returns the current description.</p>
|
949
|
+
</div>
|
950
|
+
|
951
|
+
</li>
|
952
|
+
|
953
|
+
</ul>
|
954
|
+
|
955
|
+
<p class="tag_title">Returns:</p>
|
956
|
+
<ul class="return">
|
957
|
+
|
958
|
+
<li>
|
959
|
+
|
960
|
+
|
961
|
+
<span class='type'>(<tt>String</tt>)</span>
|
962
|
+
|
963
|
+
|
964
|
+
|
965
|
+
—
|
966
|
+
<div class='inline'><p>the current description (if called with no parameters)</p>
|
967
|
+
</div>
|
968
|
+
|
969
|
+
</li>
|
970
|
+
|
971
|
+
</ul>
|
972
|
+
|
973
|
+
</div><table class="source_code">
|
974
|
+
<tr>
|
975
|
+
<td>
|
976
|
+
<pre class="lines">
|
977
|
+
|
978
|
+
|
979
|
+
38
|
980
|
+
39
|
981
|
+
40
|
982
|
+
41
|
983
|
+
42
|
984
|
+
43
|
985
|
+
44</pre>
|
986
|
+
</td>
|
987
|
+
<td>
|
988
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 38</span>
|
989
|
+
|
990
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_description'>description</span><span class='lparen'>(</span><span class='id identifier rubyid_new_description'>new_description</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
991
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_description'>new_description</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
992
|
+
<span class='kw'>return</span> <span class='ivar'>@description</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
993
|
+
<span class='kw'>else</span>
|
994
|
+
<span class='ivar'>@description</span> <span class='op'>=</span> <span class='id identifier rubyid_new_description'>new_description</span>
|
995
|
+
<span class='kw'>end</span>
|
996
|
+
<span class='kw'>end</span></pre>
|
997
|
+
</td>
|
998
|
+
</tr>
|
999
|
+
</table>
|
1000
|
+
</div>
|
1001
|
+
|
1002
|
+
<div class="method_details ">
|
1003
|
+
<h3 class="signature " id="env_var-class_method">
|
1004
|
+
|
1005
|
+
.<strong>env_var</strong>(var_name, purpose:) ⇒ <tt>Object</tt>
|
1006
|
+
|
1007
|
+
|
1008
|
+
|
1009
|
+
|
1010
|
+
|
1011
|
+
</h3><div class="docstring">
|
1012
|
+
<div class="discussion">
|
1013
|
+
<p>Call this for each environment variable your <em>app</em> responds to. These would be variables that affect any of the subcommands. For
|
1014
|
+
command-specific environment variables, see <span class='object_link'><a href="Command.html#env_var-class_method" title="Brut::CLI::Command.env_var (method)">Command.env_var</a></span>.</p>
|
1015
|
+
|
1016
|
+
|
1017
|
+
</div>
|
1018
|
+
</div>
|
1019
|
+
<div class="tags">
|
1020
|
+
<p class="tag_title">Parameters:</p>
|
1021
|
+
<ul class="param">
|
1022
|
+
|
1023
|
+
<li>
|
1024
|
+
|
1025
|
+
<span class='name'>var_name</span>
|
1026
|
+
|
1027
|
+
|
1028
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1029
|
+
|
1030
|
+
|
1031
|
+
|
1032
|
+
—
|
1033
|
+
<div class='inline'><p>Declares that this app recognizes this environment variable.</p>
|
1034
|
+
</div>
|
1035
|
+
|
1036
|
+
</li>
|
1037
|
+
|
1038
|
+
<li>
|
1039
|
+
|
1040
|
+
<span class='name'>purpose</span>
|
1041
|
+
|
1042
|
+
|
1043
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1044
|
+
|
1045
|
+
|
1046
|
+
|
1047
|
+
—
|
1048
|
+
<div class='inline'><p>An explanation for how this environment variable affects the app. Used in documentation.</p>
|
1049
|
+
</div>
|
1050
|
+
|
1051
|
+
</li>
|
1052
|
+
|
1053
|
+
</ul>
|
1054
|
+
|
1055
|
+
|
1056
|
+
</div><table class="source_code">
|
1057
|
+
<tr>
|
1058
|
+
<td>
|
1059
|
+
<pre class="lines">
|
1060
|
+
|
1061
|
+
|
1062
|
+
51
|
1063
|
+
52
|
1064
|
+
53</pre>
|
1065
|
+
</td>
|
1066
|
+
<td>
|
1067
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 51</span>
|
1068
|
+
|
1069
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_env_var'>env_var</span><span class='lparen'>(</span><span class='id identifier rubyid_var_name'>var_name</span><span class='comma'>,</span><span class='label'>purpose:</span><span class='rparen'>)</span>
|
1070
|
+
<span class='id identifier rubyid_env_vars'>env_vars</span><span class='lbracket'>[</span><span class='id identifier rubyid_var_name'>var_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_purpose'>purpose</span>
|
1071
|
+
<span class='kw'>end</span></pre>
|
1072
|
+
</td>
|
1073
|
+
</tr>
|
1074
|
+
</table>
|
1075
|
+
</div>
|
1076
|
+
|
1077
|
+
<div class="method_details ">
|
1078
|
+
<h3 class="signature " id="option_parser-class_method">
|
1079
|
+
|
1080
|
+
.<strong>option_parser</strong> ⇒ <tt>OptionParser</tt>
|
1081
|
+
|
1082
|
+
|
1083
|
+
|
1084
|
+
|
1085
|
+
|
1086
|
+
</h3><div class="docstring">
|
1087
|
+
<div class="discussion">
|
1088
|
+
<p>Returns the configured <code>OptionParser</code> used to parse global portion of the command line.
|
1089
|
+
If you don't want to call <span class='object_link'><a href="#opts-class_method" title="Brut::CLI::App.opts (method)">opts</a></span>, you can create and return
|
1090
|
+
a fully-formed <code>OptionParser</code> by overriding this method. By default, it will create one with a conventional banner.</p>
|
1091
|
+
|
1092
|
+
|
1093
|
+
</div>
|
1094
|
+
</div>
|
1095
|
+
<div class="tags">
|
1096
|
+
|
1097
|
+
<p class="tag_title">Returns:</p>
|
1098
|
+
<ul class="return">
|
1099
|
+
|
1100
|
+
<li>
|
1101
|
+
|
1102
|
+
|
1103
|
+
<span class='type'>(<tt>OptionParser</tt>)</span>
|
1104
|
+
|
1105
|
+
|
1106
|
+
|
1107
|
+
</li>
|
1108
|
+
|
1109
|
+
</ul>
|
1110
|
+
|
1111
|
+
</div><table class="source_code">
|
1112
|
+
<tr>
|
1113
|
+
<td>
|
1114
|
+
<pre class="lines">
|
1115
|
+
|
1116
|
+
|
1117
|
+
97
|
1118
|
+
98
|
1119
|
+
99
|
1120
|
+
100
|
1121
|
+
101</pre>
|
1122
|
+
</td>
|
1123
|
+
<td>
|
1124
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 97</span>
|
1125
|
+
|
1126
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
|
1127
|
+
<span class='ivar'>@option_parser</span> <span class='op'>||=</span> <span class='const'>OptionParser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>|</span>
|
1128
|
+
<span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_banner'>banner</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>%{app} %{global_options} commands [command options] [args]</span><span class='tstring_end'>"</span></span>
|
1129
|
+
<span class='kw'>end</span>
|
1130
|
+
<span class='kw'>end</span></pre>
|
1131
|
+
</td>
|
1132
|
+
</tr>
|
1133
|
+
</table>
|
1134
|
+
</div>
|
1135
|
+
|
1136
|
+
<div class="method_details ">
|
1137
|
+
<h3 class="signature " id="opts-class_method">
|
1138
|
+
|
1139
|
+
.<strong>opts</strong> ⇒ <tt>OptionParser</tt>
|
1140
|
+
|
1141
|
+
|
1142
|
+
|
1143
|
+
|
1144
|
+
|
1145
|
+
</h3><div class="docstring">
|
1146
|
+
<div class="discussion">
|
1147
|
+
<p>Provides access to an <code>OptionParser</code> you can use to declare flags and switches that should be accepted globally. The way to use
|
1148
|
+
this is to call <code>.on</code> and provide a description for an option as you would to <code>OptionParser</code>. The only difference is that you
|
1149
|
+
should not pass a block to this. When the command line is parsed, the results will be placed into a <span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Options</a></span>
|
1150
|
+
instance made available to your command.</p>
|
1151
|
+
|
1152
|
+
|
1153
|
+
</div>
|
1154
|
+
</div>
|
1155
|
+
<div class="tags">
|
1156
|
+
|
1157
|
+
<div class="examples">
|
1158
|
+
<h4 class="tag_title">Examples:</h4>
|
1159
|
+
|
1160
|
+
|
1161
|
+
<pre class="example code"><code>
|
1162
|
+
<span class='kw'>class</span> <span class='const'>MyApp</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="../CLI.html" title="Brut::CLI (module)">CLI</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Brut::CLI::App (class)">App</a></span></span>
|
1163
|
+
|
1164
|
+
<span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--dry-run</span><span class='tstring_end'>"</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Don't change anything, just pretend</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1165
|
+
|
1166
|
+
<span class='kw'>end</span></code></pre>
|
1167
|
+
|
1168
|
+
</div>
|
1169
|
+
|
1170
|
+
<p class="tag_title">Returns:</p>
|
1171
|
+
<ul class="return">
|
1172
|
+
|
1173
|
+
<li>
|
1174
|
+
|
1175
|
+
|
1176
|
+
<span class='type'>(<tt>OptionParser</tt>)</span>
|
1177
|
+
|
1178
|
+
|
1179
|
+
|
1180
|
+
</li>
|
1181
|
+
|
1182
|
+
</ul>
|
1183
|
+
|
1184
|
+
</div><table class="source_code">
|
1185
|
+
<tr>
|
1186
|
+
<td>
|
1187
|
+
<pre class="lines">
|
1188
|
+
|
1189
|
+
|
1190
|
+
88
|
1191
|
+
89
|
1192
|
+
90</pre>
|
1193
|
+
</td>
|
1194
|
+
<td>
|
1195
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 88</span>
|
1196
|
+
|
1197
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_opts'>opts</span>
|
1198
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
|
1199
|
+
<span class='kw'>end</span></pre>
|
1200
|
+
</td>
|
1201
|
+
</tr>
|
1202
|
+
</table>
|
1203
|
+
</div>
|
1204
|
+
|
1205
|
+
<div class="method_details ">
|
1206
|
+
<h3 class="signature " id="requires_project_env-class_method">
|
1207
|
+
|
1208
|
+
.<strong>requires_project_env</strong>(default: "development") ⇒ <tt>Object</tt>
|
1209
|
+
|
1210
|
+
|
1211
|
+
|
1212
|
+
|
1213
|
+
|
1214
|
+
</h3><div class="docstring">
|
1215
|
+
<div class="discussion">
|
1216
|
+
<p>Call this if your CLI requires a project environment as context for what it does. For example, a command to analyze the database
|
1217
|
+
needs to know if it should operate on development, test, or production. When called, this will do a few things:</p>
|
1218
|
+
|
1219
|
+
<ul>
|
1220
|
+
<li>Your app will recognize <code>--env=ENVIRONMENT</code> as a global option</li>
|
1221
|
+
<li>Your app will recognize the <code>RACK_ENV</code> environment variable.</li>
|
1222
|
+
</ul>
|
1223
|
+
|
1224
|
+
|
1225
|
+
<p>When your app executes, the project environment will be determined as follows:</p>
|
1226
|
+
|
1227
|
+
<ol>
|
1228
|
+
<li>If <code>--env</code> was on the command line, that is the environment used</li>
|
1229
|
+
<li>If <code>RACK_ENV</code> is set in the environment, that is used</li>
|
1230
|
+
<li>Otherwise the value given to the <code>default:</code> parameter of this method is used.</li>
|
1231
|
+
</ol>
|
1232
|
+
|
1233
|
+
|
1234
|
+
|
1235
|
+
</div>
|
1236
|
+
</div>
|
1237
|
+
<div class="tags">
|
1238
|
+
<p class="tag_title">Parameters:</p>
|
1239
|
+
<ul class="param">
|
1240
|
+
|
1241
|
+
<li>
|
1242
|
+
|
1243
|
+
<span class='name'>default</span>
|
1244
|
+
|
1245
|
+
|
1246
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1247
|
+
|
1248
|
+
|
1249
|
+
<em class="default">(defaults to: <tt>"development"</tt>)</em>
|
1250
|
+
|
1251
|
+
|
1252
|
+
—
|
1253
|
+
<div class='inline'><p>name of the environment to use if none was specified. <code>nil</code> should be used to require the environment to be specified explicitly.</p>
|
1254
|
+
</div>
|
1255
|
+
|
1256
|
+
</li>
|
1257
|
+
|
1258
|
+
</ul>
|
1259
|
+
|
1260
|
+
|
1261
|
+
</div><table class="source_code">
|
1262
|
+
<tr>
|
1263
|
+
<td>
|
1264
|
+
<pre class="lines">
|
1265
|
+
|
1266
|
+
|
1267
|
+
116
|
1268
|
+
117
|
1269
|
+
118
|
1270
|
+
119
|
1271
|
+
120
|
1272
|
+
121
|
1273
|
+
122
|
1274
|
+
123
|
1275
|
+
124
|
1276
|
+
125
|
1277
|
+
126</pre>
|
1278
|
+
</td>
|
1279
|
+
<td>
|
1280
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 116</span>
|
1281
|
+
|
1282
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_requires_project_env'>requires_project_env</span><span class='lparen'>(</span><span class='label'>default:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>development</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1283
|
+
<span class='id identifier rubyid_default_message'>default_message</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_default'>default</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1284
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span>
|
1285
|
+
<span class='kw'>else</span>
|
1286
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> (default '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_default'>default</span><span class='embexpr_end'>}</span><span class='tstring_content'>')</span><span class='tstring_end'>"</span></span>
|
1287
|
+
<span class='kw'>end</span>
|
1288
|
+
<span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--env=ENVIRONMENT</span><span class='tstring_end'>"</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Project environment</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_default_message'>default_message</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1289
|
+
<span class='ivar'>@default_env</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>RACK_ENV</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_default'>default</span>
|
1290
|
+
<span class='ivar'>@requires_project_env</span> <span class='op'>=</span> <span class='kw'>true</span>
|
1291
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_env_var'>env_var</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>RACK_ENV</span><span class='tstring_end'>"</span></span><span class='comma'>,</span><span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>default project environment when --env is omitted</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1292
|
+
<span class='kw'>end</span></pre>
|
1293
|
+
</td>
|
1294
|
+
</tr>
|
1295
|
+
</table>
|
1296
|
+
</div>
|
1297
|
+
|
1298
|
+
<div class="method_details ">
|
1299
|
+
<h3 class="signature " id="requires_project_env?-class_method">
|
1300
|
+
|
1301
|
+
.<strong>requires_project_env?</strong> ⇒ <tt>Boolean</tt>
|
1302
|
+
|
1303
|
+
|
1304
|
+
|
1305
|
+
|
1306
|
+
|
1307
|
+
</h3><div class="docstring">
|
1308
|
+
<div class="discussion">
|
1309
|
+
<p>Returns true if this app requires a project env</p>
|
1310
|
+
|
1311
|
+
|
1312
|
+
</div>
|
1313
|
+
</div>
|
1314
|
+
<div class="tags">
|
1315
|
+
|
1316
|
+
<p class="tag_title">Returns:</p>
|
1317
|
+
<ul class="return">
|
1318
|
+
|
1319
|
+
<li>
|
1320
|
+
|
1321
|
+
|
1322
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1323
|
+
|
1324
|
+
|
1325
|
+
|
1326
|
+
</li>
|
1327
|
+
|
1328
|
+
</ul>
|
1329
|
+
|
1330
|
+
</div><table class="source_code">
|
1331
|
+
<tr>
|
1332
|
+
<td>
|
1333
|
+
<pre class="lines">
|
1334
|
+
|
1335
|
+
|
1336
|
+
131</pre>
|
1337
|
+
</td>
|
1338
|
+
<td>
|
1339
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 131</span>
|
1340
|
+
|
1341
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_requires_project_env?'>requires_project_env?</span> <span class='op'>=</span> <span class='ivar'>@requires_project_env</span></pre>
|
1342
|
+
</td>
|
1343
|
+
</tr>
|
1344
|
+
</table>
|
1345
|
+
</div>
|
1346
|
+
|
1347
|
+
</div>
|
1348
|
+
|
1349
|
+
<div id="instance_method_details" class="method_details_list">
|
1350
|
+
<h2>Instance Method Details</h2>
|
1351
|
+
|
1352
|
+
|
1353
|
+
<div class="method_details first">
|
1354
|
+
<h3 class="signature first" id="after_bootstrap-instance_method">
|
1355
|
+
|
1356
|
+
#<strong>after_bootstrap</strong> ⇒ <tt>Object</tt>
|
1357
|
+
|
1358
|
+
|
1359
|
+
|
1360
|
+
|
1361
|
+
|
1362
|
+
</h3><div class="docstring">
|
1363
|
+
<div class="discussion">
|
1364
|
+
<p>Called after all setup has been executed. Brut will have been started/loaded. This will <em>not</em> be called if anything
|
1365
|
+
caused execution to be aborted.</p>
|
1366
|
+
|
1367
|
+
|
1368
|
+
</div>
|
1369
|
+
</div>
|
1370
|
+
<div class="tags">
|
1371
|
+
|
1372
|
+
|
1373
|
+
</div><table class="source_code">
|
1374
|
+
<tr>
|
1375
|
+
<td>
|
1376
|
+
<pre class="lines">
|
1377
|
+
|
1378
|
+
|
1379
|
+
182
|
1380
|
+
183</pre>
|
1381
|
+
</td>
|
1382
|
+
<td>
|
1383
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 182</span>
|
1384
|
+
|
1385
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_after_bootstrap'>after_bootstrap</span>
|
1386
|
+
<span class='kw'>end</span></pre>
|
1387
|
+
</td>
|
1388
|
+
</tr>
|
1389
|
+
</table>
|
1390
|
+
</div>
|
1391
|
+
|
1392
|
+
<div class="method_details ">
|
1393
|
+
<h3 class="signature " id="before_execute-instance_method">
|
1394
|
+
|
1395
|
+
#<strong>before_execute</strong> ⇒ <tt>Object</tt>
|
1396
|
+
|
1397
|
+
|
1398
|
+
|
1399
|
+
|
1400
|
+
|
1401
|
+
</h3><div class="docstring">
|
1402
|
+
<div class="discussion">
|
1403
|
+
<p>Called before anything else happens. You can override this to perform any setup or other checking before Brut is started up.</p>
|
1404
|
+
|
1405
|
+
|
1406
|
+
</div>
|
1407
|
+
</div>
|
1408
|
+
<div class="tags">
|
1409
|
+
|
1410
|
+
|
1411
|
+
</div><table class="source_code">
|
1412
|
+
<tr>
|
1413
|
+
<td>
|
1414
|
+
<pre class="lines">
|
1415
|
+
|
1416
|
+
|
1417
|
+
177
|
1418
|
+
178</pre>
|
1419
|
+
</td>
|
1420
|
+
<td>
|
1421
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 177</span>
|
1422
|
+
|
1423
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_before_execute'>before_execute</span>
|
1424
|
+
<span class='kw'>end</span></pre>
|
1425
|
+
</td>
|
1426
|
+
</tr>
|
1427
|
+
</table>
|
1428
|
+
</div>
|
1429
|
+
|
1430
|
+
<div class="method_details ">
|
1431
|
+
<h3 class="signature " id="execute!-instance_method">
|
1432
|
+
|
1433
|
+
#<strong>execute!</strong>(command, project_root:) ⇒ <tt>Object</tt>
|
1434
|
+
|
1435
|
+
|
1436
|
+
|
1437
|
+
|
1438
|
+
|
1439
|
+
</h3><div class="docstring">
|
1440
|
+
<div class="discussion">
|
1441
|
+
<p>Executes the command. Called by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">Brut::CLI::AppRunner</a></span>.</p>
|
1442
|
+
|
1443
|
+
|
1444
|
+
</div>
|
1445
|
+
</div>
|
1446
|
+
<div class="tags">
|
1447
|
+
<p class="tag_title">Parameters:</p>
|
1448
|
+
<ul class="param">
|
1449
|
+
|
1450
|
+
<li>
|
1451
|
+
|
1452
|
+
<span class='name'>command</span>
|
1453
|
+
|
1454
|
+
|
1455
|
+
<span class='type'>(<tt><span class='object_link'><a href="Command.html" title="Brut::CLI::Command (class)">Brut::CLI::Command</a></span></tt>)</span>
|
1456
|
+
|
1457
|
+
|
1458
|
+
|
1459
|
+
—
|
1460
|
+
<div class='inline'><p>the command to run, based on what was on the command line</p>
|
1461
|
+
</div>
|
1462
|
+
|
1463
|
+
</li>
|
1464
|
+
|
1465
|
+
<li>
|
1466
|
+
|
1467
|
+
<span class='name'>project_root</span>
|
1468
|
+
|
1469
|
+
|
1470
|
+
<span class='type'>(<tt>Pathname</tt>)</span>
|
1471
|
+
|
1472
|
+
|
1473
|
+
|
1474
|
+
—
|
1475
|
+
<div class='inline'><p>root of the Brut app's project files.</p>
|
1476
|
+
</div>
|
1477
|
+
|
1478
|
+
</li>
|
1479
|
+
|
1480
|
+
</ul>
|
1481
|
+
|
1482
|
+
|
1483
|
+
</div><table class="source_code">
|
1484
|
+
<tr>
|
1485
|
+
<td>
|
1486
|
+
<pre class="lines">
|
1487
|
+
|
1488
|
+
|
1489
|
+
189
|
1490
|
+
190
|
1491
|
+
191
|
1492
|
+
192
|
1493
|
+
193
|
1494
|
+
194
|
1495
|
+
195
|
1496
|
+
196
|
1497
|
+
197
|
1498
|
+
198
|
1499
|
+
199
|
1500
|
+
200
|
1501
|
+
201
|
1502
|
+
202
|
1503
|
+
203
|
1504
|
+
204
|
1505
|
+
205
|
1506
|
+
206
|
1507
|
+
207
|
1508
|
+
208
|
1509
|
+
209
|
1510
|
+
210
|
1511
|
+
211
|
1512
|
+
212
|
1513
|
+
213
|
1514
|
+
214
|
1515
|
+
215
|
1516
|
+
216
|
1517
|
+
217
|
1518
|
+
218
|
1519
|
+
219
|
1520
|
+
220
|
1521
|
+
221</pre>
|
1522
|
+
</td>
|
1523
|
+
<td>
|
1524
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/app.rb', line 189</span>
|
1525
|
+
|
1526
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_execute!'>execute!</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span><span class='label'>project_root:</span><span class='rparen'>)</span>
|
1527
|
+
<span class='id identifier rubyid_before_execute'>before_execute</span>
|
1528
|
+
<span class='id identifier rubyid_set_env_if_needed'>set_env_if_needed</span>
|
1529
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_set_env_if_needed'>set_env_if_needed</span>
|
1530
|
+
<span class='id identifier rubyid_load_env'>load_env</span><span class='lparen'>(</span><span class='label'>project_root:</span><span class='rparen'>)</span>
|
1531
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_before_execute'>before_execute</span>
|
1532
|
+
<span class='id identifier rubyid_bootstrap_result'>bootstrap_result</span> <span class='op'>=</span> <span class='kw'>begin</span>
|
1533
|
+
<span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_project_root'>project_root</span><span class='embexpr_end'>}</span><span class='tstring_content'>/app/bootstrap</span><span class='tstring_end'>"</span></span>
|
1534
|
+
<span class='id identifier rubyid_bootstrap'>bootstrap</span> <span class='op'>=</span> <span class='const'>Bootstrap</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1535
|
+
<span class='kw'>if</span> <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_configure_only?'>configure_only?</span>
|
1536
|
+
<span class='id identifier rubyid_bootstrap'>bootstrap</span><span class='period'>.</span><span class='id identifier rubyid_configure_only!'>configure_only!</span>
|
1537
|
+
<span class='kw'>else</span>
|
1538
|
+
<span class='id identifier rubyid_bootstrap'>bootstrap</span><span class='period'>.</span><span class='id identifier rubyid_bootstrap!'>bootstrap!</span>
|
1539
|
+
<span class='kw'>end</span>
|
1540
|
+
<span class='id identifier rubyid_continue_execution'>continue_execution</span>
|
1541
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_ex'>ex</span>
|
1542
|
+
<span class='id identifier rubyid_as_execution_result'>as_execution_result</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_handle_bootstrap_exception'>handle_bootstrap_exception</span><span class='lparen'>(</span><span class='id identifier rubyid_ex'>ex</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
1543
|
+
<span class='kw'>end</span>
|
1544
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_bootstrap_result'>bootstrap_result</span><span class='period'>.</span><span class='id identifier rubyid_stop?'>stop?</span>
|
1545
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_bootstrap_result'>bootstrap_result</span>
|
1546
|
+
<span class='kw'>end</span>
|
1547
|
+
<span class='id identifier rubyid_after_bootstrap'>after_bootstrap</span>
|
1548
|
+
<span class='kw'>if</span> <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_configure_only?'>configure_only?</span>
|
1549
|
+
<span class='id identifier rubyid_as_execution_result'>as_execution_result</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='rparen'>)</span>
|
1550
|
+
<span class='kw'>else</span>
|
1551
|
+
<span class='id identifier rubyid_result'>result</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_instrumentation'>instrumentation</span><span class='period'>.</span><span class='id identifier rubyid_span'>span</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>CLI </span><span class='embexpr_beg'>#{</span><span class='gvar'>$0</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>prefix:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>brut.cli</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>class:</span> <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_name'>name</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_span'>span</span><span class='op'>|</span>
|
1552
|
+
<span class='id identifier rubyid_as_execution_result'>as_execution_result</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='rparen'>)</span>
|
1553
|
+
<span class='kw'>end</span>
|
1554
|
+
<span class='id identifier rubyid_result'>result</span>
|
1555
|
+
<span class='kw'>end</span>
|
1556
|
+
<span class='kw'>rescue</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="../CLI.html" title="Brut::CLI (module)">CLI</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error.html" title="Brut::CLI::Error (class)">Error</a></span></span> <span class='op'>=></span> <span class='id identifier rubyid_ex'>ex</span>
|
1557
|
+
<span class='id identifier rubyid_abort_execution'>abort_execution</span><span class='lparen'>(</span><span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
|
1558
|
+
<span class='kw'>end</span></pre>
|
1559
|
+
</td>
|
1560
|
+
</tr>
|
1561
|
+
</table>
|
1562
|
+
</div>
|
1563
|
+
|
1564
|
+
</div>
|
1565
|
+
|
1566
|
+
</div>
|
1567
|
+
|
1568
|
+
<div id="footer">
|
1569
|
+
Generated on Wed Jun 25 22:57:20 2025 by
|
1570
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1571
|
+
0.9.37 (ruby-3.4.4).
|
1572
|
+
</div>
|
1573
|
+
|
1574
|
+
</div>
|
1575
|
+
</body>
|
1576
|
+
</html>
|