From e35a0044824b520d213942982b0ddc35b855ca9b Mon Sep 17 00:00:00 2001 From: ls12 5o Andar <ls12@inf.ufpr.br> Date: Mon, 31 Aug 2015 14:58:24 -0300 Subject: [PATCH] Remove keep first item responsability --- lib/ranking/rank.rb | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lib/ranking/rank.rb b/lib/ranking/rank.rb index 73698a258..351180261 100644 --- a/lib/ranking/rank.rb +++ b/lib/ranking/rank.rb @@ -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 -- GitLab