37 lines
974 B
Ruby
37 lines
974 B
Ruby
if ENV['COVERAGE'] == "1"
|
|
|
|
SimpleCov.start do
|
|
add_filter "/test/"
|
|
add_filter "/bin/"
|
|
add_filter "/scripts/"
|
|
add_filter "/tmp/"
|
|
add_filter "/vendor/"
|
|
add_filter "/spec/"
|
|
end
|
|
|
|
all_files = Dir['**/*.rb']
|
|
base_result = {}
|
|
all_files.each do |file|
|
|
absolute = File::expand_path(file)
|
|
lines = File.readlines(absolute, :encoding => 'UTF-8')
|
|
base_result[absolute] = lines.map do |l|
|
|
l.encode!('UTF-16', 'UTF-8', :invalid => :replace, :replace => '')
|
|
l.encode!('UTF-8', 'UTF-16')
|
|
l.strip!
|
|
l.empty? || l =~ /^end$/ || l[0] == '#' ? nil : 0
|
|
end
|
|
end
|
|
|
|
SimpleCov.at_exit do
|
|
coverage_result = Coverage.result
|
|
covered_files = coverage_result.keys
|
|
covered_files.each do |covered_file|
|
|
base_result.delete(covered_file)
|
|
end
|
|
merged = SimpleCov::Result.new(coverage_result).original_result.merge_resultset(base_result)
|
|
result = SimpleCov::Result.new(merged)
|
|
result.format!
|
|
end
|
|
|
|
end
|