lib/carrierwave/storage/abstract.rb in carrierwave-0.2.4 vs lib/carrierwave/storage/abstract.rb in carrierwave-0.3.0
- old
+ new
@@ -1,110 +1,30 @@
module CarrierWave
module Storage
##
# This file serves mostly as a specification for Storage engines. There is no requirement
- # that storage engines must be a subclass of this class. However, any storage engine must
- # conform to the following interface:
+ # that storage engines must be a subclass of this class.
#
- # The storage engine must respond to store!, taking an uploader object and a
- # CarrierWave::SanitizedFile as parameters. This method should do something to store
- # the given file, and then return an object.
- #
- # The storage engine must respond to retrieve!, taking an uploader object and an identifier
- # as parameters. This method should do retrieve and then return an object.
- #
- # The objects returned by store! and retrieve! both *must* respond to +identifier+, taking
- # no arguments. Identifier is a string that uniquely identifies this file and can be used
- # to retrieve it later.
- #
class Abstract
- # Do something to destroy the file
- #
- # === Parameters
- #
- # [uploader (CarrierWave::Uploader)] an uploader object
- # [identifier (String)] uniquely identifies the file
- #
- # === Returns
- #
- # [bool] True if file was remove or false
- #
- def self.destroy!(uploader, identifier)
- false
+ attr_reader :uploader
+
+ def initialize(uploader)
+ @uploader = uploader
end
- ##
- # Do setup specific for this storage engine
- #
def self.setup!; end
-
- ##
- # Do something to store the file
- #
- # === Parameters
- #
- # [uploader (CarrierWave::Uploader)] an uploader object
- # [file (CarrierWave::SanitizedFile)] the file to store
- #
- # === Returns
- #
- # [#identifier] an object
- #
- def self.store!(uploader, file)
- self.new
+
+ def identifier
+ uploader.filename
end
- # Do something to retrieve the file
- #
- # === Parameters
- #
- # [uploader (CarrierWave::Uploader)] an uploader object
- # [identifier (String)] uniquely identifies the file
- #
- # === Returns
- #
- # [#identifier] an object
- #
- def self.retrieve!(uploader, identifier)
- self.new
+ def store!
end
- ##
- # Should return a String that uniquely identifies this file and can be used to retrieve it from
- # the same storage engine later on.
- #
- # This is OPTIONAL
- #
- # === Returns
- #
- # [String] path to the file
- #
- def identifier; end
-
- ##
- # Should return the url where the file is publically accessible. If this is not set, then
- # it is assumed that the url is the path relative to the public directory.
- #
- # This is OPTIONAL
- #
- # === Returns
- #
- # [String] file's url
- #
- def url; end
-
- ##
- # Should return the path where the file is corrently located. This is OPTIONAL.
- #
- # This is OPTIONAL
- #
- # === Returns
- #
- # [String] path to the file
- #
- def path; end
+ def retrieve!
+ end
end # Abstract
end # Storage
end # CarrierWave