Sha256: b89d0dfa51548bdab3f694dbf512e7385932b4caba198f6871f7eb24c312a188

Contents?: true

Size: 1.14 KB

Versions: 9

Compression:

Stored size: 1.14 KB

Contents

class MetricFu::SaikuroHotspot < MetricFu::Hotspot
  COLUMNS = %w{lines complexity}

  def columns
    COLUMNS
  end

  def name
    :saikuro
  end

  def map_strategy
    :complexity
  end

  def reduce_strategy
    :average
  end

  def score_strategy
    :identity
  end

  def generate_records(data, table)
    return if data == nil
    data[:files].each do |file|
      file_name = file[:filename]
      file[:classes].each do |klass|
        location = MetricFu::Location.for(klass[:class_name])
        offending_class = location.class_name
        klass[:methods].each do |match|
          offending_method = MetricFu::Location.for(match[:name]).method_name
          table << {
            "metric" => name,
            "lines" => match[:lines],
            "complexity" => match[:complexity],
            "class_name" => offending_class,
            "method_name" => offending_method,
            "file_path" => file_name,
          }
        end
      end
    end
  end

  def present_group(group)
    occurences = group.size
    complexity = get_mean(group.column("complexity"))
    "#{'average ' if occurences > 1}complexity is %.1f" % complexity
  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
metric_fu-4.13.0 lib/metric_fu/metrics/saikuro/hotspot.rb
fastruby-metric_fu-5.0.0 lib/metric_fu/metrics/saikuro/hotspot.rb
code_metric_fu-4.14.4 lib/metric_fu/metrics/saikuro/hotspot.rb
code_metric_fu-4.14.3 lib/metric_fu/metrics/saikuro/hotspot.rb
code_metric_fu-4.14.2 lib/metric_fu/metrics/saikuro/hotspot.rb
code_metric_fu-4.14.1 lib/metric_fu/metrics/saikuro/hotspot.rb
code_metric_fu-4.14.0 lib/metric_fu/metrics/saikuro/hotspot.rb
metric_fu-4.12.0 lib/metric_fu/metrics/saikuro/hotspot.rb
metric_fu-4.11.4 lib/metric_fu/metrics/saikuro/hotspot.rb