41 lines
663 B
Ruby
41 lines
663 B
Ruby
|
require 'delegate'
|
||
|
|
||
|
class CarrierwaveMongoidMedia < SimpleDelegator
|
||
|
def self.find(path)
|
||
|
obj = Mongoid::GridFS[path]
|
||
|
|
||
|
raise Mongoid::Errors::DocumentNotFound.new(Mongoid::GridFS, :path => path) if !obj
|
||
|
|
||
|
new(obj)
|
||
|
end
|
||
|
|
||
|
def self.force_downloads_on(&block)
|
||
|
if block
|
||
|
@block = block
|
||
|
else
|
||
|
@block
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def attachment_filename
|
||
|
File.basename(self.filename)
|
||
|
end
|
||
|
|
||
|
def initialize(gridfs_object)
|
||
|
@gridfs_object = gridfs_object
|
||
|
end
|
||
|
|
||
|
def __getobj__
|
||
|
@gridfs_object
|
||
|
end
|
||
|
|
||
|
def force_download?
|
||
|
if block = self.class.force_downloads_on
|
||
|
block.call(self.filename)
|
||
|
else
|
||
|
false
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|