# 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 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
# File lib/icalendar/calendar.rb, line 46 def find_event(uid) self.events.find {|e| e.uid == uid} end
# File lib/icalendar/calendar.rb, line 85 def find_freebusy(uid) self.freebusys.find {|f| f.uid == uid} end
# File lib/icalendar/calendar.rb, line 72 def find_journal(uid) self.journals.find {|j| j.uid == uid} end
# File lib/icalendar/calendar.rb, line 59 def find_todo(uid) self.todos.find {|t| t.uid == uid} end
# 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
# 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.
# File lib/icalendar/calendar.rb, line 107 def publish self.ip_method = "PUBLISH" end
# 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
# 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