Class: Rcov::Formatters::HTMLProfiling

Inherits:
HTMLCoverage show all
Defined in:
lib/rcov/formatters/html_profiling.rb

Constant Summary collapse

DEFAULT_OPTS =
{ :destdir => "profiling" }

Constants inherited from BaseFormatter

BaseFormatter::RCOV_IGNORE_REGEXPS

Instance Method Summary collapse

Methods inherited from HTMLCoverage

#execute

Methods inherited from BaseFormatter

#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 = {}) ⇒ HTMLProfiling

Returns a new instance of HTMLProfiling.



6
7
8
9
10
11
# File 'lib/rcov/formatters/html_profiling.rb', line 6

def initialize(opts = {})
  options = DEFAULT_OPTS.clone.update(opts)
  super(options)
  @max_cache = {}
  @median_cache = {}
end

Instance Method Details

#default_colorObject



17
18
19
20
21
22
23
# File 'lib/rcov/formatters/html_profiling.rb', line 17

def default_color
  if @color
    "rgb(179,205,255)"
  else
    "rgb(255, 255, 255)"
  end
end

#default_titleObject



13
14
15
# File 'lib/rcov/formatters/html_profiling.rb', line 13

def default_title
  "Bogo-profile information"
end

#output_color_table?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/rcov/formatters/html_profiling.rb', line 25

def output_color_table?
  false
end

#span_class(sourceinfo, marked, count) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rcov/formatters/html_profiling.rb', line 29

def span_class(sourceinfo, marked, count)
  full_scale_range = @fsr # dB
  nz_count = sourceinfo.counts.select{ |x| x && x != 0 }
  nz_count << 1 # avoid div by 0
  max = @max_cache[sourceinfo] ||= nz_count.max
  median = @median_cache[sourceinfo] ||= 1.0 * nz_count.sort[nz_count.size/2]
  max ||= 2
  max = 2 if max == 1

  if marked == true
    count = 1 if !count || count == 0
    idx = 50 + 1.0 * (500/full_scale_range) * Math.log(count/median) / Math.log(10)
    idx = idx.to_i
    idx = 0 if idx < 0
    idx = 100 if idx > 100
    "run#{idx}"
  else
    nil
  end
end