diff --git a/app/views/events/index.ics.haml b/app/views/events/index.ics.haml new file mode 100644 index 00000000..06890d21 --- /dev/null +++ b/app/views/events/index.ics.haml @@ -0,0 +1,20 @@ +:ruby + domain = root_url.gsub(/www/, '').gsub(/http.?:../, '').gsub(/:.*/, '') + + # Create a calendar with an event (standard method) + cal = Icalendar::Calendar.new + @events.each do |event| + cal.event do |e| + e.dtstamp = Icalendar::Values::DateTime.new event.decision_time + e.uid = "#{event.id}@#{domain}" + e.dtstart = Icalendar::Values::DateTime.new event.start_time + e.dtend = Icalendar::Values::DateTime.new event.end_time + e.summary = event.title + e.description = event.description.tr '\'', '’' + e.location = event.full_address.tr '\'', '’' + end + end + + cal.publish + += cal.to_ical diff --git a/app/views/events/show.ics.haml b/app/views/events/show.ics.haml new file mode 100644 index 00000000..9c769671 --- /dev/null +++ b/app/views/events/show.ics.haml @@ -0,0 +1,14 @@ +:ruby + # Create a calendar with an event (standard method) + cal = Icalendar::Calendar.new + cal.event do |e| + e.dtstart = Icalendar::Values::DateTime.new @event.start_time + e.dtend = Icalendar::Values::DateTime.new @event.end_time + e.summary = @event.title + e.description = strip_tags(@event.description).tr '\'', '’' + e.location = @event.full_address + end + + cal.publish + += cal.to_ical