Class: Rcov::FullTextReport

Inherits:
Formatter show all
Defined in:
lib/rcov/report.rb

Overview

:nodoc:

Constant Summary collapse

DEFAULT_OPTS =
{:textmode => :coverage}

Instance Method Summary collapse

Methods inherited from Formatter

#add_file, #code_coverage, #each_file_pair_sorted, #mangle_filename, #normalize_filename, #num_code_lines, #num_lines, #sorted_file_pairs, #total_coverage

Constructor Details

#initialize(opts = {}) ⇒ FullTextReport

Returns a new instance of FullTextReport.



294
295
296
297
298
299
# File 'lib/rcov/report.rb', line 294

def initialize(opts = {})
    options = DEFAULT_OPTS.clone.update(opts)
    @textmode = options[:textmode]
    @color = options[:color]
    super(options)
end

Instance Method Details

#executeObject



301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
# File 'lib/rcov/report.rb', line 301

def execute
    each_file_pair_sorted do |filename, fileinfo|
        puts "=" * 80
        puts filename
        puts "=" * 80
        lines = SCRIPT_LINES__[filename]
        unless lines
            # try to get the source code from the global code coverage
            # analyzer
            re = /#{Regexp.escape(filename)}\z/
            if $rcov_code_coverage_analyzer and
                (data = $rcov_code_coverage_analyzer.data_matching(re))
                lines = data[0]
            end
        end
        (lines || []).each_with_index do |line, i|
            case @textmode
            when :counts
                puts "%-70s| %6d" % [line.chomp[0,70], fileinfo.counts[i]]
            when :gcc
                puts "%s:%d:%s" % [filename, i+1, line.chomp] unless fileinfo.coverage[i]
            when :coverage
                if @color
                    prefix = fileinfo.coverage[i] ? "\e[32;40m" : "\e[31;40m"
                    puts "#{prefix}%s\e[37;40m" % line.chomp
                else
                    prefix = fileinfo.coverage[i] ? "   " : "!! "
                    puts "#{prefix}#{line}"
                end
            end
        end
    end
end