lib/coverband/base.rb in coverband-0.0.24 vs lib/coverband/base.rb in coverband-0.0.26
- old
+ new
@@ -4,11 +4,12 @@
def initialize(options = {})
@project_directory = File.expand_path(Coverband.configuration.root)
@enabled = false
@tracer_set = false
@files = {}
- @file_usage = {}
+ @file_usage = Hash.new(0)
+ @file_line_usage = {}
@startup_delay = Coverband.configuration.startup_delay
@ignore_patterns = Coverband.configuration.ignore
@sample_percentage = Coverband.configuration.percentage
@reporter = Coverband::RedisStore.new(Coverband.configuration.redis) if Coverband.configuration.redis
@stats = Coverband.configuration.stats
@@ -81,42 +82,55 @@
end
def add_file(file, line)
if !file.match(/(\/gems\/|internal\:prelude)/) && file.match(@project_directory) && !@ignore_patterns.any?{|pattern| file.match(/#{pattern}/) }
if @verbose
- if @file_usage.include?(file)
- @file_usage[file] += 1
- else
- @file_usage[file] = 1
- end
+ @file_usage[file] += 1
+ @file_line_usage[file] = Hash.new(0) unless @file_line_usage.include?(file)
+ @file_line_usage[file][line] += 1
end
if @files.include?(file)
@files[file] << line unless @files.include?(line)
else
@files[file] = [line]
end
end
end
+
+ def output_file_line_usage
+ @logger.info "coverband debug coverband file:line usage:"
+ @file_line_usage.sort_by {|_key, value| value.length}.each do |pair|
+ file = pair.first
+ lines = pair.last
+ @logger.info "file: #{file} => #{lines.sort_by {|_key, value| value}}"
+ end
+ end
def report_coverage
unless @enabled
@logger.info "coverage disabled" if @verbose
return
end
unset_tracer
- @logger.info "coverband file usage: #{@file_usage.sort_by {|_key, value| value}.inspect}" if @verbose
+ if @verbose
+ @logger.info "coverband file usage: #{@file_usage.sort_by {|_key, value| value}.inspect}"
+ if @verbose=="debug"
+ output_file_line_usage
+ end
+ end
if @reporter
if @reporter.class.name.match(/redis/i)
before_time = Time.now
@stats.increment "coverband.files.recorded_files", @files.length if @stats
@reporter.store_report(@files)
time_spent = Time.now - before_time
@stats.timing "coverband.files.recorded_time", time_spent if @stats
@files = {}
- @@file_usage = {}
+ @file_usage = Hash.new(0)
+ @file_line_usage = {}
end
elsif @verbose
@logger.info "coverage report: "
@logger.info @files.inspect
end