Sha256: 446b3114a40504b37c11fdd0c7da6a5b6b1c369caceb0bd69dfba2867e72ada4

Contents?: true

Size: 614 Bytes

Versions: 4

Compression:

Stored size: 614 Bytes

Contents

class PagePart < ActiveRecord::Base
  belongs_to :page

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

  attr_accessor_with_default :additional, false

  def render(drops_or_context, wrap = false)
    template = Liquid::Template.parse(body)
    result = tracker.cleanup template.render(drops_or_context, :registers => {:tracker => tracker})
    main? ? result : (wrap ? "<% content_for :#{name} do %>#{result}<% end %>" : result)
  end

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

  def main?
    name == PufferPages.primary_page_part_name
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
puffer_pages-0.0.6 app/models/page_part.rb
puffer_pages-0.0.5 app/models/page_part.rb
puffer_pages-0.0.4 app/models/page_part.rb
puffer_pages-0.0.3 app/models/page_part.rb