class Icalendar::Calendar

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/icalendar/calendar.rb, line 19
def initialize()
  super("VCALENDAR")

  # Set some defaults
  self.calscale = "GREGORIAN"    # Who knows, but this is the only one in the spec.
  self.prodid = "iCalendar-Ruby" # Current product... Should be overwritten by apps that use the library
  self.version = "2.0" # Version of the specification
end

Public Instance Methods

event(&block) click to toggle source
# File lib/icalendar/calendar.rb, line 28
def event(&block)
  e = Event.new
  # Note: I'm not sure this is the best way to pass this down, but it works
  e.tzid = self.timezones[0].tzid if self.timezones.length > 0

  self.add_component e

  if block
    e.instance_eval(&block)
    if e.tzid
      e.dtstart.ical_params = { "TZID" => e.tzid }
      e.dtend.ical_params = { "TZID" => e.tzid }
    end
  end

  e
end
find_event(uid) click to toggle source
# File lib/icalendar/calendar.rb, line 46
def find_event(uid)
  self.events.find {|e| e.uid == uid}
end
find_freebusy(uid) click to toggle source
# File lib/icalendar/calendar.rb, line 85
def find_freebusy(uid)
  self.freebusys.find {|f| f.uid == uid}
end
find_journal(uid) click to toggle source
# File lib/icalendar/calendar.rb, line 72
def find_journal(uid)
  self.journals.find {|j| j.uid == uid}
end
find_todo(uid) click to toggle source
# File lib/icalendar/calendar.rb, line 59
def find_todo(uid)
  self.todos.find {|t| t.uid == uid}
end
freebusy(&block) click to toggle source
# File lib/icalendar/calendar.rb, line 76
def freebusy(&block)
  e = Freebusy.new
  self.add_component e

  e.instance_eval(&block) if block

  e
end
journal(&block) click to toggle source
# File lib/icalendar/calendar.rb, line 63
def journal(&block)
  e = Journal.new
  self.add_component e

  e.instance_eval(&block) if block

  e
end
publish() click to toggle source

The “PUBLISH” method in a “VEVENT” calendar component is an unsolicited posting of an iCalendar object. Any CU may add published components to their calendar. The “Organizer” MUST be present in a published iCalendar component. “Attendees” MUST NOT be present. Its expected usage is for encapsulating an arbitrary event as an iCalendar object. The “Organizer” may subsequently update (with another “PUBLISH” method), add instances to (with an “ADD” method), or cancel (with a “CANCEL” method) a previously published “VEVENT” calendar component.

# File lib/icalendar/calendar.rb, line 107
def publish
  self.ip_method = "PUBLISH"
end
timezone(&block) click to toggle source
# File lib/icalendar/calendar.rb, line 89
def timezone(&block)
  e = Timezone.new
  self.add_component e

  e.instance_eval(&block) if block

  e
end
todo(&block) click to toggle source
# File lib/icalendar/calendar.rb, line 50
def todo(&block)
  e = Todo.new
  self.add_component e

  e.instance_eval(&block) if block

  e
end