Sha256: b2566676edc9b1ad2a4db1b74a70da47bd4f662c592d4aa11fc9dc532dda0704

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require 'fileutils'

namespace :metrics do

  desc "A cyclomatic complexity report using Saikuro"
  task :saikuro do
    SAIKURO_DIR = File.join(MetricFu::BASE_DIRECTORY, 'saikuro')
    SAIKURO = File.expand_path(File.join(File.dirname(__FILE__), '..', 'metric_fu', 'saikuro', 'saikuro.rb'))

    raise "SAIKURO_OPTIONS is now MetricFu::SAIKURO_OPTIONS" if defined?(SAIKURO_OPTIONS)
    options = { :output_directory => SAIKURO_DIR,
                        :input_directory => MetricFu::CODE_DIRS,
                        :cyclo => "",
                        :filter_cyclo => "0",
                        :warn_cyclo => "5",
                        :error_cyclo => "7"}
  
    options.merge!(MetricFu::SAIKURO_OPTIONS) if defined?(MetricFu::SAIKURO_OPTIONS)
    options_string = options.inject(""){ |o, h| o + "--#{h.join(' ')} " }  
     
    sh %{ruby "#{SAIKURO}" #{options_string}} do |ok, response|
      unless ok
        puts "Saikuro failed with exit status: #{response.exitstatus}"
        exit 1
      end
    end

    if File.exist? "#{SAIKURO_DIR}/index_cyclo.html"
      mv "#{SAIKURO_DIR}/index_cyclo.html", 
         "#{SAIKURO_DIR}/index.html"
    end
    
    system("open #{SAIKURO_DIR}/index.html") if PLATFORM['darwin']
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
indirect-metric_fu-0.8.1 lib/tasks/saikuro.rake