Class Icalendar::Calendar
In: lib/icalendar/calendar.rb
Parent: Component

Methods

Attributes

calendar_scale   
calscale   
events   
freebusys   
ip_method   
journals   
prodid   
product_id   
timezones   
todos   
version   

Public Class methods

[Source]

# 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

[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

[Source]

# File lib/icalendar/calendar.rb, line 46
    def find_event(uid)
      self.events.find {|e| e.uid == uid}
    end

[Source]

# File lib/icalendar/calendar.rb, line 85
    def find_freebusy(uid)
      self.freebusys.find {|f| f.uid == uid}
    end

[Source]

# File lib/icalendar/calendar.rb, line 72
    def find_journal(uid)
      self.journals.find {|j| j.uid == uid}
    end

[Source]

# File lib/icalendar/calendar.rb, line 59
    def find_todo(uid)
      self.todos.find {|t| t.uid == uid}
    end

[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

[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

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.

[Source]

# File lib/icalendar/calendar.rb, line 107
    def publish
      self.ip_method = "PUBLISH"
    end

[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

[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

[Validate]