Sha256: 5ec6d7c74f323dccc48bb0296b9048ea4874b117cc305b8815a3d5b855ee23d1

Contents?: true

Size: 1.33 KB

Versions: 8

Compression:

Stored size: 1.33 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 => :delete_all 								
					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
          
				end
			end
		end
	end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
erp_tech_svcs-3.0.8 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.7 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.6 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.5 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.4 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.3 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.2 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb
erp_tech_svcs-3.0.1 lib/erp_tech_svcs/extensions/active_record/has_file_assets.rb