Sha256: fbd1570be869ad01ab57cf00915c8287745d72eb62e4df47fbe02dfd0a894304

Contents?: true

Size: 609 Bytes

Versions: 1

Compression:

Stored size: 609 Bytes

Contents

module KnowledgeBase::Concerns::Models::Sectionables::Sectionable
  extend ActiveSupport::Concern

  included do
    extend Enumerize

    def self.inherited(child)
      model_name = snake_case_class_name child.name
      styles = KnowledgeBase.config.section_styles[model_name] || [ ]
      child.enumerize :style, in: styles

      super
    end

    self.abstract_class = true

    def to_s
      self.class.model_name.human
    end

    private

    def self.snake_case_class_name(class_name)
      class_name.gsub("KnowledgeBase::Sectionables::", "").underscore.gsub("/", "_").to_sym
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
knowledge_base-0.2.0 lib/knowledge_base/concerns/models/sectionables/sectionable.rb