class MetricFu::Templates::MetricsTemplate
Attributes
formatter[RW]
html[RW]
metrics[RW]
name[RW]
per_file_data[RW]
result[RW]
Public Instance Methods
html_filename(file)
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 26 def html_filename(file) file = Digest::SHA1.hexdigest(file)[0..29] "#{file.gsub(%r{/}, '_')}.html" end
write()
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 12 def write self.name = MetricFu.report_name self.metrics = {} copy_javascripts result.each_pair do |section, contents| write_section(section, contents) end write_index write_file_data end
Private Instance Methods
copy_javascripts()
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 33 def copy_javascripts FileUtils.mkdir_p(File.join(output_directory, "javascripts")) Dir[File.join(template_directory, "javascripts", "*")].each do |f| FileUtils.cp(f, File.join(output_directory, "javascripts", File.basename(f))) end end
template_directory()
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 82 def template_directory File.dirname(__FILE__) end
write_file_data()
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 69 def write_file_data per_file_data.each_pair do |file, lines| next if file.to_s.empty? next unless File.file?(file) report = MetricFu::Templates::Report.new(file, lines).render dir = "codes/" + File.dirname(file) FileUtils.mkdir_p(File.join(output_directory, dir)) fn = File.basename(file) + ".html" formatter.write_template(report, "#{dir}/#{fn}") end end
write_index()
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 57 def write_index # Instance variables we need should already be created from above if template_exists?("index") self.html = erbify("index") layout = erbify("layout") fn = output_filename("index") formatter.write_template(layout, fn) else mf_debug "no template for section index for result #{result.class}" end end
write_section(section, contents)
click to toggle source
# File lib/metric_fu/templates/metrics_template.rb, line 40 def write_section(section, contents) if template_exists?(section) create_instance_var(section, contents) metrics[section] = contents create_instance_var(:per_file_data, per_file_data) mf_debug "Generating html for section #{section} with #{template(section)} for result #{result.class}" self.html = erbify(section) layout = erbify("layout") dir = "results" FileUtils.mkdir_p(File.join(output_directory, dir)) fn = output_filename(section) formatter.write_template(layout, "#{dir}/#{fn}") else mf_debug "no template for section #{section} with #{template(section)} for result #{result.class}" end end