Sha256: 50f74c5612c062ab818b3ea21bf057f36f2e047d6fd2544f153e2e27e950e068
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
module MetricFu class RailsBestPractices < Generator VERSION = '1.13.2' def emit command = %Q(rails_best_practices _#{VERSION}_ --without-color .) mf_debug "** #{command}" @output = `#{command}` end def analyze @matches = @output.chomp.split("\n").map{|m| m.split(" - ") } total = @matches.pop cleanup_color_switches(total.first) 2.times { @matches.pop } # ignore wiki link @matches.reject! {|array| array.empty? } @matches.map! do |match| file, line = match[0].split(':') problem = match[1] cleanup_color_switches(file) cleanup_color_switches(problem) file.gsub!(/^\.\//, '') {:file => file, :line => line, :problem => problem} end @rails_best_practices_results = {:total => total, :problems => @matches} end def cleanup_color_switches(str) return if str.nil? str.gsub!(%r{^\e\[3[1|2]m}, '') str.gsub!(%r{\e\[0m$}, '') end def to_h {:rails_best_practices => @rails_best_practices_results} end def per_file_info(out) @rails_best_practices_results[:problems].each do |problem| next if problem[:file] == '' || problem[:problem].nil? out[problem[:file]] ||= {} lines = problem[:line].split(/\s*,\s*/) lines.each do |line| out[problem[:file]][line] ||= [] out[problem[:file]][line] << {:type => :rails_best_practices, :description => problem[:problem]} end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metric_fu-2.1.4.pre2 | lib/metric_fu/metrics/rails_best_practices/rails_best_practices.rb |
metric_fu-2.1.4.pre | lib/metric_fu/metrics/rails_best_practices/rails_best_practices.rb |