Class: Page
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Page
- Defined in:
- app/models/page.rb
Instance Method Summary collapse
-
#fetch_resource(params = {}) ⇒ Object
eg.
- #home? ⇒ Boolean
- #path_params ⇒ Object
- #resource_class ⇒ Object
- #resource_params(object) ⇒ Object
- #resourceful? ⇒ Boolean
- #to_label ⇒ Object
Instance Method Details
#fetch_resource(params = {}) ⇒ Object
eg. # params => { :q => “abc”, :a => 5, :slug => “first_post”} # page.path => “/blog/:slug” post = page.fetch(params)
Post.where(:slug => “first_post”).first
38 39 40 41 42 43 44 45 |
# File 'app/models/page.rb', line 38 def fetch_resource(params = {}) if self.resourceful? meaningful_params = params.stringify_keys.select {|k, v| path_params.include?(k) } resource_class.where(meaningful_params).first end end |
#home? ⇒ Boolean
18 19 20 |
# File 'app/models/page.rb', line 18 def home? path == "/" end |
#path_params ⇒ Object
47 48 49 |
# File 'app/models/page.rb', line 47 def path_params self.path.scan(/:([A-z_][A-z0-9_]*)/).flatten end |
#resource_class ⇒ Object
26 27 28 29 30 |
# File 'app/models/page.rb', line 26 def resource_class if self.resourceful? @resource_class ||= resource_type.to_s.camelize.constantize end end |
#resource_params(object) ⇒ Object
51 52 53 54 55 56 57 |
# File 'app/models/page.rb', line 51 def resource_params(object) params = {} path_params.each { |param| params[param.to_sym] = object.send(param) } params end |
#resourceful? ⇒ Boolean
22 23 24 |
# File 'app/models/page.rb', line 22 def resourceful? resource_type.present? end |
#to_label ⇒ Object
59 60 61 |
# File 'app/models/page.rb', line 59 def to_label self.respond_to?(:locale) && locale.present? ? "#{name.titleize} (#{locale})" : "#{name.titleize}" end |