carrierwave 0.9.0 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of carrierwave might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/README.md +508 -158
- data/lib/carrierwave/compatibility/paperclip.rb +31 -21
- data/lib/carrierwave/downloader/base.rb +101 -0
- data/lib/carrierwave/downloader/remote_file.rb +68 -0
- data/lib/carrierwave/error.rb +1 -0
- data/lib/carrierwave/locale/en.yml +11 -5
- data/lib/carrierwave/mount.rb +220 -187
- data/lib/carrierwave/mounter.rb +255 -0
- data/lib/carrierwave/orm/activerecord.rb +24 -34
- data/lib/carrierwave/processing/mini_magick.rb +142 -79
- data/lib/carrierwave/processing/rmagick.rb +76 -35
- data/lib/carrierwave/processing/vips.rb +284 -0
- data/lib/carrierwave/processing.rb +1 -1
- data/lib/carrierwave/sanitized_file.rb +89 -70
- data/lib/carrierwave/storage/abstract.rb +16 -3
- data/lib/carrierwave/storage/file.rb +71 -3
- data/lib/carrierwave/storage/fog.rb +215 -58
- data/lib/carrierwave/storage.rb +1 -7
- data/lib/carrierwave/test/matchers.rb +88 -19
- data/lib/carrierwave/uploader/cache.rb +88 -44
- data/lib/carrierwave/uploader/callbacks.rb +1 -3
- data/lib/carrierwave/uploader/configuration.rb +81 -9
- data/lib/carrierwave/uploader/content_type_allowlist.rb +62 -0
- data/lib/carrierwave/uploader/content_type_denylist.rb +62 -0
- data/lib/carrierwave/uploader/default_url.rb +3 -5
- data/lib/carrierwave/uploader/dimension.rb +66 -0
- data/lib/carrierwave/uploader/download.rb +5 -69
- data/lib/carrierwave/uploader/extension_allowlist.rb +63 -0
- data/lib/carrierwave/uploader/extension_denylist.rb +64 -0
- data/lib/carrierwave/uploader/file_size.rb +43 -0
- data/lib/carrierwave/uploader/mountable.rb +13 -8
- data/lib/carrierwave/uploader/processing.rb +54 -21
- data/lib/carrierwave/uploader/proxy.rb +30 -8
- data/lib/carrierwave/uploader/remove.rb +0 -2
- data/lib/carrierwave/uploader/serialization.rb +3 -5
- data/lib/carrierwave/uploader/store.rb +59 -28
- data/lib/carrierwave/uploader/url.rb +8 -7
- data/lib/carrierwave/uploader/versions.rb +173 -124
- data/lib/carrierwave/uploader.rb +12 -6
- data/lib/carrierwave/utilities/file_name.rb +47 -0
- data/lib/carrierwave/utilities/uri.rb +14 -12
- data/lib/carrierwave/utilities.rb +2 -3
- data/lib/carrierwave/validations/active_model.rb +7 -13
- data/lib/carrierwave/version.rb +1 -1
- data/lib/carrierwave.rb +41 -16
- data/lib/generators/templates/{uploader.rb → uploader.rb.erb} +5 -9
- data/lib/generators/uploader_generator.rb +3 -3
- metadata +224 -100
- data/lib/carrierwave/locale/cs.yml +0 -11
- data/lib/carrierwave/locale/de.yml +0 -11
- data/lib/carrierwave/locale/nl.yml +0 -11
- data/lib/carrierwave/locale/sk.yml +0 -11
- data/lib/carrierwave/processing/mime_types.rb +0 -73
- data/lib/carrierwave/uploader/extension_blacklist.rb +0 -47
- data/lib/carrierwave/uploader/extension_whitelist.rb +0 -49
@@ -1,11 +0,0 @@
|
|
1
|
-
de:
|
2
|
-
errors:
|
3
|
-
messages:
|
4
|
-
carrierwave_processing_error: konnte nicht verarbeitet werden
|
5
|
-
carrierwave_integrity_error: ist kein erlaubter Dateityp
|
6
|
-
carrierwave_download_error: konnte nicht heruntergeladen werden
|
7
|
-
extension_white_list_error: "Sie sind nicht berechtigt %{extension} Dateien hochzuladen, erlaubte Typen: %{allowed_types}"
|
8
|
-
extension_black_list_error: "Sie sind nicht berechtigt %{extension} Dateien hochzuladen, verbotene Typen: %{prohibited_types}"
|
9
|
-
rmagick_processing_error: "Verarbeitung mit rmagick fehlgeschlagen, vielleicht ist es kein Bild? Original Fehler: %{e}"
|
10
|
-
mime_types_processing_error: "Verarbeitung mit MIME::Types fehlgeschlagen, vielleicht kein gültiger content-type? Original Fehler: %{e}"
|
11
|
-
mini_magick_processing_error: "Verarbeitung mit MiniMagick fehlgeschlagen, vielleicht ist es kein Bild? Original Fehler: %{e}"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
nl:
|
2
|
-
errors:
|
3
|
-
messages:
|
4
|
-
carrierwave_processing_error: kon niet worden verwerkt
|
5
|
-
carrierwave_integrity_error: is niet van een toegestaan bestandstype
|
6
|
-
carrierwave_download_error: kon niet gedownload worden
|
7
|
-
extension_white_list_error: "Het is niet toegestaan om %{extension} bestanden te uploaden; toegestane bestandstypes: %{allowed_types}"
|
8
|
-
extension_black_list_error: "Het is niet toegestaan om %{extension} bestanden te uploaden; verboden bestandstypes: %{prohibited_types}"
|
9
|
-
rmagick_processing_error: "Bewerking met rmagick is mislukt, misschien is het geen afbeelding? Originele foutmelding: %{e}"
|
10
|
-
mime_types_processing_error: "Verwerking van bestand met MIME::Types is mislukt, misschien is het geen geldig content-type? Originele foutmelding: %{e}"
|
11
|
-
mini_magick_processing_error: "Bewerking met MiniMagick is mislukt, misschien is het geen afbeelding? Originele foutmelding: %{e}"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
sk:
|
2
|
-
errors:
|
3
|
-
messages:
|
4
|
-
carrierwave_processing_error: sa nepodarilo spracovať
|
5
|
-
carrierwave_integrity_error: nie je povolený typ súboru
|
6
|
-
carrierwave_download_error: nie je možné stiahnuť
|
7
|
-
extension_white_list_error: "Nie je možné nahrávať %{extension} súbory, povolené typy: %{allowed_types}"
|
8
|
-
extension_black_list_error: "Nie je možné nahrávať %{extension} súbory, zakázané typy: %{prohibited_types}"
|
9
|
-
rmagick_processing_error: "Nepodarilo sa upraviť pomocou rmagick, možno nejde o obrázok? Hlásená chyba: %{e}"
|
10
|
-
mime_types_processing_error: "Súbor sa nepodarilo spracovať pomocou MIME::Types, možno nejde o valídny content-type? Hlásená chyba: %{e}"
|
11
|
-
mini_magick_processing_error: "Nepodarilo sa upraviť pomocou MiniMagick, možno nejde o obrázok? Hlásená chyba: %{e}"
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module CarrierWave
|
4
|
-
|
5
|
-
##
|
6
|
-
# This module simplifies the use of the mime-types gem to intelligently
|
7
|
-
# guess and set the content-type of a file. If you want to use this, you'll
|
8
|
-
# need to require this file:
|
9
|
-
#
|
10
|
-
# require 'carrierwave/processing/mime_types'
|
11
|
-
#
|
12
|
-
# And then include it in your uploader:
|
13
|
-
#
|
14
|
-
# class MyUploader < CarrierWave::Uploader::Base
|
15
|
-
# include CarrierWave::MimeTypes
|
16
|
-
# end
|
17
|
-
#
|
18
|
-
# You can now use the provided helper:
|
19
|
-
#
|
20
|
-
# class MyUploader < CarrierWave::Uploader::Base
|
21
|
-
# include CarrierWave::MimeTypes
|
22
|
-
#
|
23
|
-
# process :set_content_type
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
module MimeTypes
|
27
|
-
extend ActiveSupport::Concern
|
28
|
-
|
29
|
-
included do
|
30
|
-
begin
|
31
|
-
require "mime/types"
|
32
|
-
rescue LoadError => e
|
33
|
-
e.message << " (You may need to install the mime-types gem)"
|
34
|
-
raise e
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
module ClassMethods
|
39
|
-
def set_content_type(override=false)
|
40
|
-
process :set_content_type => override
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
GENERIC_CONTENT_TYPES = %w[application/octet-stream binary/octet-stream]
|
45
|
-
|
46
|
-
def generic_content_type?
|
47
|
-
GENERIC_CONTENT_TYPES.include? file.content_type
|
48
|
-
end
|
49
|
-
|
50
|
-
##
|
51
|
-
# Changes the file content_type using the mime-types gem
|
52
|
-
#
|
53
|
-
# === Parameters
|
54
|
-
#
|
55
|
-
# [override (Boolean)] whether or not to override the file's content_type
|
56
|
-
# if it is already set and not a generic content-type,
|
57
|
-
# false by default
|
58
|
-
#
|
59
|
-
def set_content_type(override=false)
|
60
|
-
if override || file.content_type.blank? || generic_content_type?
|
61
|
-
new_content_type = ::MIME::Types.type_for(file.original_filename).first.to_s
|
62
|
-
if file.respond_to?(:content_type=)
|
63
|
-
file.content_type = new_content_type
|
64
|
-
else
|
65
|
-
file.instance_variable_set(:@content_type, new_content_type)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
rescue ::MIME::InvalidContentType => e
|
69
|
-
raise CarrierWave::ProcessingError, I18n.translate(:"errors.messages.mime_types_processing_error", :e => e)
|
70
|
-
end
|
71
|
-
|
72
|
-
end # MimeTypes
|
73
|
-
end # CarrierWave
|
@@ -1,47 +0,0 @@
|
|
1
|
-
module CarrierWave
|
2
|
-
module Uploader
|
3
|
-
module ExtensionBlacklist
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
before :cache, :check_blacklist!
|
8
|
-
end
|
9
|
-
|
10
|
-
##
|
11
|
-
# Override this method in your uploader to provide a black list of extensions which
|
12
|
-
# are prohibited to be uploaded. Compares the file's extension case insensitive.
|
13
|
-
# Furthermore, not only strings but Regexp are allowed as well.
|
14
|
-
#
|
15
|
-
# When using a Regexp in the black list, `\A` and `\z` are automatically added to
|
16
|
-
# the Regexp expression, also case insensitive.
|
17
|
-
#
|
18
|
-
# === Returns
|
19
|
-
|
20
|
-
# [NilClass, Array[String,Regexp]] a black list of extensions which are prohibited to be uploaded
|
21
|
-
#
|
22
|
-
# === Examples
|
23
|
-
#
|
24
|
-
# def extension_black_list
|
25
|
-
# %w(swf tiff)
|
26
|
-
# end
|
27
|
-
#
|
28
|
-
# Basically the same, but using a Regexp:
|
29
|
-
#
|
30
|
-
# def extension_black_list
|
31
|
-
# [/swf/, 'tiff']
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
|
35
|
-
def extension_black_list; end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def check_blacklist!(new_file)
|
40
|
-
extension = new_file.extension.to_s
|
41
|
-
if extension_black_list and extension_black_list.detect { |item| extension =~ /\A#{item}\z/i }
|
42
|
-
raise CarrierWave::IntegrityError, I18n.translate(:"errors.messages.extension_black_list_error", :extension => new_file.extension.inspect, :prohibited_types => extension_black_list.join(", "))
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module CarrierWave
|
4
|
-
module Uploader
|
5
|
-
module ExtensionWhitelist
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
included do
|
9
|
-
before :cache, :check_whitelist!
|
10
|
-
end
|
11
|
-
|
12
|
-
##
|
13
|
-
# Override this method in your uploader to provide a white list of extensions which
|
14
|
-
# are allowed to be uploaded. Compares the file's extension case insensitive.
|
15
|
-
# Furthermore, not only strings but Regexp are allowed as well.
|
16
|
-
#
|
17
|
-
# When using a Regexp in the white list, `\A` and `\z` are automatically added to
|
18
|
-
# the Regexp expression, also case insensitive.
|
19
|
-
#
|
20
|
-
# === Returns
|
21
|
-
#
|
22
|
-
# [NilClass, Array[String,Regexp]] a white list of extensions which are allowed to be uploaded
|
23
|
-
#
|
24
|
-
# === Examples
|
25
|
-
#
|
26
|
-
# def extension_white_list
|
27
|
-
# %w(jpg jpeg gif png)
|
28
|
-
# end
|
29
|
-
#
|
30
|
-
# Basically the same, but using a Regexp:
|
31
|
-
#
|
32
|
-
# def extension_white_list
|
33
|
-
# [/jpe?g/, 'gif', 'png']
|
34
|
-
# end
|
35
|
-
#
|
36
|
-
def extension_white_list; end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def check_whitelist!(new_file)
|
41
|
-
extension = new_file.extension.to_s
|
42
|
-
if extension_white_list and not extension_white_list.detect { |item| extension =~ /\A#{item}\z/i }
|
43
|
-
raise CarrierWave::IntegrityError, I18n.translate(:"errors.messages.extension_white_list_error", :extension => new_file.extension.inspect, :allowed_types => extension_white_list.join(", "))
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end # ExtensionWhitelist
|
48
|
-
end # Uploader
|
49
|
-
end # CarrierWave
|