Class: Activa::Page
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Activa::Page
- Defined in:
- app/models/activa/page.rb
Class Method Summary collapse
- .has_root? ⇒ Boolean
- .normalize_path(path) ⇒ Object
- .normalize_uri(uri) ⇒ Object
- .retrieve(uri) ⇒ Object
Instance Method Summary collapse
- #inner_pages ⇒ Object
- #neighbours ⇒ Object
- #path ⇒ Object
-
#potential_parents ⇒ Object
Retrieve list of all potential parents pages for current page.
- #publish(params = nil) ⇒ Object
- #regenerate_uri! ⇒ Object
- #save_as_draft ⇒ Object
- #update_as_draft(params) ⇒ Object
Class Method Details
.has_root? ⇒ Boolean
93 94 95 |
# File 'app/models/activa/page.rb', line 93 def self.has_root? unscoped.count > 0 end |
.normalize_path(path) ⇒ Object
123 124 125 |
# File 'app/models/activa/page.rb', line 123 def self.normalize_path(path) path.sub(/^\/+/, '') end |
.normalize_uri(uri) ⇒ Object
119 120 121 |
# File 'app/models/activa/page.rb', line 119 def self.normalize_uri(uri) "/#{uri}".sub(/\/+/, '/') end |
.retrieve(uri) ⇒ Object
113 114 115 116 117 |
# File 'app/models/activa/page.rb', line 113 def self.retrieve(uri) uri = Activa::Page.normalize_uri(uri) uri = '/' if uri == '/home' Activa::Page.find_by_uri(Activa::Page.normalize_uri(uri)) end |
Instance Method Details
#inner_pages ⇒ Object
105 106 107 |
# File 'app/models/activa/page.rb', line 105 def inner_pages children.select([:id, :parent_id, :title, :uri, :slug]) end |
#neighbours ⇒ Object
109 110 111 |
# File 'app/models/activa/page.rb', line 109 def neighbours self_and_siblings.select([:id, :parent_id, :title, :uri, :slug]) end |
#path ⇒ Object
101 102 103 |
# File 'app/models/activa/page.rb', line 101 def path root? ? slug : Activa::Page.normalize_path(uri) end |
#potential_parents ⇒ Object
Retrieve list of all potential parents pages for current page
89 90 91 |
# File 'app/models/activa/page.rb', line 89 def potential_parents new_record? ? Activa::Page.scoped : Activa::Page.where("id != ?", id) end |
#publish(params = nil) ⇒ Object
72 73 74 75 76 |
# File 'app/models/activa/page.rb', line 72 def publish(params = nil) self.attributes = params if params self.state = :published save end |
#regenerate_uri! ⇒ Object
97 98 99 |
# File 'app/models/activa/page.rb', line 97 def regenerate_uri! update_attribute(:uri, generate_uri) end |
#save_as_draft ⇒ Object
78 79 80 81 |
# File 'app/models/activa/page.rb', line 78 def save_as_draft self.state = :draft save end |
#update_as_draft(params) ⇒ Object
83 84 85 86 |
# File 'app/models/activa/page.rb', line 83 def update_as_draft(params) self.attributes = params save_as_draft end |