Sha256: 813c1605cee557c5979eb6d650b2958672029f1dcf1a965da2351cb3bc273c23

Contents?: true

Size: 614 Bytes

Versions: 5

Compression:

Stored size: 614 Bytes

Contents

class PagePart < ActiveRecord::Base
  belongs_to :page

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

  def render(drops_or_context, page = nil)
    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

5 entries across 5 versions & 1 rubygems

Version Path
puffer_pages-0.0.14 app/models/page_part.rb
puffer_pages-0.0.13 app/models/page_part.rb
puffer_pages-0.0.12 app/models/page_part.rb
puffer_pages-0.0.11 app/models/page_part.rb
puffer_pages-0.0.10 app/models/page_part.rb