diff --git a/lib/ranking/strategies/basic_rater.rb b/lib/ranking/strategies/basic_rater.rb index 8c03c3d29a825c0ed581fa75ca023fa6c63c4272..069740879e7aa0c7a67d2301d6f90b0fc0eb1a63 100644 --- a/lib/ranking/strategies/basic_rater.rb +++ b/lib/ranking/strategies/basic_rater.rb @@ -1,14 +1,10 @@ class Ranking::Strategies::BasicRater < Ranking::Strategy def sortByRate(items) - first = items.first - rest = items.drop(1) - - rest.zip(rest.size.downto(1)) - .collect { |item, reverseIndex| rateItem(item, reverseIndex) } # Returns RatedItem instance - .sort { |itemA, itemB| itemA.rate <=> itemB.rate } + items.zip( items.size.downto(1) ) + .collect { |item,reverseIndex| self.rateItem( item, reverseIndex ) } + .sort { |itemA,itemB| itemA.rate <=> itemB.rate } .collect { |ri| ri.item } - .push(first) .reverse # Best ranked comes first end