Class: Viewable::Block

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Admin::Viewable::Block, Viewable, Field::UUID
Defined in:
app/models/viewable/block.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Admin::Viewable::Block

#rails_admin_label

Methods included from Field::UUID

#other_uuid, #uuid, #uuid_with

Methods included from Viewable

#list, models, #other_locales, #short_type, #unique_key_hash

Class Method Details

.namesObject



26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/viewable/block.rb', line 26

def names
  @_names ||= begin
    names = CMS.html_names 'app/views/cms/blocks'
    names.each do |name|
      if name.in? restricted_names
        raise ArgumentError, "'cms/blocks/_#{name}.html' partial should be called otherwise, '#{name}' taken"
      end
    end
    names
  end
end

.restricted_namesObject



16
17
18
19
20
21
22
23
24
# File 'app/models/viewable/block.rb', line 16

def restricted_names
  @_restricted_names ||= Viewable.names + begin
    CMS.constants.grep(/Helper$/).map{ |name|
      "CMS::#{name}".constantize.instance_methods.grep(/^cms_/)
    }.flatten.map{ |name|
      name.to_s.sub(/^cms_/, '')
    }
  end
end

Instance Method Details

#partial_nameObject



11
12
13
# File 'app/models/viewable/block.rb', line 11

def partial_name
  @_partial_name ||= unique_key_name.partition('/').first
end

#partial_pathObject



7
8
9
# File 'app/models/viewable/block.rb', line 7

def partial_path
  @_partial_path ||= "cms/blocks/#{partial_name}"
end