Sha256: d6d3d475720f86b43ede38ad72be868e6983731295ac88db901e562e6bceb8ea
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
module PufferPages module Liquid class PageDrop < ::Liquid::Drop include ActionController::UrlFor include Rails.application.routes.url_helpers def initialize page, request = nil @page, @request = page, request end (%w(name title description keywords created_at updated_at) + Page.statuses.map{|s| "#{s}?"}).each do |attribute| define_method attribute do page.send(attribute) end end def parent @parent ||= self.class.new(page.parent, @request) end %w(ancestors children).each do |attribute| define_method attribute do instance_variable_get("@#{attribute}") || instance_variable_set("@#{attribute}", page.send(attribute).map{ |ac| self.class.new(ac, request)}) end end def ancestors? !page.root? end def children? page.children.present? end def path puffer_page_path page.location end def url puffer_page_url page.location end def current? path == request.path_info end def ancestor? request.path_info.start_with? path end private def request @request end def page @page end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
puffer_pages-0.0.11 | lib/puffer_pages/liquid/page_drop.rb |
puffer_pages-0.0.10 | lib/puffer_pages/liquid/page_drop.rb |