Skip to content
Snippets Groups Projects
Commit 7e7e753e authored by Matheus Agio Nerone's avatar Matheus Agio Nerone
Browse files

Merge branch 'ranking' into index

parents 89e836e0 78e68089
No related branches found
No related tags found
No related merge requests found
......@@ -28,26 +28,19 @@ class BasicRater # Don't instanciate this directly, use Rater
end
def rateItem item, inversePosition # Returns: RatedItem instance
positionRating = inversePosition * @positionWeight
useRating = (item.downloads < item.views ? item.downloads : item.views)*@useWeight
likeRating = item.likes * @likeWeight
rate = positionRating + useRating + likeRating
RatedItem.new( item, rate )
end
def sortByRate items
first = items.first
rest = items.drop(1)
rest.zip( rest.size.downto(1) )
.collect { |item,reverseIndex| self.rateItem( item, reverseIndex ) } # Returns RatedItem instance
.sort { |itemA,itemB| itemA.rate <=> itemB.rate }
.collect { |ri| ri.item }
.push( first )
.reverse # Best ranked comes first
items.zip( items.size.downto(1) )
.collect { |item,reverseIndex| self.rateItem( item, reverseIndex ) }
.sort { |itemA,itemB| itemA.rate <=> itemB.rate }
.collect { |ri| ri.item }
.reverse # Best ranked comes first
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment