Class: Evilution::Runner::MutationPlanner
- Inherits:
-
Object
- Object
- Evilution::Runner::MutationPlanner
- Defined in:
- lib/evilution/runner/mutation_planner.rb
Defined Under Namespace
Classes: Plan
Instance Method Summary collapse
- #call(subjects) ⇒ Object
-
#initialize(config, registry:, disable_detector: Evilution::DisableComment.new, sig_detector: Evilution::AST::SorbetSigDetector.new) ⇒ MutationPlanner
constructor
A new instance of MutationPlanner.
Constructor Details
#initialize(config, registry:, disable_detector: Evilution::DisableComment.new, sig_detector: Evilution::AST::SorbetSigDetector.new) ⇒ MutationPlanner
Returns a new instance of MutationPlanner.
13 14 15 16 17 18 19 20 21 |
# File 'lib/evilution/runner/mutation_planner.rb', line 13 def initialize(config, registry:, disable_detector: Evilution::DisableComment.new, sig_detector: Evilution::AST::SorbetSigDetector.new) @config = config @registry = registry @disable_detector = disable_detector @sig_detector = sig_detector @disabled_ranges_cache = {} @sig_ranges_cache = {} end |
Instance Method Details
#call(subjects) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/evilution/runner/mutation_planner.rb', line 23 def call(subjects) mutations, generation_skipped = generate(subjects) mutations, disabled = filter_disabled(mutations) disabled.each(&:strip_sources!) if config.show_disabled? disabled_mutations = config.show_disabled? ? disabled : [] mutations, sig_skipped = filter_sig_blocks(mutations) equivalent, enabled = filter_equivalent(mutations) Plan.new( enabled: enabled, equivalent: equivalent, skipped_count: generation_skipped + disabled.length + sig_skipped, disabled_mutations: disabled_mutations ) end |