Sha256: 9c40129fe136b437380fe07cd1a8f0a31de572c54c207cc0c988762872f25580

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

require 'erb'
require 'fileutils'

module MetricFu
  class Flay
  
    class << self
      def generate_report(options = {})
        puts Dir.pwd
        files_to_flay = MetricFu::CODE_DIRS.map{|dir| Dir[File.join(dir, "**/*.rb")] }
        output = `flay #{files_to_flay.join(" ")}`
        @matches = output.chomp.split("\n\n").map{|m| m.split("\n  ") }
        write_html_output("flay")
      end
    
    private
      def write_html_output(template_name)
        output_dir = File.join(MetricFu::BASE_DIRECTORY, template_name)
        FileUtils.mkdir_p(output_dir, :verbose => false)
        
        template_file = File.join(MetricFu::TEMPLATE_DIR, "#{template_name}.html.erb")
        html = ERB.new(File.read(template_file)).result(binding)
        
        File.open(File.join(output_dir, 'index.html'), "w"){|f| f << html }
        FileUtils.cp(File.join(MetricFu::TEMPLATE_DIR, "#{template_name}.css"), output_dir)
        `open #{output_dir}/index.html`
      end
      
      def link_to_filename(name, line = nil)
        filename = File.expand_path(name)
        if PLATFORM['darwin']
          %{<a href="txmt://open/?url=file://#{filename}&line=#{line}">#{name}</a>}
        else
          %{<a href="file://#{filename}">#{name}</a>}
        end
      end
    end
  
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
indirect-metric_fu-0.8.1 lib/metric_fu/flay.rb