Class: Toys::StandardCLI
Overview
Subclass of Toys::CLI
configured for the behavior of the standard Toys
executable. Specifically, this subclass:
- Configures the standard names of files and directories, such as the
.toys.rb
file for an "index" tool, and the.data
and.lib
directory names. - Configures default descriptions for the root tool.
- Configures a default error handler and logger that provide ANSI-colored formatted output.
- Configures a set of middleware that implement online help, verbosity flags, and other features.
- Provides a set of standard templates for typical project build and maintenance scripts (suh as clean, test, and rubocop).
- Finds tool definitions in the standard Toys search path.
Constant Summary collapse
- CONFIG_DIR_NAME =
Standard toys configuration directory name.
".toys"
- CONFIG_FILE_NAME =
Standard toys configuration file name.
".toys.rb"
- INDEX_FILE_NAME =
Standard index file name in a toys configuration.
".toys.rb"
- PRELOAD_DIR_NAME =
Standard preload directory name in a toys configuration.
".preload"
- PRELOAD_FILE_NAME =
Standard preload file name in a toys configuration.
".preload.rb"
- DATA_DIR_NAME =
Standard data directory name in a toys configuration.
".data"
- LIB_DIR_NAME =
Standard lib directory name in a toys configuration.
".lib"
- EXECUTABLE_NAME =
Name of the standard toys executable.
"toys"
- EXTRA_DELIMITERS =
Delimiter characters recognized.
":."
- DEFAULT_ROOT_DESC =
Short description for the standard root tool.
"Your personal command line tool"
- DEFAULT_ROOT_LONG_DESC =
Help text for the standard root tool.
"Toys is your personal command line tool. You can write commands using a simple Ruby DSL," \ " and Toys will automatically organize them, parse arguments, and provide documentation." \ " Tools can be global or scoped to specific directories. You can also use Toys instead of" \ " Rake to provide build and maintenance scripts for your projects." \ " For detailed information, see https://dazuma.github.io/toys"
- DEFAULT_VERSION_FLAG_DESC =
Short description for the version flag.
"Show the version of Toys."
- TOYS_PATH_ENV =
Name of the toys path environment variable.
"TOYS_PATH"
Instance Attribute Summary
Attributes inherited from CLI
#base_level, #completion, #executable_name, #extra_delimiters, #loader, #logger, #logger_factory
Instance Method Summary collapse
-
#initialize(custom_paths: nil, include_builtins: true, cur_dir: nil) ⇒ StandardCLI
constructor
Create a standard CLI, configured with the appropriate paths and middleware.
Methods inherited from CLI
#add_config_block, #add_config_path, #add_search_path, #add_search_path_hierarchy, #child, default_completion, default_error_handler, default_logger_factory, default_middleware_lookup, default_middleware_stack, default_mixin_lookup, default_template_lookup, #load_tool, #run
Constructor Details
#initialize(custom_paths: nil, include_builtins: true, cur_dir: nil) ⇒ StandardCLI
Create a standard CLI, configured with the appropriate paths and middleware.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/toys/standard_cli.rb', line 115 def initialize(custom_paths: nil, include_builtins: true, cur_dir: nil) require "toys/utils/standard_ui" ui = Toys::Utils::StandardUI.new super( executable_name: EXECUTABLE_NAME, config_dir_name: CONFIG_DIR_NAME, config_file_name: CONFIG_FILE_NAME, index_file_name: INDEX_FILE_NAME, preload_file_name: PRELOAD_FILE_NAME, preload_dir_name: PRELOAD_DIR_NAME, data_dir_name: DATA_DIR_NAME, lib_dir_name: LIB_DIR_NAME, extra_delimiters: EXTRA_DELIMITERS, middleware_stack: default_middleware_stack, template_lookup: default_template_lookup, **ui.cli_args ) if custom_paths Array(custom_paths).each { |path| add_config_path(path) } else add_current_directory_paths(cur_dir) end add_builtins if include_builtins end |