Class: MetricFu::Templates::Report

Inherits:
MetricFu::Template show all
Defined in:
lib/metric_fu/templates/report.rb

Instance Attribute Summary

Attributes inherited from MetricFu::Template

#output_directory

Instance Method Summary collapse

Methods inherited from MetricFu::Template

#render_partial

Constructor Details

#initialize(file, lines) ⇒ Report

Returns a new instance of Report.

Examples:

file and lines

file: "lib/metric_fu/gem_version.rb
lines: {"30"=>[{:type=>:flog, :description=>"Score of 22.43"}], "42"=>[{:type=>:flog, :description=>"Score of 8.64"}]}

Parameters:

  • file (String)

    the analyzed file to annotate

  • lines (Hash)

    of line number [String] keyed to an list [[Array] of metrics for that line. Each metric in the list is a hash containing the keys :type => metric_name, :descrption => metric_score



14
15
16
17
18
# File 'lib/metric_fu/templates/report.rb', line 14

def initialize(file, lines)
  @file = file
  @lines = lines
  @data = File.open(file, "rb") { |f| f.readlines }
end

Instance Method Details

#convert_ruby_to_html(ruby_text, line_number) ⇒ Object



24
25
26
# File 'lib/metric_fu/templates/report.rb', line 24

def convert_ruby_to_html(ruby_text, line_number)
  MetricFu::Formatter::Syntax.new.highlight(ruby_text, line_number)
end

#line_for_display(line, line_number) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/metric_fu/templates/report.rb', line 28

def line_for_display(line, line_number)
  if MetricFu::Formatter::Templates.option("syntax_highlighting")
    line_for_display = convert_ruby_to_html(line, line_number)
  else
    "<a name='n#{line_number}' href='n#{line_number}'>#{line_number}</a>#{line}"
 end
end

#renderObject



20
21
22
# File 'lib/metric_fu/templates/report.rb', line 20

def render
  erbify("report")
end

#template_directoryObject



36
37
38
# File 'lib/metric_fu/templates/report.rb', line 36

def template_directory
  File.dirname(__FILE__)
end