Class: SakaiInfo::Assignment
- Inherits:
-
SakaiXMLEntity
- Object
- SakaiObject
- SakaiXMLEntity
- SakaiInfo::Assignment
- Defined in:
- lib/sakai-info/assignment.rb
Constant Summary collapse
- @@cache =
{}
Instance Attribute Summary collapse
-
#dbrow ⇒ Object
readonly
Returns the value of attribute dbrow.
-
#site_id ⇒ Object
readonly
Returns the value of attribute site_id.
Attributes inherited from SakaiXMLEntity
#attributes, #properties, #xml, #xmldoc
Attributes inherited from SakaiObject
Class Method Summary collapse
- .count_by_site_id(site_id) ⇒ Object
- .find(id) ⇒ Object
- .find_by_site_id(site_id) ⇒ Object
-
.query_by_site_id(site_id) ⇒ Object
set lookup.
Instance Method Summary collapse
-
#default_serialization ⇒ Object
yaml/json serialization.
-
#initialize(dbrow) ⇒ Assignment
constructor
raw data constructor.
- #site ⇒ Object
- #submission_count ⇒ Object
- #submissions ⇒ Object
- #submissions_serialization ⇒ Object
- #summary_serialization ⇒ Object
-
#title ⇒ Object
getters.
Methods inherited from SakaiXMLEntity
all_serializations, #attributes_serialization, #dbrow_serialization, #format_entity_date, #parse_xml, #properties_serialization, #xml_serialization
Methods included from ModProps
Methods inherited from SakaiObject
all_serializations, #dbrow_only_serialization, #dbrow_serialization, #object_type_serialization, #serialize, #to_json, #to_yaml
Constructor Details
#initialize(dbrow) ⇒ Assignment
raw data constructor
30 31 32 33 34 35 36 37 |
# File 'lib/sakai-info/assignment.rb', line 30 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:assignment_id] @site_id = dbrow[:context] parse_xml end |
Instance Attribute Details
#dbrow ⇒ Object (readonly)
Returns the value of attribute dbrow.
14 15 16 |
# File 'lib/sakai-info/assignment.rb', line 14 def dbrow @dbrow end |
#site_id ⇒ Object (readonly)
Returns the value of attribute site_id.
14 15 16 |
# File 'lib/sakai-info/assignment.rb', line 14 def site_id @site_id end |
Class Method Details
.count_by_site_id(site_id) ⇒ Object
49 50 51 |
# File 'lib/sakai-info/assignment.rb', line 49 def self.count_by_site_id(site_id) Assignment.query_by_site_id(site_id).count end |
.find(id) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/sakai-info/assignment.rb', line 17 def self.find(id) if @@cache[id].nil? xml = "" row = DB.connect[:assignment_assignment].where(:assignment_id => id).first if row.nil? raise ObjectNotFoundException.new(Assignment, id) end @@cache[id] = Assignment.new(row) end @@cache[id] end |
.find_by_site_id(site_id) ⇒ Object
44 45 46 47 |
# File 'lib/sakai-info/assignment.rb', line 44 def self.find_by_site_id(site_id) Assignment.query_by_site_id(site_id). all.collect { |row| Assignment.new(row) } end |
Instance Method Details
#default_serialization ⇒ Object
yaml/json serialization
71 72 73 74 75 76 77 78 |
# File 'lib/sakai-info/assignment.rb', line 71 def default_serialization { "id" => self.id, "title" => self.title, "site" => self.site.serialize(:summary), "submission_count" => self.submission_count } end |
#site ⇒ Object
58 59 60 |
# File 'lib/sakai-info/assignment.rb', line 58 def site @site ||= Site.find(self.site_id) end |
#submission_count ⇒ Object
66 67 68 |
# File 'lib/sakai-info/assignment.rb', line 66 def submission_count @submission_count ||= AssignmentSubmission.count_by_assignment_id(self.id) end |
#submissions ⇒ Object
62 63 64 |
# File 'lib/sakai-info/assignment.rb', line 62 def submissions @submissions ||= AssignmentSubmission.find_by_assignment_id(self.id) end |
#submissions_serialization ⇒ Object
88 89 90 91 92 |
# File 'lib/sakai-info/assignment.rb', line 88 def submissions_serialization { "submissions" => self.submissions.collect{|s|s.serialize(:assignment_summary)} } end |
#summary_serialization ⇒ Object
80 81 82 83 84 85 86 |
# File 'lib/sakai-info/assignment.rb', line 80 def summary_serialization { "id" => self.id, "title" => self.title, "submission_count" => self.submission_count } end |
#title ⇒ Object
getters
54 55 56 |
# File 'lib/sakai-info/assignment.rb', line 54 def title @attributes["title"] end |