Sha256: 10880aef8e823f20e8173b89eb3fb07e40d52d8ef1dd3be11562cef49c268a90
Contents?: true
Size: 1.51 KB
Versions: 4
Compression:
Stored size: 1.51 KB
Contents
module ErpTechSvcs module Extensions module ActiveRecord module HasFileAssets def self.included(base) base.extend(ClassMethods) end module ClassMethods def has_file_assets extend HasFileAssets::SingletonMethods include HasFileAssets::InstanceMethods has_many :files, :as => :file_asset_holder, :class_name => 'FileAsset', :dependent => :destroy, :include => :capabilities end end module SingletonMethods end module InstanceMethods # Capabilites can be passed via a hash # { # :download => ['admin', 'employee'], # :edit => ['admin'] # } # def add_file(data, path=nil, capabilities=nil) file_asset = FileAsset.create!(:file_asset_holder => self, :base_path => path, :data => data) #set capabilites if they are passed capabilities.each do |capability_type, roles| file_asset.add_capability(capability_type, nil, roles) end if capabilities file_asset end def images self.files.where('type = ?', 'Image') end def templates self.files.where('type = ?', 'Template') end def pdfs self.files.where('type = ?', 'Pdf') end def xmls self.files.where('type = ?', 'XmlFile') end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems