class SakaiInfo::QuestionPool

Attributes

dbrow[R]
description[R]
owner[R]
parent_pool_id[R]
title[R]

Public Class Methods

clear_cache() click to toggle source
# File lib/sakai-info/question_pool.rb, line 22
def self.clear_cache
  @@cache = {}
end
count_by_user_id(user_id) click to toggle source
# File lib/sakai-info/question_pool.rb, line 59
def self.count_by_user_id(user_id)
  DB.connect[:sam_questionpool_t].filter(:ownerid => user_id).count
end
find(id) click to toggle source
# File lib/sakai-info/question_pool.rb, line 38
def self.find(id)
  if @@cache[id].nil?
    row = DB.connect[:sam_questionpool_t].filter(:questionpoolid => id).first
    if row.nil?
      raise ObjectNotFoundException.new(QuestionPool, id)
    end
    @@cache[id] = QuestionPool.new(row)
  end
  @@cache[id]
end
find_by_user_id(user_id) click to toggle source
# File lib/sakai-info/question_pool.rb, line 49
def self.find_by_user_id(user_id)
  results = []
  DB.connect[:sam_questionpool_t].filter(:ownerid => user_id).all.each do |row|
    id = row[:questionpoolid]
    @@cache[id] = QuestionPool.new(row)
    results << @@cache[id]
  end
  results
end
new(dbrow) click to toggle source
# File lib/sakai-info/question_pool.rb, line 27
def initialize(dbrow)
  @dbrow = dbrow

  @id = dbrow[:questionpoolid]
  @title = dbrow[:title]
  @description = dbrow[:description]
  @owner = User.find(dbrow[:ownerid])
  @parent_pool_id = dbrow[:parentpoolid]
  @parent_pool_id = nil if @parent_pool_id == 0
end

Public Instance Methods

default_serialization() click to toggle source

serialization

# File lib/sakai-info/question_pool.rb, line 75
def default_serialization
  result = {
    "id" => self.id,
    "title" => self.title,
    "owner" => self.owner.serialize(:summary),
    "parent" => nil,
    "item_count" => self.item_count
  }
  if not self.parent.nil?
    result["parent"] = self.parent.serialize(:summary)
  else
    result.delete("parent")
  end
  result
end
item_count() click to toggle source
# File lib/sakai-info/question_pool.rb, line 63
def item_count
  @item_count ||=
    DB.connect[:sam_questionpoolitem_t].filter(:questionpoolid => @id).count
end
parent() click to toggle source
# File lib/sakai-info/question_pool.rb, line 68
def parent
  if not @parent_pool_id.nil?
    @parent ||= QuestionPool.find(@parent_pool_id)
  end
end
summary_serialization() click to toggle source
# File lib/sakai-info/question_pool.rb, line 91
def summary_serialization
  result = {
    "id" => self.id,
    "title" => self.title,
    "owner_eid" => self.owner.eid,
    "parent_pool_id" => self.parent_pool_id,
    "item_count" => self.item_count
  }
  if result["parent_pool_id"].nil?
    result.delete("parent_pool_id")
  end
  result
end
user_summary_serialization() click to toggle source
# File lib/sakai-info/question_pool.rb, line 105
def user_summary_serialization
  {
    "id" => self.id,
    "title" => self.title,
    "item_count" => self.item_count
  }
end