Sha256: 988075427230edc796fd51906152faa320ee0ab30e8817d6003447ed433dab48

Contents?: true

Size: 1.22 KB

Versions: 5

Compression:

Stored size: 1.22 KB

Contents

module MetricFu
  class RailsBestPracticesGenerator < Generator
    def self.metric
      :rails_best_practices
    end

    def initialize(options = {})
      super(MetricFu::Utility.stringify_keys(options))
    end

    def emit
      mf_debug "** Rails Best Practices"
      path = "."
      analyzer = ::RailsBestPractices::Analyzer.new(path, options)
      analyzer.analyze
      @output = analyzer.errors
    end

    def analyze
      @problems = @output.collect do |problem|
        {
          file: problem.short_filename,
          line: problem.line_number,
          problem: problem.message,
          url: problem.url
        }
      end
      total = ["Found #{@problems.count} errors."]
      @rails_best_practices_results = { total: total, problems: @problems }
    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?

        lines = problem[:line].split(/\s*,\s*/)
        lines.each do |line|
          out[problem[:file]][line] << { type: :rails_best_practices, description: problem[:problem] }
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
code_metric_fu-4.14.4 lib/metric_fu/metrics/rails_best_practices/generator.rb
code_metric_fu-4.14.3 lib/metric_fu/metrics/rails_best_practices/generator.rb
code_metric_fu-4.14.2 lib/metric_fu/metrics/rails_best_practices/generator.rb
code_metric_fu-4.14.1 lib/metric_fu/metrics/rails_best_practices/generator.rb
code_metric_fu-4.14.0 lib/metric_fu/metrics/rails_best_practices/generator.rb