Sha256: 74e7d824419e411e3569fa836fc168b864ea564de6403addba93aa93950fe417
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
module Templates::PageExtensions def self.included(base) base.class_eval do before_save :match_with_template def allowed_children [default_child, Template.all].flatten end 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
3 entries across 3 versions & 1 rubygems