locomotive_carrierwave 0.5.0.1 → 0.5.4.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/README.md +714 -0
  2. data/lib/carrierwave.rb +9 -3
  3. data/lib/carrierwave/compatibility/paperclip.rb +18 -18
  4. data/lib/carrierwave/mount.rb +30 -25
  5. data/lib/carrierwave/orm/activerecord.rb +14 -4
  6. data/lib/carrierwave/orm/mongoid.rb +29 -8
  7. data/lib/carrierwave/processing/image_science.rb +25 -2
  8. data/lib/carrierwave/processing/mini_magick.rb +4 -3
  9. data/lib/carrierwave/processing/rmagick.rb +3 -2
  10. data/lib/carrierwave/sanitized_file.rb +23 -38
  11. data/lib/carrierwave/storage/abstract.rb +0 -3
  12. data/lib/carrierwave/storage/cloud_files.rb +30 -10
  13. data/lib/carrierwave/storage/file.rb +1 -8
  14. data/lib/carrierwave/storage/fog.rb +332 -0
  15. data/lib/carrierwave/storage/grid_fs.rb +6 -6
  16. data/lib/carrierwave/storage/s3.rb +31 -34
  17. data/lib/carrierwave/test/matchers.rb +1 -1
  18. data/lib/carrierwave/uploader.rb +0 -1
  19. data/lib/carrierwave/uploader/cache.rb +28 -7
  20. data/lib/carrierwave/uploader/callbacks.rb +11 -17
  21. data/lib/carrierwave/uploader/configuration.rb +62 -34
  22. data/lib/carrierwave/uploader/download.rb +16 -5
  23. data/lib/carrierwave/uploader/extension_whitelist.rb +14 -3
  24. data/lib/carrierwave/uploader/mountable.rb +1 -1
  25. data/lib/carrierwave/uploader/processing.rb +20 -15
  26. data/lib/carrierwave/uploader/proxy.rb +16 -1
  27. data/lib/carrierwave/uploader/store.rb +3 -9
  28. data/lib/carrierwave/uploader/url.rb +3 -2
  29. data/lib/carrierwave/uploader/versions.rb +78 -25
  30. data/lib/carrierwave/version.rb +1 -1
  31. data/lib/generators/templates/uploader.rb +2 -1
  32. metadata +64 -102
  33. data/README.rdoc +0 -532
  34. data/lib/carrierwave/orm/datamapper.rb +0 -37
  35. data/lib/carrierwave/orm/sequel.rb +0 -45
  36. data/lib/carrierwave/uploader/rename.rb +0 -62
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'dm-core'
4
-
5
- module CarrierWave
6
- module DataMapper
7
-
8
- include CarrierWave::Mount
9
-
10
- ##
11
- # See +CarrierWave::Mount#mount_uploader+ for documentation
12
- #
13
- def mount_uploader(column, uploader, options={}, &block)
14
- super
15
-
16
- alias_method :read_uploader, :attribute_get
17
- alias_method :write_uploader, :attribute_set
18
- after :save, "store_#{column}!".to_sym
19
- pre_hook = ::DataMapper.const_defined?(:Validate) ? :valid? : :save
20
- before pre_hook, "write_#{column}_identifier".to_sym
21
- after :destroy, "remove_#{column}!".to_sym
22
-
23
- # FIXME: Hack to work around Datamapper not triggering callbacks
24
- # for objects that are not dirty. By explicitly calling
25
- # attribute_set we are marking the record as dirty.
26
- class_eval <<-RUBY
27
- def remove_image=(value)
28
- _mounter(:#{column}).remove = value
29
- attribute_set(:#{column}, '') if _mounter(:#{column}).remove?
30
- end
31
- RUBY
32
- end
33
-
34
- end # DataMapper
35
- end # CarrierWave
36
-
37
- DataMapper::Model.send(:include, CarrierWave::DataMapper)
@@ -1,45 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'sequel'
4
-
5
- module CarrierWave
6
- module Sequel
7
- include CarrierWave::Mount
8
-
9
- def mount_uploader(column, uploader)
10
- raise "You need to use Sequel 3.0 or higher. Please upgrade." unless ::Sequel::Model.respond_to?(:plugin)
11
- super
12
-
13
- alias_method :read_uploader, :[]
14
- alias_method :write_uploader, :[]=
15
-
16
- include CarrierWave::Sequel::Hooks
17
- include CarrierWave::Sequel::Validations
18
- end
19
-
20
- end # Sequel
21
- end # CarrierWave
22
-
23
- # Instance hook methods for the Sequel 3.x
24
- module CarrierWave::Sequel::Hooks
25
- def after_save
26
- return false if super == false
27
- self.class.uploaders.each_key {|column| self.send("store_#{column}!") }
28
- end
29
-
30
- def before_save
31
- return false if super == false
32
- self.class.uploaders.each_key {|column| self.send("write_#{column}_identifier") }
33
- end
34
-
35
- def before_destroy
36
- return false if super == false
37
- self.class.uploaders.each_key {|column| self.send("remove_#{column}!") }
38
- end
39
- end
40
-
41
- # Instance validation methods for the Sequel 3.x
42
- module CarrierWave::Sequel::Validations
43
- end
44
-
45
- Sequel::Model.send(:extend, CarrierWave::Sequel)
@@ -1,62 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module CarrierWave
4
- module Uploader
5
- module Rename
6
- extend ActiveSupport::Concern
7
-
8
- include CarrierWave::Uploader::Callbacks
9
-
10
- included do
11
- after :rename, :recreate_versions!
12
- end
13
-
14
- ##
15
- # Override this method in your uploader to check if the model has been updated.
16
- #
17
- # === Returns
18
- #
19
- # [NilClass, Boolean] true if the model has been changed, false otherwise
20
- #
21
- # === Examples
22
- #
23
- # def stale_model?
24
- # model.folder_changed? # because store_dir is based on the folder property of the model
25
- # end
26
- #
27
- def stale_model?
28
- false
29
- end
30
-
31
- def rename?
32
- @rename || false
33
- end
34
-
35
- ##
36
- # Renames the file
37
- #
38
- def rename!
39
- return true if !self.rename?
40
-
41
- with_callbacks(:rename) do
42
- @file = storage.rename!(@original_file)
43
- @original_file = nil
44
- @rename = false
45
- end
46
- end
47
-
48
- private
49
-
50
- def check_stale_model!
51
- # the conditions below means: already an existing file, with model, model has been modified and not changing the file currently.
52
- @rename = self.file && self.model && self.stale_model? && @cache_id.nil?
53
-
54
- if self.rename?
55
- @original_file = self.file.clone
56
- @filename = self.model.send(:_mounter, self.mounted_as).identifier # default filename has to be the one from the model
57
- end
58
- end
59
-
60
- end # Rename
61
- end # Uploader
62
- end # CarrierWave