Sha256: 868880e1cedf533b2423e8090f1b52dc74650919ecefb667918d5a0e351ac5fa

Contents?: true

Size: 965 Bytes

Versions: 5

Compression:

Stored size: 965 Bytes

Contents

# @private
class Skyline::Sections::ContentItemSection < ActiveRecord::Base
  include Skyline::Sections::Interface

  belongs_to :content_item, :polymorphic => true
  
  validates_presence_of :content_item_type, :content_item_id

  cattr_accessor :selectable_models  
  
  class << self
    def selectable_content_models
      # lazy load all models in /app/models (not recursive) to find all Content models
      Dir.chdir(File.join(Rails.root, "app", "models")) do 
        Dir.glob("*.rb").map{|f| f.sub(".rb","").camelcase.constantize}
      end
      Rails.logger.info "Selectable models for ContentItemSections: " + Skyline::Sections::ContentItemSection.selectable_models.inspect
      selectable_models || []
    end
    
    def register_selectable_model(klass)
      self.selectable_models ||= []
      self.selectable_models.delete_if{|c| c.to_s == klass.to_s } # Hack to remove stale object
      self.selectable_models << klass
    end
    
  end  
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
skylinecms-3.3.0 app/models/skyline/sections/content_item_section.rb
skylinecms-3.2.0 app/models/skyline/sections/content_item_section.rb
skylinecms-3.1.0 app/models/skyline/sections/content_item_section.rb
westarete-skylinecms-3.0.8.20100329 app/models/skyline/sections/content_item_section.rb
westarete-skylinecms-3.0.8.20100330 app/models/skyline/sections/content_item_section.rb