Sha256: 3ec9c930d202e7a8634bc9f878f7af3379383a87734ee63bc91b4864f9f775d0

Contents?: true

Size: 685 Bytes

Versions: 2

Compression:

Stored size: 685 Bytes

Contents

class PufferPages::PagePart < ActiveRecord::Base
  self.abstract_class = true

  belongs_to :page, :class_name => '::Page'

  validates_presence_of :name
  validates_uniqueness_of :name, :scope => :page_id

  def render(drops_or_context, page = page)
    template = Liquid::Template.parse(body)
    result = tracker.cleanup template.render(drops_or_context,  :registers => {:tracker => tracker, :page => page, :file_system => PufferPages::Liquid::FileSystem.new})
    main? ? result : "<% content_for :'#{name}' do %>#{result}<% end %>"
  end

  def tracker
    @tracker ||= PufferPages::Liquid::Tracker.new
  end

  def main?
    name == PufferPages.primary_page_part_name
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puffer_pages-0.1.1 app/models/puffer_pages/page_part.rb
puffer_pages-0.1.0 app/models/puffer_pages/page_part.rb