Class: Toys::StandardCLI

Inherits:
CLI
  • Object
show all
Defined in:
lib/toys/standard_cli.rb

Overview

Subclass of Toys::CLI configured for the behavior of the standard Toys executable.

Constant Summary collapse

CONFIG_DIR_NAME =

Standard toys configuration directory name.

Returns:

  • (String)
".toys"
CONFIG_FILE_NAME =

Standard toys configuration file name.

Returns:

  • (String)
".toys.rb"
INDEX_FILE_NAME =

Standard index file name in a toys configuration.

Returns:

  • (String)
".toys.rb"
PRELOAD_DIR_NAME =

Standard preload directory name in a toys configuration.

Returns:

  • (String)
".preload"
PRELOAD_FILE_NAME =

Standard preload file name in a toys configuration.

Returns:

  • (String)
".preload.rb"
DATA_DIR_NAME =

Standard data directory name in a toys configuration.

Returns:

  • (String)
".data"
LIB_DIR_NAME =

Standard lib directory name in a toys configuration.

Returns:

  • (String)
".lib"
EXECUTABLE_NAME =

Name of the standard toys executable.

Returns:

  • (String)
"toys"
EXTRA_DELIMITERS =

Delimiter characters recognized.

Returns:

  • (String)
":."
DEFAULT_ROOT_DESC =

Short description for the standard root tool.

Returns:

  • (String)
"Your personal command line tool"
DEFAULT_ROOT_LONG_DESC =

Help text for the standard root tool.

Returns:

  • (String)
"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.

Returns:

  • (String)
"Show the version of Toys."
TOYS_PATH_ENV =

Name of the toys path environment variable.

Returns:

  • (String)
"TOYS_PATH"

Instance Attribute Summary

Attributes inherited from CLI

#base_level, #completion, #executable_name, #extra_delimiters, #loader, #logger, #logger_factory

Instance Method Summary collapse

Methods inherited from CLI

#add_config_block, #add_config_path, #add_search_path, #add_search_path_hierarchy, #child, 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.

Parameters:

  • custom_paths (String, Array<String>) (defaults to: nil)

    Custom paths to use. If set, the CLI uses only the given paths. If not, the CLI will search for paths from the current directory and global paths.

  • include_builtins (boolean) (defaults to: true)

    Add the builtin tools. Default is true.

  • cur_dir (String, nil) (defaults to: nil)

    Starting search directory for configs. Defaults to the current working directory.



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/toys/standard_cli.rb', line 103

def initialize(custom_paths: nil,
               include_builtins: true,
               cur_dir: nil)
  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
  )
  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