Class: MetricFu::Rcov

Inherits:
Generator show all
Defined in:
lib/generators/rcov.rb

Defined Under Namespace

Classes: Line

Constant Summary collapse

NEW_FILE_MARKER =
("=" * 80) + "\n"

Instance Attribute Summary

Attributes inherited from Generator

#report, #template

Instance Method Summary collapse

Methods inherited from Generator

class_name, #create_data_dir_if_missing, #create_metric_dir_if_missing, #create_output_dir_if_missing, generate_report, #generate_report, #initialize, #metric_directory, metric_directory, #remove_excluded_files, #round_to_tenths, #to_graph, verify_dependencies!

Constructor Details

This class inherits a constructor from MetricFu::Generator

Instance Method Details

#analyzeObject


32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/generators/rcov.rb', line 32

def analyze
  output = File.open(MetricFu::Rcov.metric_directory + '/rcov.txt').read
  output = output.split(NEW_FILE_MARKER)
  
  output.shift # Throw away the first entry - it's the execution time etc.
  
  files = assemble_files(output)

  @global_total_lines = 0
  @global_total_lines_run = 0
  
  @rcov = add_coverage_percentage(files)
end

#emitObject


21
22
23
24
25
26
27
28
29
# File 'lib/generators/rcov.rb', line 21

def emit
  FileUtils.rm_rf(MetricFu::Rcov.metric_directory, :verbose => false)
  Dir.mkdir(MetricFu::Rcov.metric_directory)
  test_files = FileList[*MetricFu.rcov[:test_files]].join(' ')
  rcov_opts = MetricFu.rcov[:rcov_opts].join(' ')
  output = ">> #{MetricFu::Rcov.metric_directory}/rcov.txt"
  puts "** Running the specs/tests in the [#{MetricFu.rcov[:environment]}] environment"
  `RAILS_ENV=#{MetricFu.rcov[:environment]} rcov #{test_files} #{rcov_opts} #{output}`
end

#to_hObject


46
47
48
49
# File 'lib/generators/rcov.rb', line 46

def to_h
  global_percent_run = ((@global_total_lines_run.to_f / @global_total_lines.to_f) * 100)
  {:rcov => @rcov.merge({:global_percent_run => round_to_tenths(global_percent_run) })}   
end