# 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
# File lib/icalendar/calendar.rb, line 42 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
# File lib/icalendar/calendar.rb, line 60 def find_event(uid) self.events.find {|e| e.uid == uid} end
# File lib/icalendar/calendar.rb, line 99 def find_freebusy(uid) self.freebusys.find {|f| f.uid == uid} end
# File lib/icalendar/calendar.rb, line 86 def find_journal(uid) self.journals.find {|j| j.uid == uid} end
# File lib/icalendar/calendar.rb, line 73 def find_todo(uid) self.todos.find {|t| t.uid == uid} end
# File lib/icalendar/calendar.rb, line 90 def freebusy(&block) e = Freebusy.new self.add_component e e.instance_eval(&block) if block e end
# File lib/icalendar/calendar.rb, line 77 def journal(&block) e = Journal.new self.add_component e e.instance_eval(&block) if block e end
# File lib/icalendar/calendar.rb, line 28 def print_component "BEGIN:#{@name.upcase}\r\n" + "VERSION:#{version}\r\n" + # Then the properties print_properties(@properties.select { |k,v| k != 'version' }) + # sub components yield + # End of this component "END:#{@name.upcase}\r\n" 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.
# File lib/icalendar/calendar.rb, line 121 def publish self.ip_method = "PUBLISH" end
Generated with the Darkfish Rdoc Generator 2.