Class: SakaiInfo::Page
- Inherits:
-
SakaiObject
- Object
- SakaiObject
- SakaiInfo::Page
- Defined in:
- lib/sakai-info/page.rb
Constant Summary collapse
- @@cache =
{}
Instance Attribute Summary collapse
-
#dbrow ⇒ Object
readonly
Returns the value of attribute dbrow.
-
#layout ⇒ Object
readonly
Returns the value of attribute layout.
-
#order ⇒ Object
readonly
Returns the value of attribute order.
-
#site_id ⇒ Object
readonly
Returns the value of attribute site_id.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
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
Instance Method Summary collapse
- #default_serialization ⇒ Object
-
#initialize(dbrow) ⇒ Page
constructor
A new instance of Page.
- #properties ⇒ Object
- #site ⇒ Object
- #site_summary_serialization ⇒ Object
-
#summary_serialization ⇒ Object
serialization.
- #tools ⇒ Object
Methods inherited from SakaiObject
all_serializations, #dbrow_only_serialization, #dbrow_serialization, #object_type_serialization, #serialize, #to_json, #to_yaml
Constructor Details
#initialize(dbrow) ⇒ Page
Returns a new instance of Page.
42 43 44 45 46 47 48 49 50 |
# File 'lib/sakai-info/page.rb', line 42 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:page_id] @title = dbrow[:title] @order = dbrow[:site_order].to_i @layout = dbrow[:layout] @site_id = dbrow[:site_id] end |
Instance Attribute Details
#dbrow ⇒ Object (readonly)
Returns the value of attribute dbrow.
14 15 16 |
# File 'lib/sakai-info/page.rb', line 14 def dbrow @dbrow end |
#layout ⇒ Object (readonly)
Returns the value of attribute layout.
14 15 16 |
# File 'lib/sakai-info/page.rb', line 14 def layout @layout end |
#order ⇒ Object (readonly)
Returns the value of attribute order.
14 15 16 |
# File 'lib/sakai-info/page.rb', line 14 def order @order end |
#site_id ⇒ Object (readonly)
Returns the value of attribute site_id.
14 15 16 |
# File 'lib/sakai-info/page.rb', line 14 def site_id @site_id end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
14 15 16 |
# File 'lib/sakai-info/page.rb', line 14 def title @title end |
Class Method Details
.count_by_site_id(site_id) ⇒ Object
33 34 35 |
# File 'lib/sakai-info/page.rb', line 33 def self.count_by_site_id(site_id) Page.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/page.rb', line 17 def self.find(id) if @@cache[id].nil? row = DB.connect[:sakai_site_page].where(:page_id => id).first if row.nil? raise ObjectNotFoundException.new(Page, id) end @@cache[id] = Page.new(row) end @@cache[id] end |
.find_by_site_id(site_id) ⇒ Object
37 38 39 40 |
# File 'lib/sakai-info/page.rb', line 37 def self.find_by_site_id(site_id) Page.query_by_site_id(site_id).order(:site_order).all. collect { |row| @@cache[row[:page_id]] = Page.new(row) } end |
Instance Method Details
#default_serialization ⇒ Object
84 85 86 87 88 |
# File 'lib/sakai-info/page.rb', line 84 def default_serialization result = site_summary_serialization result["site"] = self.site.serialize(:summary) result end |
#properties ⇒ Object
56 57 58 |
# File 'lib/sakai-info/page.rb', line 56 def properties @properties ||= PageProperty.find_by_page_id(@id) end |
#site ⇒ Object
52 53 54 |
# File 'lib/sakai-info/page.rb', line 52 def site @site ||= Site.find(@site_id) end |
#site_summary_serialization ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/sakai-info/page.rb', line 73 def site_summary_serialization result = summary_serialization result.delete("site_id") result["order"] = self.order result["tools"] = self.tools.collect { |tool| tool.serialize(:summary) } if not self.properties.nil? and self.properties != {} result["properties"] = self.properties end result end |
#summary_serialization ⇒ Object
serialization
65 66 67 68 69 70 71 |
# File 'lib/sakai-info/page.rb', line 65 def summary_serialization { "id" => self.id, "title" => self.title, "site_id" => self.site_id } end |
#tools ⇒ Object
60 61 62 |
# File 'lib/sakai-info/page.rb', line 60 def tools @tools ||= Tool.find_by_page_id(@id) end |