module ActiveContent::Templatable

Public Instance Methods

has_templates(*args) click to toggle source
# File lib/active_content/templatable.rb, line 6
def has_templates(*args)
  extend Enumerize
  include ActiveDelegate

  options   = args.extract_options!
  templates = args
  default   = options.fetch :default, templates.first

  enumerize :template, in: templates, predicates: { prefix: true }, default: default

  has_one :view_template, as: :templatable, class_name: ActiveContent.config.template_class_name, autosave: true, dependent: :destroy
  delegate_attribute :name, :string, to: :view_template, prefix: 'template', alias: :template, finder: true, scope: true
end