Module: Cable::Media::ActsAsAttachable::ClassMethods

Defined in:
lib/cable/media/acts_as_attachable.rb

Instance Method Summary collapse

Instance Method Details

#add_asset(asset) ⇒ Object



34
35
36
# File 'lib/cable/media/acts_as_attachable.rb', line 34

def add_asset(asset)
  has_many(asset.pluralize.to_sym, :as => :attachable)
end

#add_collections(assets) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cable/media/acts_as_attachable.rb', line 15

def add_collections(assets)
  all = (assets.size == 1 and assets.first == :all)
  if not all and assets.is_a?(Array)
    assets.each{|a| add_asset(a)}
  else
    if defined?(Rails.root)
      (
        Dir["#{Rails.root}/app/models/*"] + 
        Dir["#{Rails.root}/vendor/plugins/acts_as_attachable/app/models/*"]
      ).each do |e|
          e = File.basename(e)
          if File.extname(e) == '.rb' and e.split('_').first == 'attachable'
             add_asset(e.split('.').first)
          end
      end
    end 
  end
end

#has_attachments(*args) ⇒ Object



10
11
12
13
# File 'lib/cable/media/acts_as_attachable.rb', line 10

def has_attachments(*args)
  send :include, InstanceMethods
  add_collections(args)
end