class SakaiInfo::QuizSection
Attributes
dbrow[R]
description[R]
quiz[R]
sequence[R]
status[R]
title[R]
typeid[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/quiz.rb, line 500 def self.all_serializations [:default, :items, :mod] end
clear_cache()
click to toggle source
# File lib/sakai-info/quiz.rb, line 400 def self.clear_cache @@cache = {} end
count_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 449 def self.count_by_quiz_id(quiz_id) QuizSection.query_by_quiz_id(quiz_id).count end
find(id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 417 def self.find(id) id = id.to_s if @@cache[id].nil? begin @@cache[id] = PendingQuizSection.find(id) rescue ObjectNotFoundException begin @@cache[id] = PublishedQuizSection.find(id) rescue ObjectNotFoundException raise ObjectNotFoundException.new(QuizSection, id) end end end @@cache[id] end
find_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 442 def self.find_by_quiz_id(quiz_id) section_class = Quiz.find(quiz_id).section_class QuizSection.query_by_quiz_id(quiz_id).all.collect do |row| section_class.new(row) end end
new(dbrow)
click to toggle source
# File lib/sakai-info/quiz.rb, line 405 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:sectionid] @quiz = Quiz.find(dbrow[:assessmentid]) @sequence = dbrow[:sequence] @title = dbrow[:title] @description = dbrow[:description] @typeid = dbrow[:typeid] @status = dbrow[:status] end
query_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 433 def self.query_by_quiz_id(quiz_id) table = if Quiz.find(quiz_id).quiz_type == "pending" :sam_section_t else :sam_publishedsection_t end DB.connect[table].where(:assessmentid => quiz_id).order(:sequence) end
Public Instance Methods
default_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 465 def default_serialization { "id" => self.id, "title" => self.title, "quiz" => self.quiz.serialize(:summary), "sequence" => self.sequence, "item_count" => self.item_count, "description" => self.description, "type" => self.section_type, "typeid" => self.typeid, "status" => self.status } end
item_count()
click to toggle source
# File lib/sakai-info/quiz.rb, line 457 def item_count @item_count ||= QuizItem.count_by_section_id(self.id) end
items()
click to toggle source
# File lib/sakai-info/quiz.rb, line 461 def items @items ||= QuizItem.find_by_section_id(self.id) end
items_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 494 def items_serialization { "items" => self.items.collect{|i|i.serialize(:section_summary)} } end
quiz_summary_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 488 def quiz_summary_serialization result = summary_serialization result.delete("quiz_id") result end
section_type()
click to toggle source
# File lib/sakai-info/quiz.rb, line 453 def section_type nil end
summary_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 479 def summary_serialization { "id" => self.id, "title" => self.title, "quiz_id" => self.quiz.id, "sequence" => self.sequence } end