Class: Evilution::CLI::Parser::CommandExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/cli/parser/command_extractor.rb

Defined Under Namespace

Classes: Result

Constant Summary collapse

SIMPLE_COMMANDS =
{
  "version" => :version,
  "init" => :init,
  "mcp" => :mcp,
  "subjects" => :subjects,
  "compare" => :compare
}.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
SUBCOMMAND_FAMILIES =
{
  "session" => [SESSION_SUBCOMMANDS, "session", "list, show, diff, gc"],
  "tests" => [TESTS_SUBCOMMANDS, "tests", "list"],
  "environment" => [ENVIRONMENT_SUBCOMMANDS, "environment", "show"],
  "util" => [UTIL_SUBCOMMANDS, "util", "mutation"]
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ CommandExtractor

Returns a new instance of CommandExtractor.



36
37
38
39
40
# File 'lib/evilution/cli/parser/command_extractor.rb', line 36

def initialize(argv)
  @argv = argv.dup
  @command = :run
  @parse_error = nil
end

Class Method Details

.call(argv) ⇒ Object



32
33
34
# File 'lib/evilution/cli/parser/command_extractor.rb', line 32

def self.call(argv)
  new(argv).call
end

Instance Method Details

#callObject



42
43
44
45
# File 'lib/evilution/cli/parser/command_extractor.rb', line 42

def call
  extract
  Result.new(@command, @argv, @parse_error)
end