Sha256: b6f7ee12893c5906671e9591f0a93542e5cf43d905ae255faed9dd370900b232
Contents?: true
Size: 1.8 KB
Versions: 3
Compression:
Stored size: 1.8 KB
Contents
# frozen_string_literal: true require "benchmark" require "crude_mutant/executor" require "crude_mutant/file_loader" require "crude_mutant/file_writer" require "crude_mutant/progress" require "crude_mutant/result" require "crude_mutant/result_printer" require "crude_mutant/run_result" require "crude_mutant/terminal_calculator" require "crude_mutant/version" module CrudeMutant class Error < StandardError; end class << self def start(file_path, test_command, &block) file = FileLoader.load(file_path) num_lines_in_file = file.lines_in_file test_runs = [] begin line_number = -1 test_runs = file.contents_as_array.reduce([]) do |acc, contents| line_number += 1 result = nil if contents.strip.size != 0 result = [perform_run( file, test_command, line_number )] else result = [NullRunResult.new(line_number)] end if block_given? block.call( Progress.new( num_lines_in_file, acc + result ) ) end acc + result end ensure FileWriter.write(file_path, file.contents_as_array) end ResultPrinter.print( Result.new(file_path, test_runs) ) end private def perform_run(file_loader, test_command, line_number) success = false bench = Benchmark.measure do FileWriter.write(file_loader.file_path, file_loader.without_line(line_number)) success = Executor.call(test_command) end RunResult.new( file_loader.file_path, line_number, success, file_loader.contents_as_array[line_number], bench ) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
crude-mutant-0.2.0 | lib/crude_mutant.rb |
crude-mutant-0.1.1 | lib/crude_mutant.rb |
crude-mutant-0.1.0 | lib/crude_mutant.rb |