summaryrefslogtreecommitdiff
path: root/app/uploaders/image_uploader.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/uploaders/image_uploader.rb')
-rw-r--r--app/uploaders/image_uploader.rb63
1 files changed, 63 insertions, 0 deletions
diff --git a/app/uploaders/image_uploader.rb b/app/uploaders/image_uploader.rb
new file mode 100644
index 0000000..114ccc6
--- /dev/null
+++ b/app/uploaders/image_uploader.rb
@@ -0,0 +1,63 @@
+# encoding: utf-8
+
+class ImageUploader < CarrierWave::Uploader::Base
+
+ # Include RMagick or ImageScience support:
+ # include CarrierWave::RMagick
+ include CarrierWave::MiniMagick
+ # include CarrierWave::ImageScience
+
+ # Choose what kind of storage to use for this uploader:
+ storage :file
+ # storage :fog
+
+ # Override the directory where uploaded files will be stored.
+ # This is a sensible default for uploaders that are meant to be mounted:
+ def store_dir
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
+ end
+
+ # Provide a default URL as a default if there hasn't been a file uploaded:
+ def default_url
+ "/images/fallback/" + [version_name, "default.jpg"].compact.join('_')
+ end
+
+ # Process files as they are uploaded:
+ # process :scale => [200, 300]
+ #
+ # def scale(width, height)
+ # # do something
+ # end
+
+ # Create different versions of your uploaded files:
+ version :mini do
+ process :resize_to_fill => [32, 32]
+ end
+
+ version :small do
+ process :resize_to_fill => [72, 72]
+ end
+
+ version :profile do
+ process :resize_to_fill => [200, 200]
+ end
+
+ version :snom_caller_picture do
+ process :resize_to_fill => [100, 135]
+ end
+
+ # Add a white list of extensions which are allowed to be uploaded.
+ # For images you might use something like this:
+ def extension_white_list
+ %w(jpg jpeg gif png)
+ end
+
+ # Override the filename of the uploaded files:
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
+ # def filename
+ # "something.jpg" if original_filename
+ # end
+
+ # TODO Secure filename
+
+end