class ParallelTests::Cucumber::Runner

def self.cucumber_opts

def self.cucumber_opts
  config = 'config/cucumber.yml'
  if File.exists?(config) && File.read(config) =~ /^parallel:/
    "--profile parallel"
  end
end

def self.executable

def self.executable
  if ParallelTests.bundler_enabled?
    "bundle exec cucumber"
  elsif File.file?("script/cucumber")
    "script/cucumber"
  else
    "cucumber"
  end
end

def self.line_is_result?(line)

def self.line_is_result?(line)
  line =~ /^\d+ (steps|scenarios)/
end

def self.run_tests(test_files, process_number, options)

def self.run_tests(test_files, process_number, options)
  color = ($stdout.tty? ? 'AUTOTEST=1 ; export AUTOTEST ;' : '')#display color when we are in a terminal
  runtime_logging = " --format ParallelTests::Cucumber::RuntimeLogger --out #{runtime_log}"
  cmd = [
    color,
    executable,
    (runtime_logging if File.directory?(File.dirname(runtime_log))),
    options[:test_options],
    cucumber_opts,
    *test_files
  ].compact.join(" ")
  execute_command(cmd, process_number, options)
end

def self.runtime_log

def self.runtime_log
  'tmp/parallel_runtime_cucumber.log'
end

def self.test_file_name

def self.test_file_name
  "feature"
end

def self.test_suffix

def self.test_suffix
  ".feature"
end