Sha256: fb992784f06fe3058fd5cdd12c36abe9ec21be306c23060a2773e2801998f452

Contents?: true

Size: 1.03 KB

Versions: 11

Compression:

Stored size: 1.03 KB

Contents

# encoding: utf-8

module ConstructorPages
  # Template model. Template allows assing different design for pages.
  #
  # Templates has many fields.
  # For example:
  #   template "Product" should has fields like "price", "description", "size" etc.
  class Template < ActiveRecord::Base
    # Adding code_name_uniqueness method
    include CodeNameUniq

    validates_presence_of :name, :code_name
    validates_uniqueness_of :code_name
    validate :code_name_uniqueness

    default_scope -> { order :lft }

    has_many :pages, dependent: :destroy
    has_many :fields, dependent: :destroy

    acts_as_nested_set

    # Return child corresponding child_id or children first
    def child
      !child_id && !leaf? ? children.first : self.class.find(child_id)
    end

    private

    # Check if there is code_name in same branch
    def check_code_name(cname)
      [cname.pluralize, cname.singularize].each {|name|
        return false if root.descendants.map{|t| t.code_name unless t.code_name == cname}.include?(name)}
      true
    end
  end
end

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
constructor-pages-0.7.7 app/models/constructor_pages/template.rb
constructor-pages-0.7.6 app/models/constructor_pages/template.rb
constructor-pages-0.7.5 app/models/constructor_pages/template.rb
constructor-pages-0.7.4 app/models/constructor_pages/template.rb
constructor-pages-0.7.3 pages/app/models/constructor_pages/template.rb
constructor-core-0.7.3 pages/app/models/constructor_pages/template.rb
constructor-cms-0.7.3 pages/app/models/constructor_pages/template.rb
constructor-pages-0.7.2 pages/app/models/constructor_pages/template.rb
constructor-core-0.7.2 pages/app/models/constructor_pages/template.rb
constructor-cms-0.7.2 pages/app/models/constructor_pages/template.rb
constructor-core-0.7.1 pages/app/models/constructor_pages/template.rb