From 852d3b0ed614f35dd2874680879b14d47d7684b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 20 Aug 2019 14:01:39 +0200 Subject: [PATCH] Extract methods to calculate hot score period --- lib/score_calculator.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/score_calculator.rb b/lib/score_calculator.rb index bfe91c29c..5cba290cb 100644 --- a/lib/score_calculator.rb +++ b/lib/score_calculator.rb @@ -3,10 +3,7 @@ module ScoreCalculator def self.hot_score(resource) return 0 unless resource.created_at - period = [ - Setting["hot_score_period_in_days"].to_i, - ((Time.current - resource.created_at) / 1.day).ceil - ].min + period = [max_period, resource_age(resource)].min votes_total = resource.votes_for.where("created_at >= ?", period.days.ago).count votes_up = resource.get_upvotes.where("created_at >= ?", period.days.ago).count @@ -27,4 +24,12 @@ module ScoreCalculator score * (votes_up / votes_total) * 100 end + def self.max_period + Setting["hot_score_period_in_days"].to_i + end + + def self.resource_age(resource) + ((Time.current - resource.created_at) / 1.day).ceil + end + end