class SakaiInfo::Announcement

Attributes

channel_id[R]
date[R]
dbrow[R]
draft[R]
owner[R]
pubview[R]

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/announcement.rb, line 189
def self.all_serializations
  [
   :default,
   :xml,
  ]
end
clear_cache() click to toggle source
# File lib/sakai-info/announcement.rb, line 110
def self.clear_cache
  @@cache = {}
end
count_by_channel_id(channel_id) click to toggle source
# File lib/sakai-info/announcement.rb, line 141
def self.count_by_channel_id(channel_id)
  Announcement.query_by_channel_id(channel_id).count
end
find(id) click to toggle source
# File lib/sakai-info/announcement.rb, line 126
def self.find(id)
  if @@cache[id].nil?
    row = DB.connect[:announcement_message].where(:message_id => id).first
    if row.nil?
      raise ObjectNotFoundException.new(Announcement, id)
    end
    @@cache[id] = Announcement.new(row)
  end
  @@cache[id]
end
find_by_channel_id(channel_id) click to toggle source
# File lib/sakai-info/announcement.rb, line 145
def self.find_by_channel_id(channel_id)
  Announcement.query_by_channel_id(channel_id).all.collect do |row|
    @@cache[row[:message_id]] = Announcement.new(row)
  end
end
new(dbrow) click to toggle source
# File lib/sakai-info/announcement.rb, line 115
def initialize(dbrow)
  @dbrow = dbrow

  @id = @dbrow[:message_id]
  @channel_id = @dbrow[:channel_id]
  @draft = @dbrow[:draft]
  @pubview = @dbrow[:pubview]
  @owner = User.find(@dbrow[:owner])
  @date = @dbrow[:message_date]
end
query_by_channel_id(channel_id) click to toggle source
# File lib/sakai-info/announcement.rb, line 137
def self.query_by_channel_id(channel_id)
  DB.connect[:announcement_message].where(:channel_id => channel_id)
end

Public Instance Methods

channel() click to toggle source

lazy properties

# File lib/sakai-info/announcement.rb, line 152
def channel
  @channel ||= AnnouncementChannel.find(self.channel_id)
end
default_serialization() click to toggle source

serialization

# File lib/sakai-info/announcement.rb, line 165
def default_serialization
  {
    "id" => self.id,
    "date" => self.date,
    "owner" => self.owner.serialize(:summary),
    "draft" => self.draft,
    "pubview" => self.pubview,
    "channel" => self.channel_id,
  }
end
summary_serialization() click to toggle source
# File lib/sakai-info/announcement.rb, line 176
def summary_serialization
  {
    "id" => self.id,
    "date" => self.date
  }
end
xml() click to toggle source
# File lib/sakai-info/announcement.rb, line 156
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 183
def xml_serialization
  {
    "xml" => self.xml
  }
end