class Cucumber::Cli::Options

def reverse_merge(other_options)

def reverse_merge(other_options)
  @options = other_options.options.merge(@options)
  @options[:require] += other_options[:require]
  @options[:excludes] += other_options[:excludes]
  @options[:name_regexps] += other_options[:name_regexps]
  @options[:tag_expressions] += other_options[:tag_expressions]
  @options[:env_vars] = other_options[:env_vars].merge(@options[:env_vars])
  if @options[:paths].empty?
    @options[:paths] = other_options[:paths]
  else
    @overridden_paths += (other_options[:paths] - @options[:paths])
  end
  @options[:source] &= other_options[:source]
  @options[:snippets] &= other_options[:snippets]
  @options[:strict] |= other_options[:strict]
  @profiles += other_options.profiles
  @expanded_args += other_options.expanded_args
  if @options[:formats].empty?
    @options[:formats] = other_options[:formats]
  else
    @options[:formats] += other_options[:formats]
    @options[:formats] = stdout_formats[0..0] + non_stdout_formats
  end
  self
end