class SakaiInfo::Calendar
Attributes
dbrow[R]
next_id[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/calendar.rb, line 109 def self.all_serializations [ :default, :xml, :mod, :events, ] end
clear_cache()
click to toggle source
# File lib/sakai-info/calendar.rb, line 16 def self.clear_cache @@cache = {} end
find(id)
click to toggle source
# File lib/sakai-info/calendar.rb, line 29 def self.find(id) # if there's no slash in the id string, assume it's a site id if id !~ /\// id = "/calendar/calendar/#{id}/main" end if @@cache[id].nil? xml = "" row = DB.connect[:calendar_calendar].where(:calendar_id => id).first if row.nil? raise ObjectNotFoundException.new(Calendar, id) end @@cache[id] = Calendar.new(row) end @@cache[id] end
find!(id)
click to toggle source
# File lib/sakai-info/calendar.rb, line 46 def self.find!(id) begin Calendar.find(id) rescue ObjectNotFoundException => e if e.classname == Calendar.name MissingCalendar.find(id) end end end
new(dbrow)
click to toggle source
# File lib/sakai-info/calendar.rb, line 21 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:calendar_id] @next_id = dbrow[:next_id] parse_xml end
Public Instance Methods
default_serialization()
click to toggle source
serialization
# File lib/sakai-info/calendar.rb, line 82 def default_serialization { "id" => self.id, "site" => self.site.serialize(:summary), "next_id" => self.next_id, "event_count" => self.event_count, } end
event_count()
click to toggle source
# File lib/sakai-info/calendar.rb, line 61 def event_count @event_count ||= CalendarEvent.count_by_calendar_id(@id) end
events()
click to toggle source
lazy properties
# File lib/sakai-info/calendar.rb, line 57 def events @events ||= CalendarEvent.find_by_calendar_id(@id) end
events_serialization()
click to toggle source
# File lib/sakai-info/calendar.rb, line 103 def events_serialization { "events" => self.events.collect{|e|e.serialize(:summary)} } end
site()
click to toggle source
# File lib/sakai-info/calendar.rb, line 69 def site @site ||= Site.find(self.site_id) end
site_id()
click to toggle source
# File lib/sakai-info/calendar.rb, line 65 def site_id @site_id ||= @id.split("/")[3] end
summary_serialization()
click to toggle source
# File lib/sakai-info/calendar.rb, line 91 def summary_serialization { "id" => self.id, } end
xml()
click to toggle source
# File lib/sakai-info/calendar.rb, line 73 def xml if @xml.nil? @xml = "" REXML::Document.new(@dbrow[:xml].read).write(@xml, 2) end @xml end
xml_serialization()
click to toggle source
# File lib/sakai-info/calendar.rb, line 97 def xml_serialization { "xml" => self.xml } end