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

This class implements a very basic RFC5545 compliant iCalendar file generator. It currently only supports a very small subset of the tags that are needed for TaskJuggler.

Methods

addEvent   addJournal   addTodo   dateTime   new   to_s  

Classes and Modules

Class TaskJuggler::ICalendar::Component
Class TaskJuggler::ICalendar::Event
Class TaskJuggler::ICalendar::Journal
Class TaskJuggler::ICalendar::Person
Class TaskJuggler::ICalendar::Todo

Constants

LINELENGTH = 75   The maximum allowed length of a content line without line end character.

Attributes

creationDate  [RW] 
lastModified  [RW] 
uid  [R] 

Public Class methods

[Source]

# File lib/taskjuggler/ICalendar.rb, line 180
    def initialize(uid)
      @uid = "#{AppConfig.packageName}-#{uid}"
      @creationDate = @lastModified = TjTime.new.utc

      @todos = []
      @events = []
      @journals = []
    end

Public Instance methods

Add a new VEVENT component. For internal use only!

[Source]

# File lib/taskjuggler/ICalendar.rb, line 195
    def addEvent(event)
      @events << event
    end

Add a new VJOURNAL component. For internal user only!

[Source]

# File lib/taskjuggler/ICalendar.rb, line 200
    def addJournal(journal)
      @journals << journal
    end

Add a new VTODO component. For internal use only!

[Source]

# File lib/taskjuggler/ICalendar.rb, line 190
    def addTodo(todo)
      @todos << todo
    end

[Source]

# File lib/taskjuggler/ICalendar.rb, line 224
    def dateTime(date)
      date.to_s("%Y%m%dT%H%M%SZ")
    end

[Source]

# File lib/taskjuggler/ICalendar.rb, line 204
    def to_s
      str = "BEGIN:VCALENDAR\nPRODID:-//The \#{AppConfig.softwareName} Project/NONSGML \#{AppConfig.softwareName} \#{AppConfig.version}//EN\nVERSION:2.0\n\n"
      @todos.each { |todo| str += todo.to_s }
      @events.each { |event| str += event.to_s }
      @journals.each { |journal| str += journal.to_s }

      str << "END:VCALENDAR\n"

      foldLines(str)
    end

[Validate]