discourse/lib/timeline_lookup.rb

26 lines
584 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
days_ago = t[2]
if (days_ago != last_days_ago)
result << [idx+1, days_ago]
last_days_ago = days_ago
end
end
result
end
end