Module: Ecm::Cms::DatabaseTemplate
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ecm/cms/database_template.rb', line 4 def self.included(base) base.extend(ClassMethods) # associations base.belongs_to :ecm_cms_folder, class_name: 'Ecm::Cms::Folder', foreign_key: 'ecm_cms_folder_id' # callbacks base.after_initialize :set_defaults base.before_validation :assert_trailing_slash_on_pathname base.after_save :clear_resolver_cache # validations base.validates :basename, presence: true, uniqueness: { scope: [:pathname, :locale, :format, :handler] } base.validates :handler, inclusion: ActionView::Template::Handlers.extensions.map(&:to_s) base.validates :locale, inclusion: I18n.available_locales.map(&:to_s), allow_nil: true, allow_blank: true base.validates :format, inclusion: Mime::SET.symbols.map(&:to_s), allow_nil: true, allow_blank: true base.validates :pathname, presence: true end |
Instance Method Details
#filename ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/ecm/cms/database_template.rb', line 37 def filename filename = basename.dup filename << ".#{locale}" if locale.present? filename << ".#{format}" if format.present? filename << ".#{handler}" if handler.present? filename end |
#human ⇒ Object
33 34 35 |
# File 'lib/ecm/cms/database_template.rb', line 33 def human "#{self.class.name}: #{path_and_filename}" end |
#path_and_filename ⇒ Object
45 46 47 |
# File 'lib/ecm/cms/database_template.rb', line 45 def path_and_filename "#{pathname}#{filename}" end |