Class: Evilution::CLI::Parser
- Inherits:
-
Object
- Object
- Evilution::CLI::Parser
- Defined in:
- lib/evilution/cli/parser.rb
Defined Under Namespace
Modules: FileArgs Classes: CommandExtractor, OptionsBuilder, StdinReader
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.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/evilution/cli/parser.rb', line 6 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
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/evilution/cli/parser.rb', line 17 def parse extract_command return build_parsed_args if @command == :parse_error preprocess_flags remaining = OptionsBuilder.build(@options).parse!(@argv) @files, @line_ranges = FileArgs.parse(remaining) read_stdin_files if @options.delete(:stdin) && %i[run subjects].include?(@command) build_parsed_args end |