2016-07-27 00:13:36 +02:00
|
|
|
module IcalHelper
|
|
|
|
def event_calendar
|
|
|
|
cal = Icalendar::Calendar.new
|
|
|
|
|
2016-08-23 20:21:02 +02:00
|
|
|
items.find_all('/events/*/*.md').each do |i|
|
|
|
|
cal.add_event(event_for(i))
|
|
|
|
end
|
2016-07-27 00:13:36 +02:00
|
|
|
|
|
|
|
cal.to_ical
|
|
|
|
end
|
|
|
|
|
2016-08-23 20:21:02 +02:00
|
|
|
def event_for(item)
|
2017-02-08 17:44:20 +01:00
|
|
|
tzid = 'Europe/Brussels'
|
|
|
|
|
2017-02-08 17:05:48 +01:00
|
|
|
e = Icalendar::Event.new
|
2017-02-08 17:44:20 +01:00
|
|
|
e.dtstart = Icalendar::Values::DateTime.new item[:time], 'tzid' => tzid
|
|
|
|
e.dtend = Icalendar::Values::DateTime.new item[:end], 'tzid' => tzid if item[:end]
|
2017-02-08 17:05:48 +01:00
|
|
|
e.summary = item[:title]
|
|
|
|
e.description = item[:description] + "\n\n" + item.reps[:text].compiled_content
|
|
|
|
e.location = item[:location]
|
|
|
|
e.url = @config[:base_url] + item.path
|
2016-07-27 00:13:36 +02:00
|
|
|
|
2017-02-08 17:05:48 +01:00
|
|
|
e
|
2016-07-27 00:13:36 +02:00
|
|
|
end
|
|
|
|
end
|