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,2342 @@
|
|
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::Command
|
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::Command";
|
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 (C)</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">Command</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::Command
|
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::Command</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="../Framework/Errors.html" title="Brut::Framework::Errors (module)">Framework::Errors</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/command.rb</dd>
|
103
|
+
</dl>
|
104
|
+
|
105
|
+
</div>
|
106
|
+
|
107
|
+
<h2>Overview</h2><div class="docstring">
|
108
|
+
<div class="discussion">
|
109
|
+
<p>Base class for subcommands of a <span class='object_link'><a href="App.html" title="Brut::CLI::App (class)">App</a></span>. You must implement <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to perform whatever action this command must perform.</p>
|
110
|
+
|
111
|
+
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
<div class="tags">
|
115
|
+
|
116
|
+
|
117
|
+
</div><div id="subclasses">
|
118
|
+
<h2>Direct Known Subclasses</h2>
|
119
|
+
<p class="children"><span class='object_link'><a href="Apps/BuildAssets/All.html" title="Brut::CLI::Apps::BuildAssets::All (class)">Apps::BuildAssets::All</a></span>, <span class='object_link'><a href="Apps/BuildAssets/CSS.html" title="Brut::CLI::Apps::BuildAssets::CSS (class)">Apps::BuildAssets::CSS</a></span>, <span class='object_link'><a href="Apps/BuildAssets/Images.html" title="Brut::CLI::Apps::BuildAssets::Images (class)">Apps::BuildAssets::Images</a></span>, <span class='object_link'><a href="Apps/BuildAssets/JS.html" title="Brut::CLI::Apps::BuildAssets::JS (class)">Apps::BuildAssets::JS</a></span>, <span class='object_link'><a href="Apps/DB/Create.html" title="Brut::CLI::Apps::DB::Create (class)">Apps::DB::Create</a></span>, <span class='object_link'><a href="Apps/DB/Drop.html" title="Brut::CLI::Apps::DB::Drop (class)">Apps::DB::Drop</a></span>, <span class='object_link'><a href="Apps/DB/Migrate.html" title="Brut::CLI::Apps::DB::Migrate (class)">Apps::DB::Migrate</a></span>, <span class='object_link'><a href="Apps/DB/NewMigration.html" title="Brut::CLI::Apps::DB::NewMigration (class)">Apps::DB::NewMigration</a></span>, <span class='object_link'><a href="Apps/DB/Rebuild.html" title="Brut::CLI::Apps::DB::Rebuild (class)">Apps::DB::Rebuild</a></span>, <span class='object_link'><a href="Apps/DB/Seed.html" title="Brut::CLI::Apps::DB::Seed (class)">Apps::DB::Seed</a></span>, <span class='object_link'><a href="Apps/DB/Status.html" title="Brut::CLI::Apps::DB::Status (class)">Apps::DB::Status</a></span>, <span class='object_link'><a href="Apps/Scaffold/Action.html" title="Brut::CLI::Apps::Scaffold::Action (class)">Apps::Scaffold::Action</a></span>, <span class='object_link'><a href="Apps/Scaffold/Component.html" title="Brut::CLI::Apps::Scaffold::Component (class)">Apps::Scaffold::Component</a></span>, <span class='object_link'><a href="Apps/Scaffold/CustomElementTest.html" title="Brut::CLI::Apps::Scaffold::CustomElementTest (class)">Apps::Scaffold::CustomElementTest</a></span>, <span class='object_link'><a href="Apps/Scaffold/E2ETest.html" title="Brut::CLI::Apps::Scaffold::E2ETest (class)">Apps::Scaffold::E2ETest</a></span>, <span class='object_link'><a href="Apps/Scaffold/Page.html" title="Brut::CLI::Apps::Scaffold::Page (class)">Apps::Scaffold::Page</a></span>, <span class='object_link'><a href="Apps/Scaffold/Test.html" title="Brut::CLI::Apps::Scaffold::Test (class)">Apps::Scaffold::Test</a></span>, <span class='object_link'><a href="Apps/Test/Audit.html" title="Brut::CLI::Apps::Test::Audit (class)">Apps::Test::Audit</a></span>, <span class='object_link'><a href="Apps/Test/JS.html" title="Brut::CLI::Apps::Test::JS (class)">Apps::Test::JS</a></span>, <span class='object_link'><a href="Apps/Test/Run.html" title="Brut::CLI::Apps::Test::Run (class)">Apps::Test::Run</a></span></p>
|
120
|
+
</div>
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
<h2>
|
130
|
+
Class Method Summary
|
131
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
132
|
+
</h2>
|
133
|
+
|
134
|
+
<ul class="summary">
|
135
|
+
|
136
|
+
<li class="public ">
|
137
|
+
<span class="summary_signature">
|
138
|
+
|
139
|
+
<a href="#args-class_method" title="args (class method)">.<strong>args</strong>(new_args = nil) ⇒ String the current value (if called with no parameters) </a>
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
</span>
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
<span class="summary_desc"><div class='inline'><p>Set a description of the command line args this command accepts.</p>
|
154
|
+
</div></span>
|
155
|
+
|
156
|
+
</li>
|
157
|
+
|
158
|
+
|
159
|
+
<li class="public ">
|
160
|
+
<span class="summary_signature">
|
161
|
+
|
162
|
+
<a href="#command_name-class_method" title="command_name (class method)">.<strong>command_name</strong> ⇒ Object </a>
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
</span>
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
<span class="summary_desc"><div class='inline'><p>Returns the name of this command, for use on the command line.</p>
|
177
|
+
</div></span>
|
178
|
+
|
179
|
+
</li>
|
180
|
+
|
181
|
+
|
182
|
+
<li class="public ">
|
183
|
+
<span class="summary_signature">
|
184
|
+
|
185
|
+
<a href="#default_env-class_method" title="default_env (class method)">.<strong>default_env</strong> ⇒ Object </a>
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
</span>
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
<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::Command.requires_project_env (method)">Command.requires_project_env</a></span>.</p>
|
200
|
+
</div></span>
|
201
|
+
|
202
|
+
</li>
|
203
|
+
|
204
|
+
|
205
|
+
<li class="public ">
|
206
|
+
<span class="summary_signature">
|
207
|
+
|
208
|
+
<a href="#description-class_method" title="description (class method)">.<strong>description</strong>(new_description = nil) ⇒ String </a>
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
</span>
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
<span class="summary_desc"><div class='inline'><p>Call this to set the one-line description of this command.</p>
|
223
|
+
</div></span>
|
224
|
+
|
225
|
+
</li>
|
226
|
+
|
227
|
+
|
228
|
+
<li class="public ">
|
229
|
+
<span class="summary_signature">
|
230
|
+
|
231
|
+
<a href="#detailed_description-class_method" title="detailed_description (class method)">.<strong>detailed_description</strong>(new_description = nil) ⇒ String </a>
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
</span>
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
<span class="summary_desc"><div class='inline'><p>Call this to set a an additional detailed description of this command.</p>
|
246
|
+
</div></span>
|
247
|
+
|
248
|
+
</li>
|
249
|
+
|
250
|
+
|
251
|
+
<li class="public ">
|
252
|
+
<span class="summary_signature">
|
253
|
+
|
254
|
+
<a href="#env_var-class_method" title="env_var (class method)">.<strong>env_var</strong>(var_name, purpose:) ⇒ Object </a>
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
</span>
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
<span class="summary_desc"><div class='inline'><p>Call this for each environment variable this <em>command</em> responds to.</p>
|
269
|
+
</div></span>
|
270
|
+
|
271
|
+
</li>
|
272
|
+
|
273
|
+
|
274
|
+
<li class="public ">
|
275
|
+
<span class="summary_signature">
|
276
|
+
|
277
|
+
<a href="#name_matches%3F-class_method" title="name_matches? (class method)">.<strong>name_matches?</strong>(string) ⇒ true|false </a>
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
</span>
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
<span class="summary_desc"><div class='inline'><p>Checks if a given string matches this command name.</p>
|
292
|
+
</div></span>
|
293
|
+
|
294
|
+
</li>
|
295
|
+
|
296
|
+
|
297
|
+
<li class="public ">
|
298
|
+
<span class="summary_signature">
|
299
|
+
|
300
|
+
<a href="#option_parser-class_method" title="option_parser (class method)">.<strong>option_parser</strong> ⇒ OptionParser </a>
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
</span>
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
<span class="summary_desc"><div class='inline'><p>Returns the configured <code>OptionParser</code> used to parse the command portion of the command line.</p>
|
315
|
+
</div></span>
|
316
|
+
|
317
|
+
</li>
|
318
|
+
|
319
|
+
|
320
|
+
<li class="public ">
|
321
|
+
<span class="summary_signature">
|
322
|
+
|
323
|
+
<a href="#opts-class_method" title="opts (class method)">.<strong>opts</strong> ⇒ OptionParser </a>
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
</span>
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
<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 only by this command.</p>
|
338
|
+
</div></span>
|
339
|
+
|
340
|
+
</li>
|
341
|
+
|
342
|
+
|
343
|
+
<li class="public ">
|
344
|
+
<span class="summary_signature">
|
345
|
+
|
346
|
+
<a href="#requires_project_env-class_method" title="requires_project_env (class method)">.<strong>requires_project_env</strong>(default: "development") ⇒ Object </a>
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
</span>
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
|
360
|
+
<span class="summary_desc"><div class='inline'><p>Call this if this command requires a project environment as context for what it does.</p>
|
361
|
+
</div></span>
|
362
|
+
|
363
|
+
</li>
|
364
|
+
|
365
|
+
|
366
|
+
<li class="public ">
|
367
|
+
<span class="summary_signature">
|
368
|
+
|
369
|
+
<a href="#requires_project_env%3F-class_method" title="requires_project_env? (class method)">.<strong>requires_project_env?</strong> ⇒ Boolean </a>
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
</span>
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
<span class="summary_desc"><div class='inline'><p>Returns true if this app requires a project env.</p>
|
384
|
+
</div></span>
|
385
|
+
|
386
|
+
</li>
|
387
|
+
|
388
|
+
|
389
|
+
</ul>
|
390
|
+
|
391
|
+
<h2>
|
392
|
+
Instance Method Summary
|
393
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
394
|
+
</h2>
|
395
|
+
|
396
|
+
<ul class="summary">
|
397
|
+
|
398
|
+
<li class="public ">
|
399
|
+
<span class="summary_signature">
|
400
|
+
|
401
|
+
<a href="#args-instance_method" title="#args (instance method)">#<strong>args</strong> ⇒ Array<String> </a>
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
</span>
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
<span class="summary_desc"><div class='inline'><p>The arguments parsed from the command line.</p>
|
416
|
+
</div></span>
|
417
|
+
|
418
|
+
</li>
|
419
|
+
|
420
|
+
|
421
|
+
<li class="public ">
|
422
|
+
<span class="summary_signature">
|
423
|
+
|
424
|
+
<a href="#before_execute-instance_method" title="#before_execute (instance method)">#<strong>before_execute</strong> ⇒ Object </a>
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
</span>
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
<span class="summary_desc"><div class='inline'><p>Called before any execution or bootstrapping happens but after <span class='object_link'><a href="App.html#before_execute-instance_method" title="Brut::CLI::App#before_execute (method)">App#before_execute</a></span> is called.</p>
|
439
|
+
</div></span>
|
440
|
+
|
441
|
+
</li>
|
442
|
+
|
443
|
+
|
444
|
+
<li class="public ">
|
445
|
+
<span class="summary_signature">
|
446
|
+
|
447
|
+
<a href="#delegate_to_commands-instance_method" title="#delegate_to_commands (instance method)">#<strong>delegate_to_commands</strong>(*command_klasses) ⇒ Brut::CLI::ExecutionResults::Result </a>
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
</span>
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
<span class="summary_desc"><div class='inline'><p>Use this inside <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to createa compound command that executes other commands that are a part of your CLI app.</p>
|
462
|
+
</div></span>
|
463
|
+
|
464
|
+
</li>
|
465
|
+
|
466
|
+
|
467
|
+
<li class="public ">
|
468
|
+
<span class="summary_signature">
|
469
|
+
|
470
|
+
<a href="#err-instance_method" title="#err (instance method)">#<strong>err</strong> ⇒ Brut::CLI::Output </a>
|
471
|
+
|
472
|
+
|
473
|
+
|
474
|
+
</span>
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
<span class="summary_desc"><div class='inline'><p>IO to use for sending messages to the standard error.</p>
|
485
|
+
</div></span>
|
486
|
+
|
487
|
+
</li>
|
488
|
+
|
489
|
+
|
490
|
+
<li class="public ">
|
491
|
+
<span class="summary_signature">
|
492
|
+
|
493
|
+
<a href="#execute-instance_method" title="#execute (instance method)">#<strong>execute</strong> ⇒ Brut::CLI::ExecutionResults::Result </a>
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
</span>
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
<span class="summary_desc"><div class='inline'><p>You must implement this to perform whatever action your command needs to perform.</p>
|
508
|
+
</div></span>
|
509
|
+
|
510
|
+
</li>
|
511
|
+
|
512
|
+
|
513
|
+
<li class="public ">
|
514
|
+
<span class="summary_signature">
|
515
|
+
|
516
|
+
<a href="#global_options-instance_method" title="#global_options (instance method)">#<strong>global_options</strong> ⇒ Brut::CLI::Options </a>
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
</span>
|
521
|
+
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
<span class="summary_desc"><div class='inline'><p>The global options parsed on the command line.</p>
|
531
|
+
</div></span>
|
532
|
+
|
533
|
+
</li>
|
534
|
+
|
535
|
+
|
536
|
+
<li class="public ">
|
537
|
+
<span class="summary_signature">
|
538
|
+
|
539
|
+
<a href="#handle_bootstrap_exception-instance_method" title="#handle_bootstrap_exception (instance method)">#<strong>handle_bootstrap_exception</strong>(ex) ⇒ void </a>
|
540
|
+
|
541
|
+
|
542
|
+
|
543
|
+
</span>
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
<span class="summary_desc"><div class='inline'><p>Called if there is an exception during bootstrapping.</p>
|
554
|
+
</div></span>
|
555
|
+
|
556
|
+
</li>
|
557
|
+
|
558
|
+
|
559
|
+
<li class="public ">
|
560
|
+
<span class="summary_signature">
|
561
|
+
|
562
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(command_options:, global_options:, args:, out:, err:, executor:) ⇒ Command </a>
|
563
|
+
|
564
|
+
|
565
|
+
|
566
|
+
</span>
|
567
|
+
|
568
|
+
|
569
|
+
<span class="note title constructor">constructor</span>
|
570
|
+
|
571
|
+
|
572
|
+
|
573
|
+
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
<span class="summary_desc"><div class='inline'><p>Creates the command before executing it.</p>
|
579
|
+
</div></span>
|
580
|
+
|
581
|
+
</li>
|
582
|
+
|
583
|
+
|
584
|
+
<li class="public ">
|
585
|
+
<span class="summary_signature">
|
586
|
+
|
587
|
+
<a href="#options-instance_method" title="#options (instance method)">#<strong>options</strong> ⇒ Brut::CLI::Options </a>
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
</span>
|
592
|
+
|
593
|
+
|
594
|
+
|
595
|
+
|
596
|
+
|
597
|
+
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
<span class="summary_desc"><div class='inline'><p>The command options parsed on the command line.</p>
|
602
|
+
</div></span>
|
603
|
+
|
604
|
+
</li>
|
605
|
+
|
606
|
+
|
607
|
+
<li class="public ">
|
608
|
+
<span class="summary_signature">
|
609
|
+
|
610
|
+
<a href="#out-instance_method" title="#out (instance method)">#<strong>out</strong> ⇒ Brut::CLI::Output </a>
|
611
|
+
|
612
|
+
|
613
|
+
|
614
|
+
</span>
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
|
623
|
+
|
624
|
+
<span class="summary_desc"><div class='inline'><p>IO to use for sending messages to the standard output.</p>
|
625
|
+
</div></span>
|
626
|
+
|
627
|
+
</li>
|
628
|
+
|
629
|
+
|
630
|
+
<li class="public ">
|
631
|
+
<span class="summary_signature">
|
632
|
+
|
633
|
+
<a href="#system!-instance_method" title="#system! (instance method)">#<strong>system!</strong>(*args) ⇒ true </a>
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
</span>
|
638
|
+
|
639
|
+
|
640
|
+
|
641
|
+
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
|
647
|
+
<span class="summary_desc"><div class='inline'><p>Convienince method to call <span class='object_link'><a href="Executor.html#system!-instance_method" title="Brut::CLI::Executor#system! (method)">Executor#system!</a></span> on the executor given in the constructor.</p>
|
648
|
+
</div></span>
|
649
|
+
|
650
|
+
</li>
|
651
|
+
|
652
|
+
|
653
|
+
</ul>
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
|
665
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="../Framework/Errors.html" title="Brut::Framework::Errors (module)">Framework::Errors</a></span></h3>
|
666
|
+
<p class="inherited"><span class='object_link'><a href="../Framework/Errors.html#abstract_method!-instance_method" title="Brut::Framework::Errors#abstract_method! (method)">#abstract_method!</a></span>, <span class='object_link'><a href="../Framework/Errors.html#bug!-instance_method" title="Brut::Framework::Errors#bug! (method)">#bug!</a></span></p>
|
667
|
+
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
|
675
|
+
|
676
|
+
<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>
|
677
|
+
<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>
|
678
|
+
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
|
683
|
+
|
684
|
+
|
685
|
+
|
686
|
+
|
687
|
+
<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>
|
688
|
+
<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>
|
689
|
+
|
690
|
+
|
691
|
+
|
692
|
+
|
693
|
+
|
694
|
+
|
695
|
+
|
696
|
+
|
697
|
+
|
698
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span></h3>
|
699
|
+
<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>
|
700
|
+
<div id="constructor_details" class="method_details_list">
|
701
|
+
<h2>Constructor Details</h2>
|
702
|
+
|
703
|
+
<div class="method_details first">
|
704
|
+
<h3 class="signature first" id="initialize-instance_method">
|
705
|
+
|
706
|
+
#<strong>initialize</strong>(command_options:, global_options:, args:, out:, err:, executor:) ⇒ <tt><span class='object_link'><a href="" title="Brut::CLI::Command (class)">Command</a></span></tt>
|
707
|
+
|
708
|
+
|
709
|
+
|
710
|
+
|
711
|
+
|
712
|
+
</h3><div class="docstring">
|
713
|
+
<div class="discussion">
|
714
|
+
<p>Creates the command before executing it. Generally you would not call this directly.</p>
|
715
|
+
|
716
|
+
|
717
|
+
</div>
|
718
|
+
</div>
|
719
|
+
<div class="tags">
|
720
|
+
<p class="tag_title">Parameters:</p>
|
721
|
+
<ul class="param">
|
722
|
+
|
723
|
+
<li>
|
724
|
+
|
725
|
+
<span class='name'>command_options</span>
|
726
|
+
|
727
|
+
|
728
|
+
<span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
|
729
|
+
|
730
|
+
|
731
|
+
|
732
|
+
—
|
733
|
+
<div class='inline'><p>the command options parsed from the command line.</p>
|
734
|
+
</div>
|
735
|
+
|
736
|
+
</li>
|
737
|
+
|
738
|
+
<li>
|
739
|
+
|
740
|
+
<span class='name'>global_options</span>
|
741
|
+
|
742
|
+
|
743
|
+
<span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
|
744
|
+
|
745
|
+
|
746
|
+
|
747
|
+
—
|
748
|
+
<div class='inline'><p>the global options parsed from the command line.</p>
|
749
|
+
</div>
|
750
|
+
|
751
|
+
</li>
|
752
|
+
|
753
|
+
<li>
|
754
|
+
|
755
|
+
<span class='name'>args</span>
|
756
|
+
|
757
|
+
|
758
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
759
|
+
|
760
|
+
|
761
|
+
|
762
|
+
—
|
763
|
+
<div class='inline'><p>Any unparsed arguments</p>
|
764
|
+
</div>
|
765
|
+
|
766
|
+
</li>
|
767
|
+
|
768
|
+
<li>
|
769
|
+
|
770
|
+
<span class='name'>out</span>
|
771
|
+
|
772
|
+
|
773
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
774
|
+
|
775
|
+
|
776
|
+
|
777
|
+
—
|
778
|
+
<div class='inline'><p>an IO used to send messages to the standard output</p>
|
779
|
+
</div>
|
780
|
+
|
781
|
+
</li>
|
782
|
+
|
783
|
+
<li>
|
784
|
+
|
785
|
+
<span class='name'>err</span>
|
786
|
+
|
787
|
+
|
788
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
789
|
+
|
790
|
+
|
791
|
+
|
792
|
+
—
|
793
|
+
<div class='inline'><p>an IO used to send messages to the standard error</p>
|
794
|
+
</div>
|
795
|
+
|
796
|
+
</li>
|
797
|
+
|
798
|
+
<li>
|
799
|
+
|
800
|
+
<span class='name'>executor</span>
|
801
|
+
|
802
|
+
|
803
|
+
<span class='type'>(<tt><span class='object_link'><a href="Executor.html" title="Brut::CLI::Executor (class)">Brut::CLI::Executor</a></span></tt>)</span>
|
804
|
+
|
805
|
+
|
806
|
+
|
807
|
+
—
|
808
|
+
<div class='inline'><p>used to execute child processes instead of e.g. <code>system</code></p>
|
809
|
+
</div>
|
810
|
+
|
811
|
+
</li>
|
812
|
+
|
813
|
+
</ul>
|
814
|
+
|
815
|
+
|
816
|
+
</div><table class="source_code">
|
817
|
+
<tr>
|
818
|
+
<td>
|
819
|
+
<pre class="lines">
|
820
|
+
|
821
|
+
|
822
|
+
139
|
823
|
+
140
|
824
|
+
141
|
825
|
+
142
|
826
|
+
143
|
827
|
+
144
|
828
|
+
145
|
829
|
+
146
|
830
|
+
147
|
831
|
+
148
|
832
|
+
149</pre>
|
833
|
+
</td>
|
834
|
+
<td>
|
835
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 139</span>
|
836
|
+
|
837
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>command_options:</span><span class='comma'>,</span><span class='label'>global_options:</span><span class='comma'>,</span> <span class='label'>args:</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>
|
838
|
+
<span class='ivar'>@command_options</span> <span class='op'>=</span> <span class='id identifier rubyid_command_options'>command_options</span>
|
839
|
+
<span class='ivar'>@global_options</span> <span class='op'>=</span> <span class='id identifier rubyid_global_options'>global_options</span>
|
840
|
+
<span class='ivar'>@args</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span>
|
841
|
+
<span class='ivar'>@out</span> <span class='op'>=</span> <span class='id identifier rubyid_out'>out</span>
|
842
|
+
<span class='ivar'>@err</span> <span class='op'>=</span> <span class='id identifier rubyid_err'>err</span>
|
843
|
+
<span class='ivar'>@executor</span> <span class='op'>=</span> <span class='id identifier rubyid_executor'>executor</span>
|
844
|
+
<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>
|
845
|
+
<span class='ivar'>@command_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>
|
846
|
+
<span class='kw'>end</span>
|
847
|
+
<span class='kw'>end</span></pre>
|
848
|
+
</td>
|
849
|
+
</tr>
|
850
|
+
</table>
|
851
|
+
</div>
|
852
|
+
|
853
|
+
</div>
|
854
|
+
|
855
|
+
|
856
|
+
<div id="class_method_details" class="method_details_list">
|
857
|
+
<h2>Class Method Details</h2>
|
858
|
+
|
859
|
+
|
860
|
+
<div class="method_details first">
|
861
|
+
<h3 class="signature first" id="args-class_method">
|
862
|
+
|
863
|
+
.<strong>args</strong>(new_args = nil) ⇒ <tt>String the current value (if called with no parameters)</tt>
|
864
|
+
|
865
|
+
|
866
|
+
|
867
|
+
|
868
|
+
|
869
|
+
</h3><div class="docstring">
|
870
|
+
<div class="discussion">
|
871
|
+
<p>Set a description of the command line args this command accepts. Args are any part of the command line that is not a switch or
|
872
|
+
flag. The string you give will be used only for documentation. Typically, you would format it in one a few ways:</p>
|
873
|
+
|
874
|
+
<ul>
|
875
|
+
<li><code>args "some_arg"</code> indicates that exactly one arg called <code>some_arg</code> is required</li>
|
876
|
+
<li><code>args "[some_arg]"</code> indicates that exactly one arg called <code>some_arg</code> is optional</li>
|
877
|
+
<li><code>args "args..."</code> indicates that</li>
|
878
|
+
<li><code>args "[args...]"</code> indicates that zero or more args called <code>args</code> are accepted</li>
|
879
|
+
</ul>
|
880
|
+
|
881
|
+
|
882
|
+
|
883
|
+
</div>
|
884
|
+
</div>
|
885
|
+
<div class="tags">
|
886
|
+
<p class="tag_title">Parameters:</p>
|
887
|
+
<ul class="param">
|
888
|
+
|
889
|
+
<li>
|
890
|
+
|
891
|
+
<span class='name'>new_args</span>
|
892
|
+
|
893
|
+
|
894
|
+
<span class='type'>(<tt>String</tt>)</span>
|
895
|
+
|
896
|
+
|
897
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
898
|
+
|
899
|
+
|
900
|
+
—
|
901
|
+
<div class='inline'><p>documentation for this command's args. If omitted, returns the current value.</p>
|
902
|
+
</div>
|
903
|
+
|
904
|
+
</li>
|
905
|
+
|
906
|
+
</ul>
|
907
|
+
|
908
|
+
<p class="tag_title">Returns:</p>
|
909
|
+
<ul class="return">
|
910
|
+
|
911
|
+
<li>
|
912
|
+
|
913
|
+
|
914
|
+
<span class='type'>(<tt>String the current value (if called with no parameters)</tt>)</span>
|
915
|
+
|
916
|
+
|
917
|
+
|
918
|
+
—
|
919
|
+
<div class='inline'><p>String the current value (if called with no parameters)</p>
|
920
|
+
</div>
|
921
|
+
|
922
|
+
</li>
|
923
|
+
|
924
|
+
</ul>
|
925
|
+
|
926
|
+
</div><table class="source_code">
|
927
|
+
<tr>
|
928
|
+
<td>
|
929
|
+
<pre class="lines">
|
930
|
+
|
931
|
+
|
932
|
+
46
|
933
|
+
47
|
934
|
+
48
|
935
|
+
49
|
936
|
+
50
|
937
|
+
51
|
938
|
+
52</pre>
|
939
|
+
</td>
|
940
|
+
<td>
|
941
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 46</span>
|
942
|
+
|
943
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_args'>args</span><span class='lparen'>(</span><span class='id identifier rubyid_new_args'>new_args</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
944
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_args'>new_args</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
945
|
+
<span class='kw'>return</span> <span class='ivar'>@args</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
946
|
+
<span class='kw'>else</span>
|
947
|
+
<span class='ivar'>@args</span> <span class='op'>=</span> <span class='id identifier rubyid_new_args'>new_args</span>
|
948
|
+
<span class='kw'>end</span>
|
949
|
+
<span class='kw'>end</span></pre>
|
950
|
+
</td>
|
951
|
+
</tr>
|
952
|
+
</table>
|
953
|
+
</div>
|
954
|
+
|
955
|
+
<div class="method_details ">
|
956
|
+
<h3 class="signature " id="command_name-class_method">
|
957
|
+
|
958
|
+
.<strong>command_name</strong> ⇒ <tt>Object</tt>
|
959
|
+
|
960
|
+
|
961
|
+
|
962
|
+
|
963
|
+
|
964
|
+
</h3><div class="docstring">
|
965
|
+
<div class="discussion">
|
966
|
+
<p>Returns the name of this command, for use on the command line. By default, returns the "underscorized" name of this class
|
967
|
+
(excluding any module namespaces). For exaple, if your command's class is <code>MyApp::CLI::Commands::ClearFiles::DryRun</code>, the command
|
968
|
+
name would be <code>"dry_run"</code>. You can override this if you want something different. It is recommended that it not include spaces
|
969
|
+
or other characters meaningful to the shell, but if you like quotes, cool.</p>
|
970
|
+
|
971
|
+
|
972
|
+
</div>
|
973
|
+
</div>
|
974
|
+
<div class="tags">
|
975
|
+
|
976
|
+
|
977
|
+
</div><table class="source_code">
|
978
|
+
<tr>
|
979
|
+
<td>
|
980
|
+
<pre class="lines">
|
981
|
+
|
982
|
+
|
983
|
+
74</pre>
|
984
|
+
</td>
|
985
|
+
<td>
|
986
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 74</span>
|
987
|
+
|
988
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'><span class='object_link'><a href="../../RichString.html#underscorized-instance_method" title="RichString#underscorized (method)">underscorized</a></span></span></pre>
|
989
|
+
</td>
|
990
|
+
</tr>
|
991
|
+
</table>
|
992
|
+
</div>
|
993
|
+
|
994
|
+
<div class="method_details ">
|
995
|
+
<h3 class="signature " id="default_env-class_method">
|
996
|
+
|
997
|
+
.<strong>default_env</strong> ⇒ <tt>Object</tt>
|
998
|
+
|
999
|
+
|
1000
|
+
|
1001
|
+
|
1002
|
+
|
1003
|
+
</h3><div class="docstring">
|
1004
|
+
<div class="discussion">
|
1005
|
+
<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::Command.requires_project_env (method)">requires_project_env</a></span></p>
|
1006
|
+
|
1007
|
+
|
1008
|
+
</div>
|
1009
|
+
</div>
|
1010
|
+
<div class="tags">
|
1011
|
+
|
1012
|
+
|
1013
|
+
</div><table class="source_code">
|
1014
|
+
<tr>
|
1015
|
+
<td>
|
1016
|
+
<pre class="lines">
|
1017
|
+
|
1018
|
+
|
1019
|
+
127
|
1020
|
+
128</pre>
|
1021
|
+
</td>
|
1022
|
+
<td>
|
1023
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 127</span>
|
1024
|
+
|
1025
|
+
<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>
|
1026
|
+
<span class='comment'># Returns true if this app requires a project env</span></pre>
|
1027
|
+
</td>
|
1028
|
+
</tr>
|
1029
|
+
</table>
|
1030
|
+
</div>
|
1031
|
+
|
1032
|
+
<div class="method_details ">
|
1033
|
+
<h3 class="signature " id="description-class_method">
|
1034
|
+
|
1035
|
+
.<strong>description</strong>(new_description = nil) ⇒ <tt>String</tt>
|
1036
|
+
|
1037
|
+
|
1038
|
+
|
1039
|
+
|
1040
|
+
|
1041
|
+
</h3><div class="docstring">
|
1042
|
+
<div class="discussion">
|
1043
|
+
<p>Call this to set the one-line description of this command</p>
|
1044
|
+
|
1045
|
+
|
1046
|
+
</div>
|
1047
|
+
</div>
|
1048
|
+
<div class="tags">
|
1049
|
+
<p class="tag_title">Parameters:</p>
|
1050
|
+
<ul class="param">
|
1051
|
+
|
1052
|
+
<li>
|
1053
|
+
|
1054
|
+
<span class='name'>new_description</span>
|
1055
|
+
|
1056
|
+
|
1057
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1058
|
+
|
1059
|
+
|
1060
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1061
|
+
|
1062
|
+
|
1063
|
+
—
|
1064
|
+
<div class='inline'><p>When present, sets the description of this command. When omitted, returns the current description.</p>
|
1065
|
+
</div>
|
1066
|
+
|
1067
|
+
</li>
|
1068
|
+
|
1069
|
+
</ul>
|
1070
|
+
|
1071
|
+
<p class="tag_title">Returns:</p>
|
1072
|
+
<ul class="return">
|
1073
|
+
|
1074
|
+
<li>
|
1075
|
+
|
1076
|
+
|
1077
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1078
|
+
|
1079
|
+
|
1080
|
+
|
1081
|
+
—
|
1082
|
+
<div class='inline'><p>the current description (if called with no parameters)</p>
|
1083
|
+
</div>
|
1084
|
+
|
1085
|
+
</li>
|
1086
|
+
|
1087
|
+
</ul>
|
1088
|
+
|
1089
|
+
</div><table class="source_code">
|
1090
|
+
<tr>
|
1091
|
+
<td>
|
1092
|
+
<pre class="lines">
|
1093
|
+
|
1094
|
+
|
1095
|
+
12
|
1096
|
+
13
|
1097
|
+
14
|
1098
|
+
15
|
1099
|
+
16
|
1100
|
+
17
|
1101
|
+
18</pre>
|
1102
|
+
</td>
|
1103
|
+
<td>
|
1104
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 12</span>
|
1105
|
+
|
1106
|
+
<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>
|
1107
|
+
<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>
|
1108
|
+
<span class='kw'>return</span> <span class='ivar'>@description</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1109
|
+
<span class='kw'>else</span>
|
1110
|
+
<span class='ivar'>@description</span> <span class='op'>=</span> <span class='id identifier rubyid_new_description'>new_description</span>
|
1111
|
+
<span class='kw'>end</span>
|
1112
|
+
<span class='kw'>end</span></pre>
|
1113
|
+
</td>
|
1114
|
+
</tr>
|
1115
|
+
</table>
|
1116
|
+
</div>
|
1117
|
+
|
1118
|
+
<div class="method_details ">
|
1119
|
+
<h3 class="signature " id="detailed_description-class_method">
|
1120
|
+
|
1121
|
+
.<strong>detailed_description</strong>(new_description = nil) ⇒ <tt>String</tt>
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1125
|
+
|
1126
|
+
|
1127
|
+
</h3><div class="docstring">
|
1128
|
+
<div class="discussion">
|
1129
|
+
<p>Call this to set a an additional detailed description of this command. Currently, this should not be formatted and will be shown all on one line. This is shown after the <code>description</code>, so this text can follow from that, without having to restate it.</p>
|
1130
|
+
|
1131
|
+
|
1132
|
+
</div>
|
1133
|
+
</div>
|
1134
|
+
<div class="tags">
|
1135
|
+
<p class="tag_title">Parameters:</p>
|
1136
|
+
<ul class="param">
|
1137
|
+
|
1138
|
+
<li>
|
1139
|
+
|
1140
|
+
<span class='name'>new_description</span>
|
1141
|
+
|
1142
|
+
|
1143
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1144
|
+
|
1145
|
+
|
1146
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1147
|
+
|
1148
|
+
|
1149
|
+
—
|
1150
|
+
<div class='inline'><p>When present, sets the detailed description of this command. When omitted, returns the current detailed description.</p>
|
1151
|
+
</div>
|
1152
|
+
|
1153
|
+
</li>
|
1154
|
+
|
1155
|
+
</ul>
|
1156
|
+
|
1157
|
+
<p class="tag_title">Returns:</p>
|
1158
|
+
<ul class="return">
|
1159
|
+
|
1160
|
+
<li>
|
1161
|
+
|
1162
|
+
|
1163
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
—
|
1168
|
+
<div class='inline'><p>the current detailed description (if called with no parameters)</p>
|
1169
|
+
</div>
|
1170
|
+
|
1171
|
+
</li>
|
1172
|
+
|
1173
|
+
</ul>
|
1174
|
+
|
1175
|
+
</div><table class="source_code">
|
1176
|
+
<tr>
|
1177
|
+
<td>
|
1178
|
+
<pre class="lines">
|
1179
|
+
|
1180
|
+
|
1181
|
+
25
|
1182
|
+
26
|
1183
|
+
27
|
1184
|
+
28
|
1185
|
+
29
|
1186
|
+
30
|
1187
|
+
31
|
1188
|
+
32
|
1189
|
+
33
|
1190
|
+
34</pre>
|
1191
|
+
</td>
|
1192
|
+
<td>
|
1193
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 25</span>
|
1194
|
+
|
1195
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_detailed_description'>detailed_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>
|
1196
|
+
<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>
|
1197
|
+
<span class='kw'>if</span> <span class='ivar'>@detailed_description</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1198
|
+
<span class='kw'>return</span> <span class='ivar'>@detailed_description</span>
|
1199
|
+
<span class='kw'>end</span>
|
1200
|
+
<span class='kw'>return</span> <span class='ivar'>@detailed_description</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1201
|
+
<span class='kw'>else</span>
|
1202
|
+
<span class='ivar'>@detailed_description</span> <span class='op'>=</span> <span class='id identifier rubyid_new_description'>new_description</span>
|
1203
|
+
<span class='kw'>end</span>
|
1204
|
+
<span class='kw'>end</span></pre>
|
1205
|
+
</td>
|
1206
|
+
</tr>
|
1207
|
+
</table>
|
1208
|
+
</div>
|
1209
|
+
|
1210
|
+
<div class="method_details ">
|
1211
|
+
<h3 class="signature " id="env_var-class_method">
|
1212
|
+
|
1213
|
+
.<strong>env_var</strong>(var_name, purpose:) ⇒ <tt>Object</tt>
|
1214
|
+
|
1215
|
+
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
</h3><div class="docstring">
|
1220
|
+
<div class="discussion">
|
1221
|
+
<p>Call this for each environment variable this <em>command</em> responds to. These would be variables that affect only this command. For
|
1222
|
+
app-wide environment variables, see <span class='object_link'><a href="App.html#env_var-class_method" title="Brut::CLI::App.env_var (method)">App.env_var</a></span>.</p>
|
1223
|
+
|
1224
|
+
|
1225
|
+
</div>
|
1226
|
+
</div>
|
1227
|
+
<div class="tags">
|
1228
|
+
<p class="tag_title">Parameters:</p>
|
1229
|
+
<ul class="param">
|
1230
|
+
|
1231
|
+
<li>
|
1232
|
+
|
1233
|
+
<span class='name'>var_name</span>
|
1234
|
+
|
1235
|
+
|
1236
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1237
|
+
|
1238
|
+
|
1239
|
+
|
1240
|
+
—
|
1241
|
+
<div class='inline'><p>Declares that this command recognizes this environment variable.</p>
|
1242
|
+
</div>
|
1243
|
+
|
1244
|
+
</li>
|
1245
|
+
|
1246
|
+
<li>
|
1247
|
+
|
1248
|
+
<span class='name'>purpose</span>
|
1249
|
+
|
1250
|
+
|
1251
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1252
|
+
|
1253
|
+
|
1254
|
+
|
1255
|
+
—
|
1256
|
+
<div class='inline'><p>An explanation for how this environment variable affects the command. Used in documentation.</p>
|
1257
|
+
</div>
|
1258
|
+
|
1259
|
+
</li>
|
1260
|
+
|
1261
|
+
</ul>
|
1262
|
+
|
1263
|
+
|
1264
|
+
</div><table class="source_code">
|
1265
|
+
<tr>
|
1266
|
+
<td>
|
1267
|
+
<pre class="lines">
|
1268
|
+
|
1269
|
+
|
1270
|
+
59
|
1271
|
+
60
|
1272
|
+
61</pre>
|
1273
|
+
</td>
|
1274
|
+
<td>
|
1275
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 59</span>
|
1276
|
+
|
1277
|
+
<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>
|
1278
|
+
<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>
|
1279
|
+
<span class='kw'>end</span></pre>
|
1280
|
+
</td>
|
1281
|
+
</tr>
|
1282
|
+
</table>
|
1283
|
+
</div>
|
1284
|
+
|
1285
|
+
<div class="method_details ">
|
1286
|
+
<h3 class="signature " id="name_matches?-class_method">
|
1287
|
+
|
1288
|
+
.<strong>name_matches?</strong>(string) ⇒ <tt>true|false</tt>
|
1289
|
+
|
1290
|
+
|
1291
|
+
|
1292
|
+
|
1293
|
+
|
1294
|
+
</h3><div class="docstring">
|
1295
|
+
<div class="discussion">
|
1296
|
+
<p>Checks if a given string matches this command name. This exists to allow the use of underscores or dashes as delimiters. Ruby
|
1297
|
+
likes underscores, but the shell vibe is often dashes.</p>
|
1298
|
+
|
1299
|
+
|
1300
|
+
</div>
|
1301
|
+
</div>
|
1302
|
+
<div class="tags">
|
1303
|
+
<p class="tag_title">Parameters:</p>
|
1304
|
+
<ul class="param">
|
1305
|
+
|
1306
|
+
<li>
|
1307
|
+
|
1308
|
+
<span class='name'>string</span>
|
1309
|
+
|
1310
|
+
|
1311
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1312
|
+
|
1313
|
+
|
1314
|
+
|
1315
|
+
—
|
1316
|
+
<div class='inline'><p>the command given on the command line</p>
|
1317
|
+
</div>
|
1318
|
+
|
1319
|
+
</li>
|
1320
|
+
|
1321
|
+
</ul>
|
1322
|
+
|
1323
|
+
<p class="tag_title">Returns:</p>
|
1324
|
+
<ul class="return">
|
1325
|
+
|
1326
|
+
<li>
|
1327
|
+
|
1328
|
+
|
1329
|
+
<span class='type'>(<tt>true|false</tt>)</span>
|
1330
|
+
|
1331
|
+
|
1332
|
+
|
1333
|
+
—
|
1334
|
+
<div class='inline'><p>true if <code>string</code> is considered an exact match for this command's name.</p>
|
1335
|
+
</div>
|
1336
|
+
|
1337
|
+
</li>
|
1338
|
+
|
1339
|
+
</ul>
|
1340
|
+
|
1341
|
+
</div><table class="source_code">
|
1342
|
+
<tr>
|
1343
|
+
<td>
|
1344
|
+
<pre class="lines">
|
1345
|
+
|
1346
|
+
|
1347
|
+
81
|
1348
|
+
82
|
1349
|
+
83</pre>
|
1350
|
+
</td>
|
1351
|
+
<td>
|
1352
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 81</span>
|
1353
|
+
|
1354
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name_matches?'>name_matches?</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
|
1355
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span> <span class='op'>==</span> <span class='id identifier rubyid_string'>string</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_</span><span class='regexp_end'>/</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>-</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id identifier rubyid_string'>string</span>
|
1356
|
+
<span class='kw'>end</span></pre>
|
1357
|
+
</td>
|
1358
|
+
</tr>
|
1359
|
+
</table>
|
1360
|
+
</div>
|
1361
|
+
|
1362
|
+
<div class="method_details ">
|
1363
|
+
<h3 class="signature " id="option_parser-class_method">
|
1364
|
+
|
1365
|
+
.<strong>option_parser</strong> ⇒ <tt>OptionParser</tt>
|
1366
|
+
|
1367
|
+
|
1368
|
+
|
1369
|
+
|
1370
|
+
|
1371
|
+
</h3><div class="docstring">
|
1372
|
+
<div class="discussion">
|
1373
|
+
<p>Returns the configured <code>OptionParser</code> used to parse the command portion of the command line.
|
1374
|
+
If you don't want to call <span class='object_link'><a href="#opts-class_method" title="Brut::CLI::Command.opts (method)">opts</a></span>, you can create and return
|
1375
|
+
a fully-formed <code>OptionParser</code> by overriding this method. By default, it will create one with a conventional banner.</p>
|
1376
|
+
|
1377
|
+
|
1378
|
+
</div>
|
1379
|
+
</div>
|
1380
|
+
<div class="tags">
|
1381
|
+
|
1382
|
+
<p class="tag_title">Returns:</p>
|
1383
|
+
<ul class="return">
|
1384
|
+
|
1385
|
+
<li>
|
1386
|
+
|
1387
|
+
|
1388
|
+
<span class='type'>(<tt>OptionParser</tt>)</span>
|
1389
|
+
|
1390
|
+
|
1391
|
+
|
1392
|
+
</li>
|
1393
|
+
|
1394
|
+
</ul>
|
1395
|
+
|
1396
|
+
</div><table class="source_code">
|
1397
|
+
<tr>
|
1398
|
+
<td>
|
1399
|
+
<pre class="lines">
|
1400
|
+
|
1401
|
+
|
1402
|
+
100
|
1403
|
+
101
|
1404
|
+
102
|
1405
|
+
103
|
1406
|
+
104</pre>
|
1407
|
+
</td>
|
1408
|
+
<td>
|
1409
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 100</span>
|
1410
|
+
|
1411
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
|
1412
|
+
<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>
|
1413
|
+
<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} </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command_name'>command_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> %{command_options} %{args}</span><span class='tstring_end'>"</span></span>
|
1414
|
+
<span class='kw'>end</span>
|
1415
|
+
<span class='kw'>end</span></pre>
|
1416
|
+
</td>
|
1417
|
+
</tr>
|
1418
|
+
</table>
|
1419
|
+
</div>
|
1420
|
+
|
1421
|
+
<div class="method_details ">
|
1422
|
+
<h3 class="signature " id="opts-class_method">
|
1423
|
+
|
1424
|
+
.<strong>opts</strong> ⇒ <tt>OptionParser</tt>
|
1425
|
+
|
1426
|
+
|
1427
|
+
|
1428
|
+
|
1429
|
+
|
1430
|
+
</h3><div class="docstring">
|
1431
|
+
<div class="discussion">
|
1432
|
+
<p>Provides access to an <code>OptionParser</code> you can use to declare flags and switches that should be accepted only by this command.
|
1433
|
+
The way to use this is to call <code>.on</code> and provide a description for an option as you would to <code>OptionParser</code>.
|
1434
|
+
The only difference is that you should not pass a block to this. When the command line is parsed, the results will be placed
|
1435
|
+
into a <span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Options</a></span> instance made available to your command.</p>
|
1436
|
+
|
1437
|
+
|
1438
|
+
</div>
|
1439
|
+
</div>
|
1440
|
+
<div class="tags">
|
1441
|
+
|
1442
|
+
<p class="tag_title">Returns:</p>
|
1443
|
+
<ul class="return">
|
1444
|
+
|
1445
|
+
<li>
|
1446
|
+
|
1447
|
+
|
1448
|
+
<span class='type'>(<tt>OptionParser</tt>)</span>
|
1449
|
+
|
1450
|
+
|
1451
|
+
|
1452
|
+
</li>
|
1453
|
+
|
1454
|
+
</ul>
|
1455
|
+
|
1456
|
+
</div><table class="source_code">
|
1457
|
+
<tr>
|
1458
|
+
<td>
|
1459
|
+
<pre class="lines">
|
1460
|
+
|
1461
|
+
|
1462
|
+
91
|
1463
|
+
92
|
1464
|
+
93</pre>
|
1465
|
+
</td>
|
1466
|
+
<td>
|
1467
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 91</span>
|
1468
|
+
|
1469
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_opts'>opts</span>
|
1470
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_option_parser'>option_parser</span>
|
1471
|
+
<span class='kw'>end</span></pre>
|
1472
|
+
</td>
|
1473
|
+
</tr>
|
1474
|
+
</table>
|
1475
|
+
</div>
|
1476
|
+
|
1477
|
+
<div class="method_details ">
|
1478
|
+
<h3 class="signature " id="requires_project_env-class_method">
|
1479
|
+
|
1480
|
+
.<strong>requires_project_env</strong>(default: "development") ⇒ <tt>Object</tt>
|
1481
|
+
|
1482
|
+
|
1483
|
+
|
1484
|
+
|
1485
|
+
|
1486
|
+
</h3><div class="docstring">
|
1487
|
+
<div class="discussion">
|
1488
|
+
<p>Call this if this command requires a project environment as context for what it does. When called, this will do a few things:</p>
|
1489
|
+
|
1490
|
+
<ul>
|
1491
|
+
<li>Your command (not app) will recognize <code>--env=ENVIRONMENT</code> as a global option</li>
|
1492
|
+
<li>Your command will document that it recognizes the <code>RACK_ENV</code> environment variable.</li>
|
1493
|
+
</ul>
|
1494
|
+
|
1495
|
+
|
1496
|
+
|
1497
|
+
</div>
|
1498
|
+
</div>
|
1499
|
+
<div class="tags">
|
1500
|
+
<p class="tag_title">Parameters:</p>
|
1501
|
+
<ul class="param">
|
1502
|
+
|
1503
|
+
<li>
|
1504
|
+
|
1505
|
+
<span class='name'>default</span>
|
1506
|
+
|
1507
|
+
|
1508
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1509
|
+
|
1510
|
+
|
1511
|
+
<em class="default">(defaults to: <tt>"development"</tt>)</em>
|
1512
|
+
|
1513
|
+
|
1514
|
+
—
|
1515
|
+
<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>
|
1516
|
+
</div>
|
1517
|
+
|
1518
|
+
</li>
|
1519
|
+
|
1520
|
+
</ul>
|
1521
|
+
|
1522
|
+
|
1523
|
+
<p class="tag_title">See Also:</p>
|
1524
|
+
<ul class="see">
|
1525
|
+
|
1526
|
+
<li><span class='object_link'><a href="App.html#requires_project_env-class_method" title="Brut::CLI::App.requires_project_env (method)">App.requires_project_env</a></span></li>
|
1527
|
+
|
1528
|
+
</ul>
|
1529
|
+
|
1530
|
+
</div><table class="source_code">
|
1531
|
+
<tr>
|
1532
|
+
<td>
|
1533
|
+
<pre class="lines">
|
1534
|
+
|
1535
|
+
|
1536
|
+
114
|
1537
|
+
115
|
1538
|
+
116
|
1539
|
+
117
|
1540
|
+
118
|
1541
|
+
119
|
1542
|
+
120
|
1543
|
+
121
|
1544
|
+
122
|
1545
|
+
123
|
1546
|
+
124</pre>
|
1547
|
+
</td>
|
1548
|
+
<td>
|
1549
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 114</span>
|
1550
|
+
|
1551
|
+
<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>
|
1552
|
+
<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>
|
1553
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span>
|
1554
|
+
<span class='kw'>else</span>
|
1555
|
+
<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>
|
1556
|
+
<span class='kw'>end</span>
|
1557
|
+
<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>
|
1558
|
+
<span class='ivar'>@default_env</span> <span class='op'>=</span> <span class='id identifier rubyid_default'>default</span>
|
1559
|
+
<span class='ivar'>@requires_project_env</span> <span class='op'>=</span> <span class='kw'>true</span>
|
1560
|
+
<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>
|
1561
|
+
<span class='kw'>end</span></pre>
|
1562
|
+
</td>
|
1563
|
+
</tr>
|
1564
|
+
</table>
|
1565
|
+
</div>
|
1566
|
+
|
1567
|
+
<div class="method_details ">
|
1568
|
+
<h3 class="signature " id="requires_project_env?-class_method">
|
1569
|
+
|
1570
|
+
.<strong>requires_project_env?</strong> ⇒ <tt>Boolean</tt>
|
1571
|
+
|
1572
|
+
|
1573
|
+
|
1574
|
+
|
1575
|
+
|
1576
|
+
</h3><div class="docstring">
|
1577
|
+
<div class="discussion">
|
1578
|
+
<p>Returns true if this app requires a project env</p>
|
1579
|
+
|
1580
|
+
|
1581
|
+
</div>
|
1582
|
+
</div>
|
1583
|
+
<div class="tags">
|
1584
|
+
|
1585
|
+
<p class="tag_title">Returns:</p>
|
1586
|
+
<ul class="return">
|
1587
|
+
|
1588
|
+
<li>
|
1589
|
+
|
1590
|
+
|
1591
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1592
|
+
|
1593
|
+
|
1594
|
+
|
1595
|
+
</li>
|
1596
|
+
|
1597
|
+
</ul>
|
1598
|
+
|
1599
|
+
</div><table class="source_code">
|
1600
|
+
<tr>
|
1601
|
+
<td>
|
1602
|
+
<pre class="lines">
|
1603
|
+
|
1604
|
+
|
1605
|
+
129</pre>
|
1606
|
+
</td>
|
1607
|
+
<td>
|
1608
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 129</span>
|
1609
|
+
|
1610
|
+
<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>
|
1611
|
+
</td>
|
1612
|
+
</tr>
|
1613
|
+
</table>
|
1614
|
+
</div>
|
1615
|
+
|
1616
|
+
</div>
|
1617
|
+
|
1618
|
+
<div id="instance_method_details" class="method_details_list">
|
1619
|
+
<h2>Instance Method Details</h2>
|
1620
|
+
|
1621
|
+
|
1622
|
+
<div class="method_details first">
|
1623
|
+
<h3 class="signature first" id="args-instance_method">
|
1624
|
+
|
1625
|
+
#<strong>args</strong> ⇒ <tt>Array<String></tt>
|
1626
|
+
|
1627
|
+
|
1628
|
+
|
1629
|
+
|
1630
|
+
|
1631
|
+
</h3><div class="docstring">
|
1632
|
+
<div class="discussion">
|
1633
|
+
<p>Returns the arguments parsed from the command line.</p>
|
1634
|
+
|
1635
|
+
|
1636
|
+
</div>
|
1637
|
+
</div>
|
1638
|
+
<div class="tags">
|
1639
|
+
|
1640
|
+
<p class="tag_title">Returns:</p>
|
1641
|
+
<ul class="return">
|
1642
|
+
|
1643
|
+
<li>
|
1644
|
+
|
1645
|
+
|
1646
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1647
|
+
|
1648
|
+
|
1649
|
+
|
1650
|
+
—
|
1651
|
+
<div class='inline'><p>the arguments parsed from the command line</p>
|
1652
|
+
</div>
|
1653
|
+
|
1654
|
+
</li>
|
1655
|
+
|
1656
|
+
</ul>
|
1657
|
+
|
1658
|
+
</div><table class="source_code">
|
1659
|
+
<tr>
|
1660
|
+
<td>
|
1661
|
+
<pre class="lines">
|
1662
|
+
|
1663
|
+
|
1664
|
+
245
|
1665
|
+
246
|
1666
|
+
247</pre>
|
1667
|
+
</td>
|
1668
|
+
<td>
|
1669
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 245</span>
|
1670
|
+
|
1671
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='ivar'>@args</span>
|
1672
|
+
<span class='comment'># @!visibility public
|
1673
|
+
</span><span class='comment'># @return [Brut::CLI::Output] IO to use for sending messages to the standard output</span></pre>
|
1674
|
+
</td>
|
1675
|
+
</tr>
|
1676
|
+
</table>
|
1677
|
+
</div>
|
1678
|
+
|
1679
|
+
<div class="method_details ">
|
1680
|
+
<h3 class="signature " id="before_execute-instance_method">
|
1681
|
+
|
1682
|
+
#<strong>before_execute</strong> ⇒ <tt>Object</tt>
|
1683
|
+
|
1684
|
+
|
1685
|
+
|
1686
|
+
|
1687
|
+
|
1688
|
+
</h3><div class="docstring">
|
1689
|
+
<div class="discussion">
|
1690
|
+
<p>Called before any execution or bootstrapping happens but after <span class='object_link'><a href="App.html#before_execute-instance_method" title="Brut::CLI::App#before_execute (method)">App#before_execute</a></span> is called. This will have access
|
1691
|
+
to everything <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> can access.</p>
|
1692
|
+
|
1693
|
+
|
1694
|
+
</div>
|
1695
|
+
</div>
|
1696
|
+
<div class="tags">
|
1697
|
+
|
1698
|
+
<p class="tag_title">Raises:</p>
|
1699
|
+
<ul class="raise">
|
1700
|
+
|
1701
|
+
<li>
|
1702
|
+
|
1703
|
+
|
1704
|
+
<span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
|
1705
|
+
|
1706
|
+
|
1707
|
+
|
1708
|
+
—
|
1709
|
+
<div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span> and execution will be aborted.</p>
|
1710
|
+
</div>
|
1711
|
+
|
1712
|
+
</li>
|
1713
|
+
|
1714
|
+
<li>
|
1715
|
+
|
1716
|
+
|
1717
|
+
<span class='type'>(<tt>StandardError</tt>)</span>
|
1718
|
+
|
1719
|
+
|
1720
|
+
|
1721
|
+
—
|
1722
|
+
<div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
|
1723
|
+
</div>
|
1724
|
+
|
1725
|
+
</li>
|
1726
|
+
|
1727
|
+
</ul>
|
1728
|
+
|
1729
|
+
</div><table class="source_code">
|
1730
|
+
<tr>
|
1731
|
+
<td>
|
1732
|
+
<pre class="lines">
|
1733
|
+
|
1734
|
+
|
1735
|
+
198
|
1736
|
+
199</pre>
|
1737
|
+
</td>
|
1738
|
+
<td>
|
1739
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 198</span>
|
1740
|
+
|
1741
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_before_execute'>before_execute</span>
|
1742
|
+
<span class='kw'>end</span></pre>
|
1743
|
+
</td>
|
1744
|
+
</tr>
|
1745
|
+
</table>
|
1746
|
+
</div>
|
1747
|
+
|
1748
|
+
<div class="method_details ">
|
1749
|
+
<h3 class="signature " id="delegate_to_commands-instance_method">
|
1750
|
+
|
1751
|
+
#<strong>delegate_to_commands</strong>(*command_klasses) ⇒ <tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>
|
1752
|
+
|
1753
|
+
|
1754
|
+
|
1755
|
+
|
1756
|
+
|
1757
|
+
</h3><div class="docstring">
|
1758
|
+
<div class="discussion">
|
1759
|
+
<p>Use this inside <span class='object_link'><a href="#execute-instance_method" title="Brut::CLI::Command#execute (method)">#execute</a></span> to createa compound command that executes other commands that are a part of your CLI app.
|
1760
|
+
Note that each command will be given the same global and commmand options and the same arguments, so these commands must be able
|
1761
|
+
to complete as desired in that way.</p>
|
1762
|
+
|
1763
|
+
<p>Note that since commands are just classes, you can certianly create them however you like and call <code>execute</code> yourself.</p>
|
1764
|
+
|
1765
|
+
<p>result of the last class executed.</p>
|
1766
|
+
|
1767
|
+
|
1768
|
+
</div>
|
1769
|
+
</div>
|
1770
|
+
<div class="tags">
|
1771
|
+
<p class="tag_title">Parameters:</p>
|
1772
|
+
<ul class="param">
|
1773
|
+
|
1774
|
+
<li>
|
1775
|
+
|
1776
|
+
<span class='name'>command_klasses</span>
|
1777
|
+
|
1778
|
+
|
1779
|
+
<span class='type'>(<tt>Enumerable<Class></tt>)</span>
|
1780
|
+
|
1781
|
+
|
1782
|
+
|
1783
|
+
—
|
1784
|
+
<div class='inline'><p>one or more classes that subclass <span class='object_link'><a href="" title="Brut::CLI::Command (class)">Brut::CLI::Command</a></span> to delegate to.</p>
|
1785
|
+
</div>
|
1786
|
+
|
1787
|
+
</li>
|
1788
|
+
|
1789
|
+
</ul>
|
1790
|
+
|
1791
|
+
<p class="tag_title">Returns:</p>
|
1792
|
+
<ul class="return">
|
1793
|
+
|
1794
|
+
<li>
|
1795
|
+
|
1796
|
+
|
1797
|
+
<span class='type'>(<tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>)</span>
|
1798
|
+
|
1799
|
+
|
1800
|
+
|
1801
|
+
—
|
1802
|
+
<div class='inline'><p>the first non successful result is returned and processing is stopped, otherwise returns the</p>
|
1803
|
+
</div>
|
1804
|
+
|
1805
|
+
</li>
|
1806
|
+
|
1807
|
+
</ul>
|
1808
|
+
|
1809
|
+
</div><table class="source_code">
|
1810
|
+
<tr>
|
1811
|
+
<td>
|
1812
|
+
<pre class="lines">
|
1813
|
+
|
1814
|
+
|
1815
|
+
165
|
1816
|
+
166
|
1817
|
+
167
|
1818
|
+
168
|
1819
|
+
169
|
1820
|
+
170
|
1821
|
+
171
|
1822
|
+
172
|
1823
|
+
173
|
1824
|
+
174
|
1825
|
+
175</pre>
|
1826
|
+
</td>
|
1827
|
+
<td>
|
1828
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 165</span>
|
1829
|
+
|
1830
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_delegate_to_commands'>delegate_to_commands</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_command_klasses'>command_klasses</span><span class='rparen'>)</span>
|
1831
|
+
<span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
1832
|
+
<span class='id identifier rubyid_command_klasses'>command_klasses</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='op'>|</span>
|
1833
|
+
<span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_delegate_to_command'>delegate_to_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='rparen'>)</span>
|
1834
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_ok?'>ok?</span>
|
1835
|
+
<span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command_klass'>command_klass</span><span class='period'>.</span><span class='id identifier rubyid_command_name'>command_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed</span><span class='tstring_end'>"</span></span>
|
1836
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_result'>result</span>
|
1837
|
+
<span class='kw'>end</span>
|
1838
|
+
<span class='kw'>end</span>
|
1839
|
+
<span class='id identifier rubyid_result'>result</span>
|
1840
|
+
<span class='kw'>end</span></pre>
|
1841
|
+
</td>
|
1842
|
+
</tr>
|
1843
|
+
</table>
|
1844
|
+
</div>
|
1845
|
+
|
1846
|
+
<div class="method_details ">
|
1847
|
+
<h3 class="signature " id="err-instance_method">
|
1848
|
+
|
1849
|
+
#<strong>err</strong> ⇒ <tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>
|
1850
|
+
|
1851
|
+
|
1852
|
+
|
1853
|
+
|
1854
|
+
|
1855
|
+
</h3><div class="docstring">
|
1856
|
+
<div class="discussion">
|
1857
|
+
<p>Returns IO to use for sending messages to the standard error.</p>
|
1858
|
+
|
1859
|
+
|
1860
|
+
</div>
|
1861
|
+
</div>
|
1862
|
+
<div class="tags">
|
1863
|
+
|
1864
|
+
<p class="tag_title">Returns:</p>
|
1865
|
+
<ul class="return">
|
1866
|
+
|
1867
|
+
<li>
|
1868
|
+
|
1869
|
+
|
1870
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
1871
|
+
|
1872
|
+
|
1873
|
+
|
1874
|
+
—
|
1875
|
+
<div class='inline'><p>IO to use for sending messages to the standard error</p>
|
1876
|
+
</div>
|
1877
|
+
|
1878
|
+
</li>
|
1879
|
+
|
1880
|
+
</ul>
|
1881
|
+
|
1882
|
+
</div><table class="source_code">
|
1883
|
+
<tr>
|
1884
|
+
<td>
|
1885
|
+
<pre class="lines">
|
1886
|
+
|
1887
|
+
|
1888
|
+
251</pre>
|
1889
|
+
</td>
|
1890
|
+
<td>
|
1891
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 251</span>
|
1892
|
+
|
1893
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_err'>err</span> <span class='op'>=</span> <span class='ivar'>@err</span></pre>
|
1894
|
+
</td>
|
1895
|
+
</tr>
|
1896
|
+
</table>
|
1897
|
+
</div>
|
1898
|
+
|
1899
|
+
<div class="method_details ">
|
1900
|
+
<h3 class="signature " id="execute-instance_method">
|
1901
|
+
|
1902
|
+
#<strong>execute</strong> ⇒ <tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>
|
1903
|
+
|
1904
|
+
|
1905
|
+
|
1906
|
+
|
1907
|
+
|
1908
|
+
</h3><div class="docstring">
|
1909
|
+
<div class="discussion">
|
1910
|
+
<p>You must implement this to perform whatever action your command needs to perform. In order to do this, you will have access to:</p>
|
1911
|
+
|
1912
|
+
<ul>
|
1913
|
+
<li><span class='object_link'><a href="#options-instance_method" title="Brut::CLI::Command#options (method)">#options</a></span> - the command options passed on the command line</li>
|
1914
|
+
<li><span class='object_link'><a href="#global_options-instance_method" title="Brut::CLI::Command#global_options (method)">#global_options</a></span> - the global options passed on the command line</li>
|
1915
|
+
<li><span class='object_link'><a href="#args-instance_method" title="Brut::CLI::Command#args (method)">#args</a></span> - the args passed on the command line</li>
|
1916
|
+
<li><span class='object_link'><a href="#out-instance_method" title="Brut::CLI::Command#out (method)">#out</a></span> - an IO you should use to print messages to the standard out.</li>
|
1917
|
+
<li><span class='object_link'><a href="#err-instance_method" title="Brut::CLI::Command#err (method)">#err</a></span> - on IO you should use to print messages to the standard error.</li>
|
1918
|
+
<li><span class='object_link'><a href="#system!-instance_method" title="Brut::CLI::Command#system! (method)">#system!</a></span> - the method you should use to spawn child processes.</li>
|
1919
|
+
</ul>
|
1920
|
+
|
1921
|
+
|
1922
|
+
<p>something instead of raising an exception.</p>
|
1923
|
+
|
1924
|
+
|
1925
|
+
</div>
|
1926
|
+
</div>
|
1927
|
+
<div class="tags">
|
1928
|
+
|
1929
|
+
<p class="tag_title">Returns:</p>
|
1930
|
+
<ul class="return">
|
1931
|
+
|
1932
|
+
<li>
|
1933
|
+
|
1934
|
+
|
1935
|
+
<span class='type'>(<tt><span class='object_link'><a href="ExecutionResults/Result.html" title="Brut::CLI::ExecutionResults::Result (class)">Brut::CLI::ExecutionResults::Result</a></span></tt>)</span>
|
1936
|
+
|
1937
|
+
|
1938
|
+
|
1939
|
+
—
|
1940
|
+
<div class='inline'><p>a description of what happened during processing. It is preferable to try to return</p>
|
1941
|
+
</div>
|
1942
|
+
|
1943
|
+
</li>
|
1944
|
+
|
1945
|
+
</ul>
|
1946
|
+
<p class="tag_title">Raises:</p>
|
1947
|
+
<ul class="raise">
|
1948
|
+
|
1949
|
+
<li>
|
1950
|
+
|
1951
|
+
|
1952
|
+
<span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
|
1953
|
+
|
1954
|
+
|
1955
|
+
|
1956
|
+
—
|
1957
|
+
<div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span>.</p>
|
1958
|
+
</div>
|
1959
|
+
|
1960
|
+
</li>
|
1961
|
+
|
1962
|
+
<li>
|
1963
|
+
|
1964
|
+
|
1965
|
+
<span class='type'>(<tt>StandardError</tt>)</span>
|
1966
|
+
|
1967
|
+
|
1968
|
+
|
1969
|
+
—
|
1970
|
+
<div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
|
1971
|
+
</div>
|
1972
|
+
|
1973
|
+
</li>
|
1974
|
+
|
1975
|
+
</ul>
|
1976
|
+
|
1977
|
+
</div><table class="source_code">
|
1978
|
+
<tr>
|
1979
|
+
<td>
|
1980
|
+
<pre class="lines">
|
1981
|
+
|
1982
|
+
|
1983
|
+
190
|
1984
|
+
191
|
1985
|
+
192</pre>
|
1986
|
+
</td>
|
1987
|
+
<td>
|
1988
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 190</span>
|
1989
|
+
|
1990
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span>
|
1991
|
+
<span class='id identifier rubyid_abstract_method!'>abstract_method!</span>
|
1992
|
+
<span class='kw'>end</span></pre>
|
1993
|
+
</td>
|
1994
|
+
</tr>
|
1995
|
+
</table>
|
1996
|
+
</div>
|
1997
|
+
|
1998
|
+
<div class="method_details ">
|
1999
|
+
<h3 class="signature " id="global_options-instance_method">
|
2000
|
+
|
2001
|
+
#<strong>global_options</strong> ⇒ <tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>
|
2002
|
+
|
2003
|
+
|
2004
|
+
|
2005
|
+
|
2006
|
+
|
2007
|
+
</h3><div class="docstring">
|
2008
|
+
<div class="discussion">
|
2009
|
+
<p>Returns the global options parsed on the command line.</p>
|
2010
|
+
|
2011
|
+
|
2012
|
+
</div>
|
2013
|
+
</div>
|
2014
|
+
<div class="tags">
|
2015
|
+
|
2016
|
+
<p class="tag_title">Returns:</p>
|
2017
|
+
<ul class="return">
|
2018
|
+
|
2019
|
+
<li>
|
2020
|
+
|
2021
|
+
|
2022
|
+
<span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
|
2023
|
+
|
2024
|
+
|
2025
|
+
|
2026
|
+
—
|
2027
|
+
<div class='inline'><p>the global options parsed on the command line</p>
|
2028
|
+
</div>
|
2029
|
+
|
2030
|
+
</li>
|
2031
|
+
|
2032
|
+
</ul>
|
2033
|
+
|
2034
|
+
</div><table class="source_code">
|
2035
|
+
<tr>
|
2036
|
+
<td>
|
2037
|
+
<pre class="lines">
|
2038
|
+
|
2039
|
+
|
2040
|
+
242
|
2041
|
+
243
|
2042
|
+
244</pre>
|
2043
|
+
</td>
|
2044
|
+
<td>
|
2045
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 242</span>
|
2046
|
+
|
2047
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_global_options'>global_options</span> <span class='op'>=</span> <span class='ivar'>@global_options</span>
|
2048
|
+
<span class='comment'># @!visibility public
|
2049
|
+
</span><span class='comment'># @return [Array<String>] the arguments parsed from the command line</span></pre>
|
2050
|
+
</td>
|
2051
|
+
</tr>
|
2052
|
+
</table>
|
2053
|
+
</div>
|
2054
|
+
|
2055
|
+
<div class="method_details ">
|
2056
|
+
<h3 class="signature " id="handle_bootstrap_exception-instance_method">
|
2057
|
+
|
2058
|
+
#<strong>handle_bootstrap_exception</strong>(ex) ⇒ <tt>void</tt>
|
2059
|
+
|
2060
|
+
|
2061
|
+
|
2062
|
+
|
2063
|
+
|
2064
|
+
</h3><div class="docstring">
|
2065
|
+
<div class="discussion">
|
2066
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>Called if there is an exception during bootstrapping. By default, it re-raises the exception, which cases the command to abort.
|
2067
|
+
The reason you may want to overrid this is that your command line app may exist to handle a bootstrapping exception. For example,
|
2068
|
+
the built-in <span class='object_link'><a href="Apps/DB.html" title="Brut::CLI::Apps::DB (class)">Apps::DB</a></span> app will catch various database connection errors and then create or migrate the database.</p>
|
2069
|
+
|
2070
|
+
<p>Yes, I realize this means we are using exceptions for control flow. It's fine.</p>
|
2071
|
+
|
2072
|
+
|
2073
|
+
</div>
|
2074
|
+
</div>
|
2075
|
+
<div class="tags">
|
2076
|
+
<p class="tag_title">Parameters:</p>
|
2077
|
+
<ul class="param">
|
2078
|
+
|
2079
|
+
<li>
|
2080
|
+
|
2081
|
+
<span class='name'>ex</span>
|
2082
|
+
|
2083
|
+
|
2084
|
+
<span class='type'>(<tt>StandardError</tt>)</span>
|
2085
|
+
|
2086
|
+
|
2087
|
+
|
2088
|
+
—
|
2089
|
+
<div class='inline'><p>whichever exception was caught during bootstrapping</p>
|
2090
|
+
</div>
|
2091
|
+
|
2092
|
+
</li>
|
2093
|
+
|
2094
|
+
</ul>
|
2095
|
+
|
2096
|
+
<p class="tag_title">Raises:</p>
|
2097
|
+
<ul class="raise">
|
2098
|
+
|
2099
|
+
<li>
|
2100
|
+
|
2101
|
+
|
2102
|
+
<span class='type'>(<tt>Brurt::CLI::Error</tt>)</span>
|
2103
|
+
|
2104
|
+
|
2105
|
+
|
2106
|
+
—
|
2107
|
+
<div class='inline'><p>if thrown, this will be caught and handled by <span class='object_link'><a href="AppRunner.html" title="Brut::CLI::AppRunner (class)">AppRunner</a></span> and execution will be aborted.</p>
|
2108
|
+
</div>
|
2109
|
+
|
2110
|
+
</li>
|
2111
|
+
|
2112
|
+
<li>
|
2113
|
+
|
2114
|
+
|
2115
|
+
<span class='type'>(<tt>StandardError</tt>)</span>
|
2116
|
+
|
2117
|
+
|
2118
|
+
|
2119
|
+
—
|
2120
|
+
<div class='inline'><p>if thrown, this will bubble up and show your user a very sad stack trace that will make them cry. Don't.</p>
|
2121
|
+
</div>
|
2122
|
+
|
2123
|
+
</li>
|
2124
|
+
|
2125
|
+
</ul>
|
2126
|
+
|
2127
|
+
</div><table class="source_code">
|
2128
|
+
<tr>
|
2129
|
+
<td>
|
2130
|
+
<pre class="lines">
|
2131
|
+
|
2132
|
+
|
2133
|
+
218
|
2134
|
+
219
|
2135
|
+
220</pre>
|
2136
|
+
</td>
|
2137
|
+
<td>
|
2138
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 218</span>
|
2139
|
+
|
2140
|
+
<span class='kw'>def</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>
|
2141
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_ex'>ex</span>
|
2142
|
+
<span class='kw'>end</span></pre>
|
2143
|
+
</td>
|
2144
|
+
</tr>
|
2145
|
+
</table>
|
2146
|
+
</div>
|
2147
|
+
|
2148
|
+
<div class="method_details ">
|
2149
|
+
<h3 class="signature " id="options-instance_method">
|
2150
|
+
|
2151
|
+
#<strong>options</strong> ⇒ <tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>
|
2152
|
+
|
2153
|
+
|
2154
|
+
|
2155
|
+
|
2156
|
+
|
2157
|
+
</h3><div class="docstring">
|
2158
|
+
<div class="discussion">
|
2159
|
+
<p>Returns the command options parsed on the command line.</p>
|
2160
|
+
|
2161
|
+
|
2162
|
+
</div>
|
2163
|
+
</div>
|
2164
|
+
<div class="tags">
|
2165
|
+
|
2166
|
+
<p class="tag_title">Returns:</p>
|
2167
|
+
<ul class="return">
|
2168
|
+
|
2169
|
+
<li>
|
2170
|
+
|
2171
|
+
|
2172
|
+
<span class='type'>(<tt><span class='object_link'><a href="Options.html" title="Brut::CLI::Options (class)">Brut::CLI::Options</a></span></tt>)</span>
|
2173
|
+
|
2174
|
+
|
2175
|
+
|
2176
|
+
—
|
2177
|
+
<div class='inline'><p>the command options parsed on the command line</p>
|
2178
|
+
</div>
|
2179
|
+
|
2180
|
+
</li>
|
2181
|
+
|
2182
|
+
</ul>
|
2183
|
+
|
2184
|
+
</div><table class="source_code">
|
2185
|
+
<tr>
|
2186
|
+
<td>
|
2187
|
+
<pre class="lines">
|
2188
|
+
|
2189
|
+
|
2190
|
+
239
|
2191
|
+
240
|
2192
|
+
241</pre>
|
2193
|
+
</td>
|
2194
|
+
<td>
|
2195
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 239</span>
|
2196
|
+
|
2197
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command_options</span>
|
2198
|
+
<span class='comment'># @!visibility public
|
2199
|
+
</span><span class='comment'># @return [Brut::CLI::Options] the global options parsed on the command line</span></pre>
|
2200
|
+
</td>
|
2201
|
+
</tr>
|
2202
|
+
</table>
|
2203
|
+
</div>
|
2204
|
+
|
2205
|
+
<div class="method_details ">
|
2206
|
+
<h3 class="signature " id="out-instance_method">
|
2207
|
+
|
2208
|
+
#<strong>out</strong> ⇒ <tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>
|
2209
|
+
|
2210
|
+
|
2211
|
+
|
2212
|
+
|
2213
|
+
|
2214
|
+
</h3><div class="docstring">
|
2215
|
+
<div class="discussion">
|
2216
|
+
<p>Returns IO to use for sending messages to the standard output.</p>
|
2217
|
+
|
2218
|
+
|
2219
|
+
</div>
|
2220
|
+
</div>
|
2221
|
+
<div class="tags">
|
2222
|
+
|
2223
|
+
<p class="tag_title">Returns:</p>
|
2224
|
+
<ul class="return">
|
2225
|
+
|
2226
|
+
<li>
|
2227
|
+
|
2228
|
+
|
2229
|
+
<span class='type'>(<tt><span class='object_link'><a href="Output.html" title="Brut::CLI::Output (class)">Brut::CLI::Output</a></span></tt>)</span>
|
2230
|
+
|
2231
|
+
|
2232
|
+
|
2233
|
+
—
|
2234
|
+
<div class='inline'><p>IO to use for sending messages to the standard output</p>
|
2235
|
+
</div>
|
2236
|
+
|
2237
|
+
</li>
|
2238
|
+
|
2239
|
+
</ul>
|
2240
|
+
|
2241
|
+
</div><table class="source_code">
|
2242
|
+
<tr>
|
2243
|
+
<td>
|
2244
|
+
<pre class="lines">
|
2245
|
+
|
2246
|
+
|
2247
|
+
248
|
2248
|
+
249
|
2249
|
+
250</pre>
|
2250
|
+
</td>
|
2251
|
+
<td>
|
2252
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 248</span>
|
2253
|
+
|
2254
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='ivar'>@out</span>
|
2255
|
+
<span class='comment'># @!visibility public
|
2256
|
+
</span><span class='comment'># @return [Brut::CLI::Output] IO to use for sending messages to the standard error</span></pre>
|
2257
|
+
</td>
|
2258
|
+
</tr>
|
2259
|
+
</table>
|
2260
|
+
</div>
|
2261
|
+
|
2262
|
+
<div class="method_details ">
|
2263
|
+
<h3 class="signature " id="system!-instance_method">
|
2264
|
+
|
2265
|
+
#<strong>system!</strong>(*args) ⇒ <tt>true</tt>
|
2266
|
+
|
2267
|
+
|
2268
|
+
|
2269
|
+
|
2270
|
+
|
2271
|
+
</h3><div class="docstring">
|
2272
|
+
<div class="discussion">
|
2273
|
+
<p>Convienince method to call <span class='object_link'><a href="Executor.html#system!-instance_method" title="Brut::CLI::Executor#system! (method)">Executor#system!</a></span> on the executor given in the constructor.</p>
|
2274
|
+
|
2275
|
+
|
2276
|
+
</div>
|
2277
|
+
</div>
|
2278
|
+
<div class="tags">
|
2279
|
+
<p class="tag_title">Parameters:</p>
|
2280
|
+
<ul class="param">
|
2281
|
+
|
2282
|
+
<li>
|
2283
|
+
|
2284
|
+
<span class='name'>args</span>
|
2285
|
+
|
2286
|
+
|
2287
|
+
<span class='type'>(<tt>String|Array</tt>)</span>
|
2288
|
+
|
2289
|
+
|
2290
|
+
|
2291
|
+
—
|
2292
|
+
<div class='inline'><p>Whatever you would give to <code>Kernel#system</code> or <code>Open3.popen3</code>.</p>
|
2293
|
+
</div>
|
2294
|
+
|
2295
|
+
</li>
|
2296
|
+
|
2297
|
+
</ul>
|
2298
|
+
|
2299
|
+
<p class="tag_title">Returns:</p>
|
2300
|
+
<ul class="return">
|
2301
|
+
|
2302
|
+
<li>
|
2303
|
+
|
2304
|
+
|
2305
|
+
<span class='type'>(<tt>true</tt>)</span>
|
2306
|
+
|
2307
|
+
|
2308
|
+
|
2309
|
+
</li>
|
2310
|
+
|
2311
|
+
</ul>
|
2312
|
+
|
2313
|
+
</div><table class="source_code">
|
2314
|
+
<tr>
|
2315
|
+
<td>
|
2316
|
+
<pre class="lines">
|
2317
|
+
|
2318
|
+
|
2319
|
+
154</pre>
|
2320
|
+
</td>
|
2321
|
+
<td>
|
2322
|
+
<pre class="code"><span class="info file"># File 'lib/brut/cli/command.rb', line 154</span>
|
2323
|
+
|
2324
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_system!'>system!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='ivar'>@executor</span><span class='period'>.</span><span class='id identifier rubyid_system!'>system!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span></pre>
|
2325
|
+
</td>
|
2326
|
+
</tr>
|
2327
|
+
</table>
|
2328
|
+
</div>
|
2329
|
+
|
2330
|
+
</div>
|
2331
|
+
|
2332
|
+
</div>
|
2333
|
+
|
2334
|
+
<div id="footer">
|
2335
|
+
Generated on Wed Jun 25 22:57:20 2025 by
|
2336
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
2337
|
+
0.9.37 (ruby-3.4.4).
|
2338
|
+
</div>
|
2339
|
+
|
2340
|
+
</div>
|
2341
|
+
</body>
|
2342
|
+
</html>
|