Sha256: 62166886edcd4b0f7c9c5f60600d2d1d4fafa6480de395372b8c1b6f6f352ca2

Contents?: true

Size: 1.11 KB

Versions: 15

Compression:

Stored size: 1.11 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
      Template.find(child_id) if child_id
    end

    # Convert name to accusative
    def to_accusative
      self.name.mb_chars.downcase.to_s.accusative
    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

15 entries across 15 versions & 1 rubygems

Version Path
constructor-pages-0.9.1 app/models/constructor_pages/template.rb
constructor-pages-0.9.0 app/models/constructor_pages/template.rb
constructor-pages-0.8.19 app/models/constructor_pages/template.rb
constructor-pages-0.8.18 app/models/constructor_pages/template.rb
constructor-pages-0.8.17 app/models/constructor_pages/template.rb
constructor-pages-0.8.16 app/models/constructor_pages/template.rb
constructor-pages-0.8.15 app/models/constructor_pages/template.rb
constructor-pages-0.8.14 app/models/constructor_pages/template.rb
constructor-pages-0.8.13 app/models/constructor_pages/template.rb
constructor-pages-0.8.12 app/models/constructor_pages/template.rb
constructor-pages-0.8.11 app/models/constructor_pages/template.rb
constructor-pages-0.8.10 app/models/constructor_pages/template.rb
constructor-pages-0.8.8 app/models/constructor_pages/template.rb
constructor-pages-0.8.7 app/models/constructor_pages/template.rb
constructor-pages-0.8.6 app/models/constructor_pages/template.rb