von Dennis Blöte, 04.09.2007

RESTful API und Plugins im Praxiseinsatz für den Datenexport: Ein Eventkalender mit Ruby on Rails

Aus dem
t3n Magazin Nr. 9

SHELL

$ 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:

ON

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.

Seite:  1 2 3 4 5

Empfohlene Artikel