$ sudo gem install icalendar
Listing 6
Die Library ermöglicht das Erstellen eines Kalenderobjekts, das zunächst mit den Daten der enthaltenen Veranstaltungen befüllt werden muss. Dazu wird die Methode „to_ical“ in unserem Eventmodell, das ein Eventobjekt im iCalendar-Format zurückgibt, implementiert:
require 'icalendar' # Einbinden der iCalendar-Library
class Event < ActiveRecord::Base
def to_ical
ical_event = Icalendar::Event.new # Erstellen des Eventobjekts im iCalendar-Format
# Befüllen des Veranstaltungseintrags
ical_event.summary = summary # Titel der Veranstaltung
ical_event.description = description # Beschreibung der Veranstaltung
ical_event.dtstamp = created_at.iso8601 # Zeitstemplel des Eintrags im ISO-Format
ical_event.dtstart = datetime_start.iso8601 # Zeitstempel des Beginns
ical_event.dtend = datetime_end.iso8601 # Zeitstempel des Endes
ical_event.uid = „wevent:event=#{id}“ # Eindeutige ID des Events
ical_event.location = "#{venue_name}, #{city_name}" # Veranstaltungsort
ical_event.to_ical # gibt das iCal Objekt zurück
end
end
Listing 7
Die beschriebene Methode kann nun im Controller genutzt werden, um ein Array mit Eventobjekten als kompletten Kalender auszugeben: Der Aufruf von „to_ical“ auf einem Array sorgt dafür, dass durch das Array iteriert und auf jedem Element die Methode „to_ical“ ausgeführt wird. Ihr Rückgabewert (der Kalendereintrag des einzelnen Events) wird anschließend dem Kalender hinzugefügt („ical.add(objects.to_ical“), der schließlich gerendert wird.





![Diese Tools nutzen Entwickler für unterschiedliche Aufgaben [Infografik]](http://t3n.de/uploads/t3n-news-post-351639_symbolbild-werkzeug-tool_medium.jpg)
