Sha256: 5da9784c1e437450aefaaf324b7dee8bfae3cd3d8f21a792c431ff043081c3a0

Contents?: true

Size: 928 Bytes

Versions: 2

Compression:

Stored size: 928 Bytes

Contents

module PufferPages
  module Liquid
    class PageDrop < ::Liquid::Drop

      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(children ancestors).each do |attribute|
        define_method attribute do
          instance_variable_get("@#{attribute}") || instance_variable_set("@#{attribute}", @page.send(attribute).map{ |page| self.class.new(page, @request)})
        end
      end

      def ancestors?
        !@page.root?
      end

      def children?
        @page.children.present?
      end

      def path
        
      end

      def url
        
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puffer_pages-0.0.9 lib/puffer_pages/liquid/page_drop.rb
puffer_pages-0.0.8 lib/puffer_pages/liquid/page_drop.rb