lib/simplecov-lcov.rb in simplecov-lcov-0.1.4 vs lib/simplecov-lcov.rb in simplecov-lcov-0.2.0
- old
+ new
@@ -9,20 +9,40 @@
# generate lcov style coverage.
# ==== Args
# _result_ :: [SimpleCov::Result] abcoverage result instance.
def format(result)
create_output_directory!
- result.files.each { |file| write_lcov!(file) }
+ if self.class.report_with_single_file?
+ write_lcov_to_single_file!(result.files)
+ else
+ result.files.each { |file| write_lcov!(file) }
+ end
puts "Lcov style coverage report generated for #{result.command_name} to #{SimpleCov::Formatter::LcovFormatter.output_directory}."
end
- # Output directory for generated files.
- # ==== Return
- # Path for output directory.
- def self.output_directory
- File.join(SimpleCov.coverage_path, 'lcov')
+ class << self
+ attr_writer :report_with_single_file
+
+ def report_with_single_file?
+ !!@report_with_single_file
+ end
+
+ # Output directory for generated files.
+ # ==== Return
+ # Path for output directory.
+ def output_directory
+ File.join(SimpleCov.coverage_path, 'lcov')
+ end
+
+ # Output path for single file report.
+ # ==== Return
+ # Path for output path of single file report.
+ def single_report_path
+ basename = Pathname.new(SimpleCov.root).basename.to_s
+ File.join(output_directory, "#{basename}.lcov")
+ end
end
private
def create_output_directory!
@@ -31,9 +51,15 @@
end
def write_lcov!(file)
File.open(File.join(self.class.output_directory, output_filename(file.filename)), 'w') do |f|
f.write format_file(file)
+ end
+ end
+
+ def write_lcov_to_single_file!(files)
+ File.open(self.class.single_report_path, 'w') do |f|
+ files.each { |file| f.write format_file(file) }
end
end
def output_filename(filename)
filename.gsub("#{SimpleCov.root}/", '').gsub('/', '-')