Files
danbooru/app/presenters/user_similarity_presenter.rb
2015-12-30 19:07:01 -08:00

35 lines
651 B
Ruby

class UserSimilarityPresenter
attr_reader :report, :user_ids, :not_ready
def initialize(report)
@report = report
fetch
end
def not_ready?
not_ready
end
def insufficient_data?
report.user.favorite_count < 500
end
def fetch
user_ids = report.fetch_similar_user_ids
if user_ids == "not ready"
@not_ready = true
else
@user_ids = user_ids.scan(/\d+/).slice(0, 10)
end
end
def each_user(&block)
User.where(id: user_ids).each(&block)
end
def each_favorite_for(user, &block)
user.favorites.limit(6).joins(:post).reorder("favorites.id desc").map(&:post).each(&block)
end
end