class FTest::CLI::ArgvParser

Public Class Methods

call(argv) click to toggle source
# File lib/ftest/cli.rb, line 116
def self.call argv
  options = Options.build
  parser = ArgvParser.new argv, options
  parser.()
  options
end
new(argv, options) click to toggle source
# File lib/ftest/cli.rb, line 123
def initialize argv, options
  @argv = argv
  @options = options
end

Public Instance Methods

add_paths() click to toggle source
# File lib/ftest/cli.rb, line 133
def add_paths
  @argv << "tests" if @argv.empty?
  @argv.each do |path|
    @options.add_path path
  end
end
call() click to toggle source
# File lib/ftest/cli.rb, line 128
def call
  parse_options
  add_paths
end
parse_options() click to toggle source
# File lib/ftest/cli.rb, line 140
      def parse_options
        OptionParser.new do |opts|
          opts.banner = <<-BANNER
Usage: #{program_name} [options] [PATH1] [PATH2] … [PATHn]

If no PATH(s) are specified, ./tests is assumed

          BANNER

          opts.on "-b", "--full-backtrace", "Do not filter assertion stack traces" do
            @options.full_backtrace
          end

          opts.on "-f", "--fail-fast", "When any test script fails, exit immediately" do
            @options.fail_fast
          end

          opts.on "-h", "--help", "Print this message and exit successfully" do
            puts opts
            exit 0
          end

          opts.on "-m", "--monkeypatch", "Turn on monkeypatching (equivalent to `require \"ftest/script\"'" do
            require "ftest/script"
          end

          opts.on "-n", "--num=COUNT", "Max number of sub processes to run concurrently" do |num|
            @options.child_count = num
          end

          opts.on "-q", "--quiet", "Reduces log verbosity" do
            @options.quiet
          end

          opts.on "-r", "--reverse-traces", "Reverse the order of stack traces" do
            @options.reverse_backtraces
          end

          opts.on "-V", "--version", "Print version and exit successfully" do
            spec = Gem.loaded_specs["ftest"]
            version = if spec then spec.version else "(local)" end
            puts "Version: #{version}"
            exit 0
          end

          opts.on "-v", "--verbose", "Increases log verbosity" do
            @options.verbose
          end
        end.parse! @argv
      end
program_name() click to toggle source
# File lib/ftest/cli.rb, line 191
def program_name
  File.basename $PROGRAM_NAME
end