mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 09:15:27 +08:00
27 lines
603 B
Ruby
27 lines
603 B
Ruby
|
module TimelineLookup
|
||
|
|
||
|
# Given an array of tuples (id, post_number, days_ago), return at most `max_values` worth of a
|
||
|
# lookup table to help the front end timeline display dates associated with posts
|
||
|
def self.build(tuples, max_values=300)
|
||
|
result = []
|
||
|
|
||
|
every = (tuples.size.to_f / max_values).ceil
|
||
|
|
||
|
last_days_ago = -1
|
||
|
tuples.each_with_index do |t, idx|
|
||
|
next unless (idx % every) === 0
|
||
|
|
||
|
_, post_number, days_ago = t
|
||
|
|
||
|
if (days_ago != last_days_ago)
|
||
|
result << [post_number, days_ago]
|
||
|
last_days_ago = days_ago
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
result
|
||
|
end
|
||
|
|
||
|
end
|