class CodeClimate::TestReporter::CalculateBlob
def blob_id
def blob_id calculate_with_file or calculate_with_git end
def calculate_with_file
def calculate_with_file File.open(@file_path, "rb") do |file| header = "blob #{file.size}\0" content = file.read store = header + content return Digest::SHA1.hexdigest(store) end rescue EncodingError puts "WARNING: Unable to read #{@file_path}\nUsing git for blob calculation" nil end
def calculate_with_git
def calculate_with_git output = `git hash-object -t blob #{@file_path}`.chomp raise "ERROR: Failed to calculate blob with git" unless $?.success? output end
def initialize(file_path)
def initialize(file_path) @file_path = file_path end