Sha256: 2025a8ba2dd875fd87bc319a0ecb01b30c68e2d4e66ff5b32fc89c51edc5c7ff

Contents?: true

Size: 694 Bytes

Versions: 32

Compression:

Stored size: 694 Bytes

Contents

require 'forwardable'
module MetricFu
  class Ranking
    extend Forwardable

    def initialize
      @items_to_score = {}
    end

    def top(num=nil)
      if(num.is_a?(Numeric))
        sorted_items[0,num]
      else
        sorted_items
      end
    end

    def percentile(item)
      index = sorted_items.index(item)
      worse_item_count = (length - (index+1))
      worse_item_count.to_f/length
    end

    def_delegator :@items_to_score, :has_key?, :scored?
    def_delegators :@items_to_score, :[], :[]=, :length, :each, :delete

    private

    def sorted_items
      @sorted_items ||= @items_to_score.sort_by {|item, score| -score}.map {|item, score| item}
    end

  end
end

Version data entries

32 entries across 32 versions & 4 rubygems

Version Path
metric_fu-4.4.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.3.1 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.3.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.2.1 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.2.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.1.3 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.1.2 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.1.1 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.1.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-4.0.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-3.0.1 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-3.0.0 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.4.pre5 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.4.pre4 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.4.pre2 lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.4.pre lib/metric_fu/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.3.7.18.1 lib/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.3.7.19 lib/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.3.6 lib/metrics/hotspots/analysis/ranking.rb
metric_fu-2.1.3.5 lib/data_structures/ranking.rb