Module: Hoe::RCov

Defined in:
lib/hoe/rcov.rb

Overview

RCov plugin for hoe.

Tasks Provided:

rcov

Analyze code coverage with tests

Instance Method Summary (collapse)

Instance Method Details

- (Object) define_rcov_tasks

Define tasks for plugin.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hoe/rcov.rb', line 12

def define_rcov_tasks
  begin # take a whack at defining rcov tasks
    require 'rcov/rcovtask'

    Rcov::RcovTask.new do |t|
      pattern = ENV['PATTERN'] || test_globs

      t.test_files = FileList[pattern]
      t.verbose = true
      t.rcov_opts << Hoe::RUBY_FLAGS
      t.rcov_opts << "--no-color"
      t.rcov_opts << "--save coverage.info"
      t.rcov_opts << "-x ^/"
    end

    # this is for my emacs rcov overlay stuff on emacswiki.
    task :rcov_overlay do
      path = ENV["FILE"]
      rcov, eol = Marshal.load(File.read("coverage.info")).last[path], 1
      puts rcov[:lines].zip(rcov[:coverage]).map { |line, coverage|
        bol, eol = eol, eol + line.length
        [bol, eol, "#ffcccc"] unless coverage
      }.compact.inspect
    end
  rescue LoadError
    # skip
    task :clobber_rcov # in case rcov didn't load
  end
end