Class: ActiveMutator::Engine
- Inherits:
-
Object
- Object
- ActiveMutator::Engine
- Defined in:
- lib/active_mutator/engine.rb
Instance Method Summary collapse
- #analyze(subject, source: File.read(subject.file)) ⇒ Object
-
#initialize(operators: Operators::Base.all) ⇒ Engine
constructor
A new instance of Engine.
Constructor Details
Instance Method Details
#analyze(subject, source: File.read(subject.file)) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/active_mutator/engine.rb', line 7 def analyze(subject, source: File.read(subject.file)) result = Prism.parse(source) raise Error, "#{subject.file} no longer parses" unless result.success? def_node = find_def(result.value, subject.byte_range.begin) raise Error, "subject not found: #{subject.name}" unless def_node invalid = 0 mutations = collect_edits(def_node).filter_map do |edit| mutation, valid = build_mutation(subject, source, edit) invalid += 1 unless valid mutation end Analysis.new(mutations: mutations, invalid_count: invalid) end |