Class TaskJuggler::ICalendar::Component
In: lib/taskjuggler/ICalendar.rb
Parent: Object

Base class for all ICalendar components.

Methods

addAttendee   new   setOrganizer   to_s  

Attributes

description  [RW] 
organizer  [RW] 
relatedTo  [RW] 
uid  [R] 

Public Class methods

[Source]

# File lib/taskjuggler/ICalendar.rb, line 36
      def initialize(ical, uid, summary, startDate)
        @ical = ical
        @type = self.class.to_s.split('::').last.upcase
        @uid = uid + "-#{@type}"
        @summary = summary
        @startDate = startDate

        # Optional attributes
        @description = nil
        @relatedTo = nil
        @organizer = nil
        @attendees = []
      end

Public Instance methods

[Source]

# File lib/taskjuggler/ICalendar.rb, line 54
      def addAttendee(name, email)
        @attendees << Person.new(name, email)
      end

[Source]

# File lib/taskjuggler/ICalendar.rb, line 50
      def setOrganizer(name, email)
        @organizer = Person.new(name, email)
      end

[Source]

# File lib/taskjuggler/ICalendar.rb, line 58
      def to_s
        str = "BEGIN:V\#{@type}\nDTSTAMP:\#{dateTime(TjTime.new.utc)}\nCREATED:\#{dateTime(@ical.creationDate)}\nUID:\#{@uid}\nLAST-MODIFIED:\#{dateTime(@ical.lastModified)}\nSUMMARY:\#{quoted(@summary)}\nDTSTART:\#{dateTime(@startDate)}\n"
        str += "DESCRIPTION:#{quoted(@description)}\n" if @description
        str += "RELATED-TO:#{@relatedTo}\n" if @relatedTo

        if @organizer
          str += "ORGANIZER;CN=#{@organizer.name}:mailto:#{@organizer.email}\n"
        end
        @attendees.each do |attendee|
          str += "ATTENDEE;CN=#{attendee.name}:mailto:#{attendee.email}\n"
        end

        str += yield if block_given?

        str += "END:V#{@type}\n\n"
      end

[Validate]