class SakaiInfo::Forum
Attributes
dbrow[R]
title[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/forum.rb, line 119 def self.all_serializations [ :default, :threads ] end
clear_cache()
click to toggle source
# File lib/sakai-info/forum.rb, line 22 def self.clear_cache @@cache = {} end
count_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/forum.rb, line 88 def self.count_by_site_id(site_id) Forum.query_by_site_id(site_id).count end
find(id)
click to toggle source
# File lib/sakai-info/forum.rb, line 27 def self.find(id) if @@cache[id.to_s].nil? row = DB.connect[:mfr_open_forum_t].where(:id => id).first if row.nil? raise ObjectNotFoundException.new(Forum, id) end @@cache[id.to_s] = Forum.new(row) end @@cache[id.to_s] end
find_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/forum.rb, line 92 def self.find_by_site_id(site_id) Forum.query_by_site_id(site_id).all. collect { |row| @@cache[row[:id].to_i.to_s] = Forum.new(row) } end
new(dbrow)
click to toggle source
# File lib/sakai-info/forum.rb, line 38 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:id].to_i @title = dbrow[:title] @area_id = dbrow[:surrogatekey] @site_id_is_nil = false end
query_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/forum.rb, line 80 def self.query_by_site_id(site_id) db = DB.connect db[:mfr_open_forum_t]. where(:surrogatekey => db[:mfr_area_t].select(:id).where(:context_id => site_id)). where(:forum_dtype => "DF") end
Public Instance Methods
default_serialization()
click to toggle source
# File lib/sakai-info/forum.rb, line 97 def default_serialization { "id" => self.id, "title" => self.title, "site" => self.site.serialize(:summary), "thread_count" => self.thread_count, } end
site()
click to toggle source
# File lib/sakai-info/forum.rb, line 64 def site if self.site_id.nil? return nil end @site ||= Site.find(self.site_id) end
site_id()
click to toggle source
# File lib/sakai-info/forum.rb, line 48 def site_id return nil if @site_id_is_nil if @site_id.nil? result = DB.connect[:mfr_area_t]. select(:context_id).where(:id => @area_id).first if result.nil? @site_id_is_nil = true return nil else @site_id = result[:context_id] end end @site_id end
summary_serialization()
click to toggle source
# File lib/sakai-info/forum.rb, line 112 def summary_serialization { "id" => self.id, "title" => self.title } end
thread_count()
click to toggle source
# File lib/sakai-info/forum.rb, line 72 def thread_count @thread_count ||= ForumThread.count_by_forum_id(self.id) end
threads()
click to toggle source
# File lib/sakai-info/forum.rb, line 76 def threads @threads ||= ForumThread.find_by_forum_id(self.id) end
threads_serialization()
click to toggle source
# File lib/sakai-info/forum.rb, line 106 def threads_serialization { "threads" => self.threads.collect { |t| t.serialize(:summary) } } end