Следующий код работает, но выглядит не совсем как в рубине, поэтому я ищу лучший способ добиться того же.
#Grab the events from the page
events = page.events.sort_by{|e| e.start_time}
upcoming = []
past = []
events.each do |e|
if e.start_time >= Time.now
upcoming.push(e)
end
if e.start_time < Time.now
past.push(e)
end
end
# show the most nearest event (current events if exist)
event_to_show = (upcoming.count < 0) ? upcoming.first : past.last