class SakaiInfo::AnnouncementChannel
Attributes
dbrow[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/announcement.rb, line 98 def self.all_serializations [ :default, :xml, :announcements, ] end
clear_cache()
click to toggle source
# File lib/sakai-info/announcement.rb, line 16 def self.clear_cache @@cache = {} @@site_cache = {} end
find(id)
click to toggle source
# File lib/sakai-info/announcement.rb, line 27 def self.find(id) if @@cache[id].nil? xml = "" row = DB.connect[:announcement_channel].where(:channel_id => id).first if row.nil? raise ObjectNotFoundException.new(AnnouncementChannel, id) end @@cache[id] = AnnouncementChannel.new(row) @@site_cache[@@cache[id].site_id] = @@cache[id] end @@cache[id] end
find_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/announcement.rb, line 40 def self.find_by_site_id(site_id) @@site_cache[site_id] ||= if site_id == "!site" self.find("/announcement/channel/#{site_id}/motd") else self.find("/announcement/channel/#{site_id}/main") end end
new(dbrow)
click to toggle source
# File lib/sakai-info/announcement.rb, line 22 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:channel_id] end
Public Instance Methods
announcement_count()
click to toggle source
# File lib/sakai-info/announcement.rb, line 54 def announcement_count @announcement_count ||= Announcement.count_by_channel_id(@id) end
announcements()
click to toggle source
lazy properties
# File lib/sakai-info/announcement.rb, line 50 def announcements @announcements ||= Announcement.find_by_channel_id(@id) end
announcements_serialization()
click to toggle source
# File lib/sakai-info/announcement.rb, line 92 def announcements_serialization { "announcements" => self.announcements.collect { |ann| ann.serialize(:summary) } } end
default_serialization()
click to toggle source
serialization
# File lib/sakai-info/announcement.rb, line 71 def default_serialization { "id" => self.id, "site_id" => self.site_id, "announcement_count" => self.announcement_count } end
site_id()
click to toggle source
# File lib/sakai-info/announcement.rb, line 58 def site_id @site_id ||= @id.split("/")[3] end
summary_serialization()
click to toggle source
# File lib/sakai-info/announcement.rb, line 79 def summary_serialization { "id" => self.id, "announcement_count" => self.announcement_count } end
xml()
click to toggle source
# File lib/sakai-info/announcement.rb, line 62 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/announcement.rb, line 86 def xml_serialization { "xml" => self.xml } end