carrierwave-mongoid 0.10.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -13
- data/Gemfile +0 -4
- data/README.md +18 -12
- data/carrierwave-mongoid.gemspec +1 -1
- data/gemfiles/carrierwave-0.11.gemfile +5 -0
- data/gemfiles/{carrierwave-0.9.gemfile → carrierwave-1.0.gemfile} +1 -1
- data/gemfiles/carrierwave-1.1.gemfile +5 -0
- data/gemfiles/mongoid-4.0.gemfile +1 -0
- data/gemfiles/mongoid-5.0.gemfile +1 -0
- data/gemfiles/mongoid-6.0.gemfile +1 -0
- data/lib/carrierwave/mongoid.rb +41 -2
- data/lib/carrierwave/mongoid/version.rb +1 -1
- data/spec/mongoid_spec.rb +9 -5
- metadata +10 -9
- data/gemfiles/carrierwave-master.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04bf7a5d64de29d4e762df968da6ed5aaab22360
|
4
|
+
data.tar.gz: 46a9e9b1ab8d7708e909607b9b9d0c71c48b6640
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65b94440d485d166451a18d624e0ffa2418961fe45dde38c7a23b6fe2684586164b90d2aac2f07070a5c4b96571b9e2513edda55a41cfac1443eb50972ad89c0
|
7
|
+
data.tar.gz: f14e0428c3e97646c4a0465e06058077a577bfa016b22d6637ed3e2b5672f283bc934883b2b74d2367ac2fd284fb5fbb2712d8b95c7e2d10da54777ac41b92ac
|
data/.travis.yml
CHANGED
@@ -7,26 +7,20 @@ notifications:
|
|
7
7
|
language: ruby
|
8
8
|
cache: bundler
|
9
9
|
rvm:
|
10
|
-
- 2.
|
11
|
-
- 2.
|
12
|
-
- 2.
|
13
|
-
- jruby-19mode
|
10
|
+
- 2.2.8
|
11
|
+
- 2.3.5
|
12
|
+
- 2.4.2
|
14
13
|
|
15
14
|
gemfile:
|
16
15
|
- Gemfile
|
17
|
-
- gemfiles/carrierwave-0.9.gemfile
|
18
16
|
- gemfiles/carrierwave-0.10.gemfile
|
19
|
-
- gemfiles/carrierwave-
|
17
|
+
- gemfiles/carrierwave-0.11.gemfile
|
18
|
+
- gemfiles/carrierwave-1.0.gemfile
|
19
|
+
- gemfiles/carrierwave-1.1.gemfile
|
20
20
|
- gemfiles/mongoid-3.1.gemfile
|
21
21
|
- gemfiles/mongoid-4.0.gemfile
|
22
22
|
- gemfiles/mongoid-5.0.gemfile
|
23
|
+
- gemfiles/mongoid-6.0.gemfile
|
23
24
|
|
24
25
|
matrix:
|
25
|
-
allow_failures:
|
26
|
-
- gemfile: gemfiles/carrierwave-master.gemfile
|
27
26
|
fast_finish: true
|
28
|
-
include:
|
29
|
-
- rvm: 2.2.5
|
30
|
-
gemfile: gemfiles/mongoid-6.0.gemfile
|
31
|
-
- rvm: 2.3.1
|
32
|
-
gemfile: gemfiles/mongoid-6.0.gemfile
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -156,18 +156,22 @@ match '/uploads/grid/user/avatar/:id/:filename' => 'gridfs#thumb_avatar', constr
|
|
156
156
|
|
157
157
|
## Version differences
|
158
158
|
|
159
|
-
| Version
|
160
|
-
|
161
|
-
| ~> 0.
|
162
|
-
| ~> 0.
|
163
|
-
| ~> 0.
|
164
|
-
| ~> 0.
|
165
|
-
| ~> 0.
|
166
|
-
| ~> 0.
|
167
|
-
| ~> 0.
|
168
|
-
| ~> 0.
|
169
|
-
| ~> 0.
|
170
|
-
|
159
|
+
| Version | Notes |
|
160
|
+
|-----------|---------------------------------------------------------------------------------|
|
161
|
+
| ~> 1.0.0 | ([compare][compare-1.0], [dependencies][deps-1.0]) Carrierwave 1.x support |
|
162
|
+
| ~> 0.10.0 | ([compare][compare-0.10], [dependencies][deps-0.10]) Mongoid 6.0 support |
|
163
|
+
| ~> 0.9.0 | ([compare][compare-0.9], [dependencies][deps-0.9]) Carrierwave 0.11 support |
|
164
|
+
| ~> 0.8.0 | ([compare][compare-0.8], [dependencies][deps-0.8]) Mongoid 5 support, bug fixes |
|
165
|
+
| ~> 0.7.0 | ([compare][compare-0.7], [dependencies][deps-0.7]) Mongoid 3 & 4, bug fixes |
|
166
|
+
| ~> 0.6.0 | ([compare][compare-0.6], [dependencies][deps-0.6]) Mongoid 3 & 4, bug fixes |
|
167
|
+
| ~> 0.5.0 | ([compare][compare-0.5], [dependencies][deps-0.5]) Mongoid::Paranoia support |
|
168
|
+
| ~> 0.4.0 | ([compare][compare-0.4], [dependencies][deps-0.4]) Carrierwave bump |
|
169
|
+
| ~> 0.3.0 | ([compare][compare-0.3], [dependencies][deps-0.3]) Mongoid >= 3.0 |
|
170
|
+
| ~> 0.2.0 | ([compare][compare-0.2], [dependencies][deps-0.2]) Rails >= 3.2, Mongoid ~> 2.0 |
|
171
|
+
| ~> 0.1.0 | ([compare][compare-0.1], [dependencies][deps-0.1]) Rails <= 3.1 |
|
172
|
+
|
173
|
+
[compare-1.0]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.10.0...v1.0.0
|
174
|
+
[compare-0.10]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.9.0...v0.10.0
|
171
175
|
[compare-0.9]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.8.1...v0.9.0
|
172
176
|
[compare-0.8]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.7.1...v0.8.1
|
173
177
|
[compare-0.7]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.6.3...v0.7.1
|
@@ -178,6 +182,8 @@ match '/uploads/grid/user/avatar/:id/:filename' => 'gridfs#thumb_avatar', constr
|
|
178
182
|
[compare-0.2]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.1.7...v0.2.2
|
179
183
|
[compare-0.1]: https://github.com/carrierwaveuploader/carrierwave-mongoid/compare/v0.1.1...v0.1.7
|
180
184
|
|
185
|
+
[deps-1.0]: https://rubygems.org/gems/carrierwave-mongoid/versions/1.0.0
|
186
|
+
[deps-0.10]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.10.0
|
181
187
|
[deps-0.9]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.9.0
|
182
188
|
[deps-0.8]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.8.1
|
183
189
|
[deps-0.7]: https://rubygems.org/gems/carrierwave-mongoid/versions/0.7.1
|
data/carrierwave-mongoid.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
|
-
s.add_dependency "carrierwave", [">= 0.8
|
23
|
+
s.add_dependency "carrierwave", [">= 0.8", "< 1.3"]
|
24
24
|
s.add_dependency "mongoid", [">= 3.0", "< 7.0"]
|
25
25
|
s.add_dependency "mongoid-grid_fs", [">= 1.3", "< 3.0"]
|
26
26
|
s.add_dependency "mime-types", "< 3" if RUBY_VERSION < "2.0" # mime-types 3+ doesn't support ruby 1.9
|
data/lib/carrierwave/mongoid.rb
CHANGED
@@ -29,13 +29,24 @@ module CarrierWave
|
|
29
29
|
after_save :"store_#{column}!"
|
30
30
|
before_save :"write_#{column}_identifier"
|
31
31
|
after_destroy :"remove_#{column}!"
|
32
|
-
|
32
|
+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("1.0.beta")
|
33
|
+
before_update :"store_previous_changes_for_#{column}"
|
34
|
+
else
|
35
|
+
before_update :"store_previous_model_for_#{column}"
|
36
|
+
end
|
33
37
|
after_save :"remove_previously_stored_#{column}"
|
34
38
|
|
35
39
|
class_eval <<-RUBY, __FILE__, __LINE__+1
|
36
40
|
def #{column}=(new_file)
|
37
41
|
column = _mounter(:#{column}).serialization_column
|
38
42
|
|
43
|
+
# We're using _new_ and _old_ placeholder values to force Mongoid to
|
44
|
+
# recognize changes in embedded documents. Before we assign these
|
45
|
+
# values, we need to store the original file name in case we need to
|
46
|
+
# delete it when document is saved.
|
47
|
+
previous_uploader_value = read_uploader(column)
|
48
|
+
@_previous_uploader_value_for_#{column} = previous_uploader_value
|
49
|
+
|
39
50
|
# mongoid won't upload a new file if there was no file previously.
|
40
51
|
write_uploader(column, '_old_') if self.persisted? && read_uploader(column).nil?
|
41
52
|
|
@@ -73,6 +84,29 @@ module CarrierWave
|
|
73
84
|
changed_attributes["#{column}"] = '_new_'
|
74
85
|
end
|
75
86
|
|
87
|
+
# Since we had to use tricks with _old_ and _new_ values to properly
|
88
|
+
# track changes in embedded documents, we need to overwrite this method
|
89
|
+
# to remove the original file if it was replaced with a new one that
|
90
|
+
# had a different name.
|
91
|
+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("1.0.beta")
|
92
|
+
def remove_previously_stored_#{column}
|
93
|
+
before, after = @_previous_changes_for_#{column}
|
94
|
+
# Don't delete if the files had the same name
|
95
|
+
return if before.nil? && after.nil?
|
96
|
+
# Proceed to remove the file, use the original name instead of '_new_'
|
97
|
+
before = @_previous_uploader_value_for_#{column} || before
|
98
|
+
_mounter(:#{column}).remove_previous([before], [after])
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# CarrierWave 1.1 references ::ActiveRecord constant directly which
|
103
|
+
# will fail in projects without ActiveRecord. We need to overwrite this
|
104
|
+
# method to avoid it.
|
105
|
+
# See https://github.com/carrierwaveuploader/carrierwave/blob/07dc4d7bd7806ab4b963cf8acbad73d97cdfe74e/lib/carrierwave/mount.rb#L189
|
106
|
+
def store_previous_changes_for_#{column}
|
107
|
+
@_previous_changes_for_#{column} = changes[_mounter(:#{column}).serialization_column]
|
108
|
+
end
|
109
|
+
|
76
110
|
def find_previous_model_for_#{column}
|
77
111
|
if self.embedded?
|
78
112
|
if self.respond_to?(:__metadata) # Mongoid >= 4.0.0.beta1
|
@@ -97,7 +131,12 @@ module CarrierWave
|
|
97
131
|
|
98
132
|
self.class.uploaders.each do |column, uploader|
|
99
133
|
if (!only && !except) || (only && only.include?(column.to_s)) || (except && !except.include?(column.to_s))
|
100
|
-
|
134
|
+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("1.0.beta")
|
135
|
+
next if _mounter(column.to_sym).uploaders.blank?
|
136
|
+
hash[column.to_s] = _mounter(column.to_sym).uploaders[0].serializable_hash
|
137
|
+
else
|
138
|
+
hash[column.to_s] = _mounter(column.to_sym).uploader.serializable_hash
|
139
|
+
end
|
101
140
|
end
|
102
141
|
end
|
103
142
|
super(options).merge(hash)
|
data/spec/mongoid_spec.rb
CHANGED
@@ -117,7 +117,11 @@ describe CarrierWave::Mongoid do
|
|
117
117
|
@doc.save!
|
118
118
|
@doc.reload
|
119
119
|
|
120
|
-
|
120
|
+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("1.0.beta")
|
121
|
+
expect(JSON.parse({:data => @doc.image}.to_json)).to eq({"data"=>{"url"=>"/uploads/test.jpeg"}})
|
122
|
+
else
|
123
|
+
expect(JSON.parse({:data => @doc.image}.to_json)).to eq("data"=>{"image" => {"url"=>"/uploads/test.jpeg"}})
|
124
|
+
end
|
121
125
|
end
|
122
126
|
|
123
127
|
it "should respect options[:only] when passed to to_json for the serializable hash" do
|
@@ -409,7 +413,7 @@ describe CarrierWave::Mongoid do
|
|
409
413
|
end
|
410
414
|
|
411
415
|
after do
|
412
|
-
FileUtils.rm_rf(
|
416
|
+
FileUtils.rm_rf(public_path("uploads"))
|
413
417
|
end
|
414
418
|
|
415
419
|
describe 'normally' do
|
@@ -422,7 +426,7 @@ describe CarrierWave::Mongoid do
|
|
422
426
|
end
|
423
427
|
|
424
428
|
it "should not remove old file if old file had a different path but config is false" do
|
425
|
-
|
429
|
+
@doc.image.class.remove_previously_stored_files_after_update = false
|
426
430
|
@doc.image = stub_file('new.jpeg')
|
427
431
|
expect(@doc.save).to be_truthy
|
428
432
|
expect(File.exists?(public_path('uploads/new.jpeg'))).to be_truthy
|
@@ -482,7 +486,7 @@ describe CarrierWave::Mongoid do
|
|
482
486
|
end
|
483
487
|
|
484
488
|
it "should not remove old file if old file had a different path but config is false" do
|
485
|
-
|
489
|
+
@embedded_doc.image.class.remove_previously_stored_files_after_update = false
|
486
490
|
@embedded_doc.image = stub_file('new.jpeg')
|
487
491
|
expect(@embedded_doc.save).to be_truthy
|
488
492
|
expect(File.exists?(public_path('uploads/new.jpeg'))).to be_truthy
|
@@ -520,7 +524,7 @@ describe CarrierWave::Mongoid do
|
|
520
524
|
end
|
521
525
|
|
522
526
|
it "should not remove old file if old file had a different path but config is false" do
|
523
|
-
|
527
|
+
@double_embedded_doc.image.class.remove_previously_stored_files_after_update = false
|
524
528
|
@double_embedded_doc.image = stub_file('new.jpeg')
|
525
529
|
expect(@double_embedded_doc.save).to be_truthy
|
526
530
|
expect(File.exists?(public_path('uploads/new.jpeg'))).to be_truthy
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carrierwave-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Nicklas
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-10-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: carrierwave
|
@@ -17,20 +17,20 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.8
|
20
|
+
version: '0.8'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: '1.3'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 0.8
|
30
|
+
version: '0.8'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '1.3'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: mongoid
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,8 +142,9 @@ files:
|
|
142
142
|
- Rakefile
|
143
143
|
- carrierwave-mongoid.gemspec
|
144
144
|
- gemfiles/carrierwave-0.10.gemfile
|
145
|
-
- gemfiles/carrierwave-0.
|
146
|
-
- gemfiles/carrierwave-
|
145
|
+
- gemfiles/carrierwave-0.11.gemfile
|
146
|
+
- gemfiles/carrierwave-1.0.gemfile
|
147
|
+
- gemfiles/carrierwave-1.1.gemfile
|
147
148
|
- gemfiles/mongoid-3.1.gemfile
|
148
149
|
- gemfiles/mongoid-4.0.gemfile
|
149
150
|
- gemfiles/mongoid-5.0.gemfile
|
@@ -182,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
183
|
version: '0'
|
183
184
|
requirements: []
|
184
185
|
rubyforge_project: carrierwave-mongoid
|
185
|
-
rubygems_version: 2.6.
|
186
|
+
rubygems_version: 2.6.13
|
186
187
|
signing_key:
|
187
188
|
specification_version: 4
|
188
189
|
summary: Mongoid support for CarrierWave
|