free_mutant/lib/mutant/config.rb
2014-06-28 23:04:18 +00:00

54 lines
1 KiB
Ruby

module Mutant
# The configuration of a mutator run
class Config
include Adamantium::Flat, Anima.new(
:debug,
:integration,
:matcher,
:reporter,
:fail_fast,
:zombie,
:expected_coverage
)
# Enumerate subjects
#
# @api private
#
# @return [self]
# if block given
#
# @return [Enumerator<Subject>]
# otherwise
#
# @api private
#
def subjects(&block)
return to_enum(__method__) unless block_given?
matcher.each(&block)
self
end
# Return tests for mutation
#
# TODO: This logic is now centralized but still fucked.
#
# @param [Mutation] mutation
#
# @return [Enumerable<Test>]
#
# @api private
#
def tests(subject)
subject.match_expressions.each do |match_expression|
tests = integration.all_tests.select do |test|
match_expression.prefix?(test.expression)
end
return tests if tests.any?
end
EMPTY_ARRAY
end
end # Config
end # Mutant