Class: RepeatTest::Parser

Inherits:
RSpec::Core::Parser
  • Object
show all
Defined in:
lib/repeat_test/parser.rb

Overview

Parser class to parse the command line arguments

Class Method Summary collapse

Class Method Details

.parse(args) ⇒ Object

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/repeat_test/parser.rb', line 11

def self.parse(args)
  options = {}
  begin
    OptionParser.new do |opts|
      opts.banner = "Usage: repeat_test [options] files or directories"

      opts.on("-i", "--iterations [ITERATIONS]", Integer, "Number of iterations") do |iterations|
        options[:iterations] = iterations
      end

      opts.on("-f", "--files [FILES]", Array, "Files or directories to run") do |files|
        options[:files] = files
      end
    end.parse!(args)
  rescue OptionParser::InvalidOption
    # nothing
  end

  args.delete("-i")
  args.delete(options[:iterations].to_s)
  args.delete("-f")
  args.delete(options[:files])

  rspec_core_options = super(args)
  options.merge(rspec_core_options)
end