explore/posts/popular: refactor post previews.

This commit is contained in:
evazion
2020-01-12 22:57:40 -06:00
parent 74ce866890
commit 12a845de92
7 changed files with 76 additions and 182 deletions

View File

@@ -1,49 +0,0 @@
module PostSets
class Popular < PostSets::Base
attr_reader :date, :scale, :limit
def initialize(date, scale, limit: nil)
@date = date.blank? ? Time.zone.now : Time.zone.parse(date)
@scale = scale
@limit = limit || CurrentUser.per_page
end
def posts
@posts ||= begin
query = ::Post.where("created_at between ? and ?", min_date.beginning_of_day, max_date.end_of_day).order("score desc").limit(limit)
query.each # hack to force rails to eager load
query
end
end
def min_date
case scale
when "week"
date.beginning_of_week
when "month"
date.beginning_of_month
else
date
end
end
def max_date
case scale
when "week"
date.end_of_week
when "month"
date.end_of_month
else
date
end
end
def presenter
::PostSetPresenters::Popular.new(self)
end
end
end