Sha256: f23282c5f506ee97ca70bf35227e8284ac69fa969a6c933bdda36bf3cc8993fb

Contents?: true

Size: 974 Bytes

Versions: 4

Compression:

Stored size: 974 Bytes

Contents

module Templates::PageExtensions

  def self.included(base)
    base.class_eval do
      before_save :match_with_template
    end
  end

  def match_with_template
    unless self.template.blank?
      self.class_name = self.template.page_class_name
      self.layout_id = self.template.layout_id
    end
  end

  def template_name
    template ? template.name : "Blank Page"
  end

  def is_a_blank_page?
    ! template_id?
  end

  # Meta-programming methods to determine if page is built on a specific template
  # e.g. @page.is_a_press_release? assuming you have "Press Release" template defined.
  begin
    Template.all.each do |unique_template|
      class_eval <<-CODE, __FILE__, __LINE__
        def is_a_#{unique_template.name.titleize.scan(/\w+/).join.underscore}?
          template_id? && template.name == "#{unique_template.name}"
        end
      CODE
    end
  rescue
    # This won't run before initial migrations, which create the Template table
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
radiant-templates-extension-1.0.8 lib/templates/page_extensions.rb
radiant-templates-extension-1.0.7 lib/templates/page_extensions.rb
radiant-templates-extension-1.0.6 lib/templates/page_extensions.rb
radiant-templates-extension-1.0.5 lib/templates/page_extensions.rb