Module: CarrierWave::Uploader::Cache
- Defined in:
- lib/carrierwave/uploader/cache.rb
Instance Method Summary collapse
-
#cache!(new_file) ⇒ Object
Caches the given file.
-
#cache_dir ⇒ Object
Override this in your Uploader to change the directory where files are cached.
-
#cache_name ⇒ Object
Returns a String which uniquely identifies the currently cached file for later retrieval.
-
#cached? ⇒ Boolean
Returns true if the uploader has been cached.
-
#retrieve_from_cache!(cache_name) ⇒ Object
Retrieves the file with the given cache_name from the cache.
Instance Method Details
#cache!(new_file) ⇒ Object
Caches the given file. Calls process! to trigger any process callbacks.
Parameters
- new_file (File, IOString, Tempfile)
-
any kind of file object
Raises
- CarrierWave::FormNotMultipart
-
if the assigned parameter is a string
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/carrierwave/uploader/cache.rb', line 54 def cache!(new_file) new_file = CarrierWave::SanitizedFile.new(new_file) raise CarrierWave::FormNotMultipart if new_file.is_path? unless new_file.empty? with_callbacks(:cache, new_file) do self.cache_id = CarrierWave.generate_cache_id unless cache_id @filename = new_file.filename self.original_filename = new_file.filename if CarrierWave.config[:cache_to_cache_dir] @file = new_file.copy_to(cache_path, CarrierWave.config[:permissions]) else @file = new_file end end end end |
#cache_dir ⇒ Object
Override this in your Uploader to change the directory where files are cached.
Returns
- String
-
a directory
28 29 30 |
# File 'lib/carrierwave/uploader/cache.rb', line 28 def cache_dir CarrierWave.config[:cache_dir] end |
#cache_name ⇒ Object
Returns a String which uniquely identifies the currently cached file for later retrieval
Returns
- String
-
a cache name, in the format YYYYMMDD-HHMM-PID-RND/filename.txt
39 40 41 |
# File 'lib/carrierwave/uploader/cache.rb', line 39 def cache_name File.join(cache_id, full_original_filename) if cache_id and original_filename end |
#cached? ⇒ Boolean
Returns true if the uploader has been cached
Returns
- Bool
-
whether the current file is cached
17 18 19 |
# File 'lib/carrierwave/uploader/cache.rb', line 17 def cached? @cache_id end |
#retrieve_from_cache!(cache_name) ⇒ Object
Retrieves the file with the given cache_name from the cache.
Parameters
- cache_name (String)
-
uniquely identifies a cache file
Raises
- CarrierWave::InvalidParameter
-
if the cache_name is incorrectly formatted.
85 86 87 88 89 90 91 |
# File 'lib/carrierwave/uploader/cache.rb', line 85 def retrieve_from_cache!(cache_name) with_callbacks(:retrieve_from_cache, cache_name) do self.cache_id, self.original_filename = cache_name.to_s.split('/', 2) @filename = original_filename @file = CarrierWave::SanitizedFile.new(cache_path) end end |