class LetItCrash::Builders::FileBuilder
Constants
- ROOT
Attributes
file[R]
rewriter[R]
Public Class Methods
build(file:, rewriter:)
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 13 def self.build(file:, rewriter:) new(file: file, rewriter: rewriter).build end
new(file:, rewriter:)
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 17 def initialize(file:, rewriter:) @file = file @rewriter = rewriter end
Public Instance Methods
build()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 22 def build Proto::File.new( path: path, digest: digest, lines: relevant_lines, coverage: coverage, ) end
Private Instance Methods
coverage()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 50 def coverage return 1 if relevant_lines.empty? relevant_lines.values.count(&:positive?) / relevant_lines.count.to_f end
digest()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 64 def digest Digest::SHA256.file(filename).hexdigest end
path()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 35 def path Proto::File::Path.new( relative: relative, rewritten: rewritten, ) end
relative()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 55 def relative pathname = Pathname.new(filename) pathname.absolute? ? pathname.relative_path_from(ROOT).to_s : filename end
relevant_lines()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 42 def relevant_lines @relevant_lines ||= lines.each_with_object({}) do |line, ret| number = line.line_number relevant = sanitizer.include?(number) && !line.skipped? ret[number] = line.coverage.to_i if relevant end end
rewritten()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 60 def rewritten rewriter ? rewriter.call(relative) : '' end
sanitizer()
click to toggle source
# File lib/letitcrash/builders/file_builder.rb, line 68 def sanitizer @sanitizer ||= Sanitizer.from_path(path: filename) end