app/uploaders/file_uploader.rb in lolita-file-upload-0.2.1 vs app/uploaders/file_uploader.rb in lolita-file-upload-0.2.2
- old
+ new
@@ -1,21 +1,33 @@
-class FileUploader < CarrierWave::Uploader::Base
- storage :file
- def timestamp
- time=if model
- model.created_at || Time.now
- else
- Time.now
- end
- time.strftime("%Y%m")
- end
-
- # With slash in first place it will be absolute url, otherwise relative to Rails.root+"/public"
- def store_dir
- if model
- "upload/#{model.class.to_s.underscore}/#{timestamp}/#{model.id}"
- else
- "upload/misc"
- end
- end
-
+class FileUploader < CarrierWave::Uploader::Base
+ storage :file
+ after :remove, :delete_empty_upstream_dirs
+
+ def timestamp
+ time=if model
+ model.created_at || Time.now
+ else
+ Time.now
+ end
+ time.strftime("%Y%m")
+ end
+
+ # With slash in first place it will be absolute url, otherwise relative to Rails.root+"/public"
+ def store_dir
+ if model
+ "upload/#{model.class.to_s.underscore}/#{timestamp}/#{model.id}"
+ else
+ "upload/misc"
+ end
+ end
+
+ def delete_empty_upstream_dirs
+ path = ::File.expand_path(store_dir, root)
+ Dir.delete(path) # fails if path not empty dir
+
+ # path = ::File.expand_path(base_store_dir, root)
+ # Dir.delete(path) # fails if path not empty dir
+ rescue SystemCallError
+ true # nothing, the dir is not empty
+ end
+
end
\ No newline at end of file