class Cucumber::Cli::Configuration

def arrange_formats

def arrange_formats
  @options[:formats] << ['pretty', {}, @out_stream] if @options[:formats].empty?
  @options[:formats] = @options[:formats].sort_by do |f|
    f[2] == @out_stream ? -1 : 1
  end
  @options[:formats].uniq!
  @options.check_formatter_stream_conflicts()
end

def dry_run?

def dry_run?
  @options[:dry_run]
end

def expand?

def expand?
  @options[:expand]
end

def fail_fast?

def fail_fast?
  !!@options[:fail_fast]
end

def filters

def filters
  @options.filters
end

def formats

def formats
  @options[:formats]
end

def guess?

def guess?
  @options[:guess]
end

def initialize(out_stream = STDOUT, error_stream = STDERR)

def initialize(out_stream = STDOUT, error_stream = STDERR)
  @out_stream   = out_stream
  @error_stream = error_stream
  @options = Options.new(@out_stream, @error_stream, :default_profile => 'default')
end

def log

def log
  logger = Logger.new(@out_stream)
  logger.formatter = LogFormatter.new
  logger.level = Logger::INFO
  logger.level = Logger::DEBUG if self.verbose?
  logger
end

def name_regexps

def name_regexps
  @options[:name_regexps]
end

def parse!(args)

def parse!(args)
  @args = args
  @options.parse!(args)
  arrange_formats
  raise("You can't use both --strict and --wip") if strict.strict? && wip?
  set_environment_variables
end

def paths

def paths
  @options[:paths]
end

def randomize?

def randomize?
  @options[:order] == 'random'
end

def retry_attempts

def retry_attempts
  @options[:retry]
end

def seed

def seed
  Integer(@options[:seed] || rand(0xFFFF))
end

def set_environment_variables

def set_environment_variables
  @options[:env_vars].each do |var, value|
    ENV[var] = value
  end
end

def snippet_type

def snippet_type
  @options[:snippet_type] || :cucumber_expression
end

def strict

def strict
  @options[:strict]
end

def tag_expressions

def tag_expressions
  @options[:tag_expressions]
end

def tag_limits

def tag_limits
  @options[:tag_limits]
end

def to_hash

def to_hash
  Hash(@options).merge(out_stream: @out_stream, error_stream: @error_stream)
end

def verbose?

def verbose?
  @options[:verbose]
end

def wip?

def wip?
  @options[:wip]
end