Class: SimpleCov::Formatter::MurMurFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/simplecov-murmur/version.rb,
lib/simplecov-murmur.rb

Constant Summary collapse

VERSION =
"0.8.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.modeObject



9
10
11
# File 'lib/simplecov-murmur.rb', line 9

def self.mode
  @@mode ||= :short
end

.mode=(val) ⇒ Object



5
6
7
# File 'lib/simplecov-murmur.rb', line 5

def self.mode=(val)
  @@mode = val
end

Instance Method Details

#colorize(val) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/simplecov-murmur.rb', line 47

def colorize(val)
  ("%6.2f%" % val.round(2)).colorize(case val.to_i
    when  0..79 then :red
    when 80..89 then :yellow
    else :green
  end)
end

#format(result) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/simplecov-murmur.rb', line 17

def format(result)
  root    = Pathname.new(SimpleCov.root || Dir.pwd)
  report  = if result.groups.empty?
    message_per_group "All Files", result.files, root
  else
    result.groups.map do |name, files|
      message_per_group name, files, root
    end.join("\n")
  end
  report << "\n"

  puts report

  report
end

#message_per_file(file, root) ⇒ Object



40
41
42
43
44
45
# File 'lib/simplecov-murmur.rb', line 40

def message_per_file(file, root)
  percent   = file.covered_percent
  file_name = Pathname.new(file.filename).relative_path_from(root).to_s

  short? && percent == 100 ? nil : "  [#{colorize(percent)}] #{file_name}"
end

#message_per_group(name, files, root) ⇒ Object



33
34
35
36
37
38
# File 'lib/simplecov-murmur.rb', line 33

def message_per_group(name, files, root)
  message = files.sort {|a, b| a.covered_percent <=> b.covered_percent}
                 .map  {|file| message_per_file file, root}.compact.join("\n")

  [name.colorize(:blue) + ":", message].join("\n")
end

#short?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/simplecov-murmur.rb', line 13

def short?
  self.class.mode == :short
end