Class: Evilution::CLI::Parser
- Inherits:
-
Object
- Object
- Evilution::CLI::Parser
- Defined in:
- lib/evilution/cli/parser.rb
Constant Summary collapse
- SIMPLE_COMMANDS =
{ "version" => :version, "init" => :init, "mcp" => :mcp, "subjects" => :subjects }.freeze
- SESSION_SUBCOMMANDS =
{ "list" => :session_list, "show" => :session_show, "diff" => :session_diff, "gc" => :session_gc }.freeze
- TESTS_SUBCOMMANDS =
{ "list" => :tests_list }.freeze
- ENVIRONMENT_SUBCOMMANDS =
{ "show" => :environment_show }.freeze
- UTIL_SUBCOMMANDS =
{ "mutation" => :util_mutation }.freeze
Instance Method Summary collapse
-
#initialize(argv, stdin: $stdin) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
Constructor Details
#initialize(argv, stdin: $stdin) ⇒ Parser
Returns a new instance of Parser.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/evilution/cli/parser.rb', line 26 def initialize(argv, stdin: $stdin) @argv = argv.dup @stdin = stdin @options = {} @files = [] @line_ranges = {} @command = :run @parse_error = nil @stdin_error = nil end |
Instance Method Details
#parse ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/evilution/cli/parser.rb', line 37 def parse extract_command return build_parsed_args if @command == :parse_error preprocess_flags remaining = build_option_parser.parse!(@argv) @files, @line_ranges = parse_file_args(remaining) read_stdin_files if @options.delete(:stdin) && %i[run subjects].include?(@command) build_parsed_args end |