Module: CarrierWave::Uploader::Versions
- Extended by:
- ActiveSupport::Concern
- Includes:
- Callbacks
- Included in:
- Base
- Defined in:
- lib/carrierwave/uploader/versions.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#recreate_versions! ⇒ Object
Recreate versions and reprocess them.
-
#url(*args) ⇒ Object
When given a version name as a parameter, will return the url for that version This also works with nested versions.
-
#version_name ⇒ Object
Returns.
-
#versions ⇒ Object
Returns a hash mapping the name of each version of the uploader to an instance of it.
Methods included from Callbacks
Instance Method Details
#recreate_versions! ⇒ Object
Recreate versions and reprocess them. This can be used to recreate versions if their parameters somehow have changed.
167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/carrierwave/uploader/versions.rb', line 167 def recreate_versions! # Some files could possibly not be stored on the local disk. This # doesn't play nicely with processing. Make sure that we're only # processing a cached file # # The call to store! will trigger the necessary callbacks to both # process this version and all sub-versions cache_stored_file! if !cached? store! end |
#url(*args) ⇒ Object
When given a version name as a parameter, will return the url for that version This also works with nested versions. When given a query hash as a parameter, will return the url with signature that contains query params Query hash only works with AWS (S3 storage).
Example
my_uploader.url # => /path/to/my/uploader.gif
my_uploader.url(:thumb) # => /path/to/my/thumb_uploader.gif
my_uploader.url(:thumb, :small) # => /path/to/my/thumb_small_uploader.gif
my_uploader.url(:query => {"response-content-disposition" => "attachment"})
my_uploader.url(:version, :sub_version, :query => {"response-content-disposition" => "attachment"})
Parameters
- *args (Symbol)
-
any number of versions
OR/AND
- Hash
-
query params
Returns
- String
-
the location where this file is accessible via a url
151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/carrierwave/uploader/versions.rb', line 151 def url(*args) if (version = args.first) && version.respond_to?(:to_sym) raise ArgumentError, "Version #{version} doesn't exist!" if versions[version.to_sym].nil? # recursively proxy to version versions[version.to_sym].url(*args[1..-1]) elsif args.first super(args.first) else super end end |
#version_name ⇒ Object
Returns
- String
-
the name of this version of the uploader
123 124 125 |
# File 'lib/carrierwave/uploader/versions.rb', line 123 def version_name self.class.version_names.join('_').to_sym unless self.class.version_names.blank? end |
#versions ⇒ Object
Returns a hash mapping the name of each version of the uploader to an instance of it
Returns
- Hash=> CarrierWave::Uploader
-
a list of uploader instances
109 110 111 112 113 114 115 116 |
# File 'lib/carrierwave/uploader/versions.rb', line 109 def versions return @versions if @versions @versions = {} self.class.versions.each do |name, version| @versions[name] = version[:uploader].new(model, mounted_as) end @versions end |