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.

Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +508 -158
  3. data/lib/carrierwave/compatibility/paperclip.rb +31 -21
  4. data/lib/carrierwave/downloader/base.rb +101 -0
  5. data/lib/carrierwave/downloader/remote_file.rb +68 -0
  6. data/lib/carrierwave/error.rb +1 -0
  7. data/lib/carrierwave/locale/en.yml +11 -5
  8. data/lib/carrierwave/mount.rb +220 -187
  9. data/lib/carrierwave/mounter.rb +255 -0
  10. data/lib/carrierwave/orm/activerecord.rb +24 -34
  11. data/lib/carrierwave/processing/mini_magick.rb +142 -79
  12. data/lib/carrierwave/processing/rmagick.rb +76 -35
  13. data/lib/carrierwave/processing/vips.rb +284 -0
  14. data/lib/carrierwave/processing.rb +1 -1
  15. data/lib/carrierwave/sanitized_file.rb +89 -70
  16. data/lib/carrierwave/storage/abstract.rb +16 -3
  17. data/lib/carrierwave/storage/file.rb +71 -3
  18. data/lib/carrierwave/storage/fog.rb +215 -58
  19. data/lib/carrierwave/storage.rb +1 -7
  20. data/lib/carrierwave/test/matchers.rb +88 -19
  21. data/lib/carrierwave/uploader/cache.rb +88 -44
  22. data/lib/carrierwave/uploader/callbacks.rb +1 -3
  23. data/lib/carrierwave/uploader/configuration.rb +81 -9
  24. data/lib/carrierwave/uploader/content_type_allowlist.rb +62 -0
  25. data/lib/carrierwave/uploader/content_type_denylist.rb +62 -0
  26. data/lib/carrierwave/uploader/default_url.rb +3 -5
  27. data/lib/carrierwave/uploader/dimension.rb +66 -0
  28. data/lib/carrierwave/uploader/download.rb +5 -69
  29. data/lib/carrierwave/uploader/extension_allowlist.rb +63 -0
  30. data/lib/carrierwave/uploader/extension_denylist.rb +64 -0
  31. data/lib/carrierwave/uploader/file_size.rb +43 -0
  32. data/lib/carrierwave/uploader/mountable.rb +13 -8
  33. data/lib/carrierwave/uploader/processing.rb +54 -21
  34. data/lib/carrierwave/uploader/proxy.rb +30 -8
  35. data/lib/carrierwave/uploader/remove.rb +0 -2
  36. data/lib/carrierwave/uploader/serialization.rb +3 -5
  37. data/lib/carrierwave/uploader/store.rb +59 -28
  38. data/lib/carrierwave/uploader/url.rb +8 -7
  39. data/lib/carrierwave/uploader/versions.rb +173 -124
  40. data/lib/carrierwave/uploader.rb +12 -6
  41. data/lib/carrierwave/utilities/file_name.rb +47 -0
  42. data/lib/carrierwave/utilities/uri.rb +14 -12
  43. data/lib/carrierwave/utilities.rb +2 -3
  44. data/lib/carrierwave/validations/active_model.rb +7 -13
  45. data/lib/carrierwave/version.rb +1 -1
  46. data/lib/carrierwave.rb +41 -16
  47. data/lib/generators/templates/{uploader.rb → uploader.rb.erb} +5 -9
  48. data/lib/generators/uploader_generator.rb +3 -3
  49. metadata +224 -100
  50. data/lib/carrierwave/locale/cs.yml +0 -11
  51. data/lib/carrierwave/locale/de.yml +0 -11
  52. data/lib/carrierwave/locale/nl.yml +0 -11
  53. data/lib/carrierwave/locale/sk.yml +0 -11
  54. data/lib/carrierwave/processing/mime_types.rb +0 -73
  55. data/lib/carrierwave/uploader/extension_blacklist.rb +0 -47
  56. 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