4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/calendrier/controllers/event_extension.rb', line 4
def sort_events(events)
events_by_date = {}
events.sort_by { |obj| get_event_stamp(obj) }.each do |event|
begin_date = Time.at(get_event_stamp(event)).to_date
end_date = Time.at(get_event_stamp(event, :end_time => true)).to_date
duration_in_days = (end_date - begin_date).to_i + 1
duration_in_days.times do |index|
current_date = begin_date + index
date_arr = [current_date.year.to_s, current_date.month.to_s, current_date.day.to_s]
exist = begin
true if events_by_date[current_date.year.to_s][current_date.month.to_s][current_date.day.to_s]
rescue NoMethodError
false
end
events_by_date = events_rmerge(events_by_date, date_arr.reverse.inject([]) { |a, n| {n=>a} }) unless exist
unless events_by_date[current_date.year.to_s][current_date.month.to_s][current_date.day.to_s].include? event
events_by_date[current_date.year.to_s][current_date.month.to_s][current_date.day.to_s] << event
end
end
end
return events_by_date
end
|