class OmniCat::Result

Attributes

scores[RW]
top_score_key[R]
total_score[R]

Public Class Methods

new() click to toggle source
# File lib/omnicat/result.rb, line 7
def initialize
  @top_score_key = nil
  @scores = {}
  @total_score = 0
end

Public Instance Methods

add_score(score) click to toggle source

Method for adding new score to result

Parameters

# File lib/omnicat/result.rb, line 19
def add_score(score)
  @total_score += score.value
  @scores[score.key] = score
  if @top_score_key.nil? || @scores[@top_score_key].value < score.value
    @top_score_key = score.key
  end
end
calculate_percentages() click to toggle source

Method for calculating percentages for scores

# File lib/omnicat/result.rb, line 39
def calculate_percentages
  @scores.each do |key, score|
    @scores[key].percentage = percentage(score.value)
  end
end
top_score() click to toggle source

Method for getting highest ranked score

Returns

# File lib/omnicat/result.rb, line 33
def top_score
  @scores[@top_score_key]
end

Private Instance Methods

percentage(value) click to toggle source

nodoc

# File lib/omnicat/result.rb, line 49
def percentage(value)
  (value * 100.0 / @total_score).round(0)
end