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