Skip to content

Commit 42995b1

Browse files
committed
Support CarrierWave 3.x
1 parent 55e7da5 commit 42995b1

File tree

7 files changed

+298
-167
lines changed

7 files changed

+298
-167
lines changed

.github/workflows/ci.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ jobs:
88
mongodb: [4.4]
99
ruby: [2.7, "3.0", 3.1, 3.2, 3.3]
1010
gemfile:
11-
- carrierwave-2.1
1211
- carrierwave-2.2
12+
- carrierwave-3.1
1313
- mongoid-7
1414
- mongoid-8
1515
- mongoid-9
@@ -20,6 +20,8 @@ jobs:
2020
- { mongodb: "4.4", ruby: "2.6", gemfile: "carrierwave-1.2" }
2121
- { mongodb: "4.4", ruby: "2.6", gemfile: "carrierwave-1.3" }
2222
- { mongodb: "4.4", ruby: "2.6", gemfile: "carrierwave-2.0" }
23+
- { mongodb: "4.4", ruby: "2.6", gemfile: "carrierwave-2.1" }
24+
- { mongodb: "4.4", ruby: "2.6", gemfile: "carrierwave-3.0" }
2325
- { mongodb: "4.4", ruby: "2.6", gemfile: "mongoid-3" }
2426
- { mongodb: "4.4", ruby: "2.6", gemfile: "mongoid-4" }
2527
- { mongodb: "4.4", ruby: "2.6", gemfile: "mongoid-5" }

carrierwave-mongoid.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
2020
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
2121
s.require_paths = ["lib"]
2222

23-
s.add_dependency "carrierwave", [">= 0.8", "< 3"]
23+
s.add_dependency "carrierwave", [">= 0.8", "< 4"]
2424
s.add_dependency "mongoid", [">= 3.0", "< 10.0"]
2525
s.add_dependency "mongoid-grid_fs", [">= 1.3", "< 3.0"]
2626
s.add_dependency "mime-types", "< 3" if RUBY_VERSION < "2.0" # mime-types 3+ doesn't support ruby 1.9

gemfiles/carrierwave-3.0.gemfile

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
source "https://rubygems.org"
2+
3+
gem "carrierwave", "~> 3.0.0"
4+
5+
gemspec path: "../"

gemfiles/carrierwave-3.1.gemfile

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
source "https://rubygems.org"
2+
3+
gem "carrierwave", "~> 3.1.0"
4+
5+
gemspec path: "../"

lib/carrierwave/mongoid.rb

+261-154
Large diffs are not rendered by default.

spec/carrierwave/mongoid/mount_uploaders_spec.rb

+11-6
Original file line numberDiff line numberDiff line change
@@ -382,15 +382,20 @@ def munge
382382

383383
before do
384384
model_class.create!(images: files)
385-
end
386-
387-
it 'replaced it by a file with the same name' do
388385
record.update!(images: [stub_file('test.jpeg')])
389-
390386
record.reload
387+
end
391388

392-
expect(record[:images]).to match_array(['test.jpeg'])
393-
expect(record.images_identifiers).to match_array(['test.jpeg'])
389+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("3.0.beta")
390+
it "performs deduplication" do
391+
expect(record[:images]).to match_array(['test(2).jpeg'])
392+
expect(record.images_identifiers).to match_array(['test(2).jpeg'])
393+
end
394+
else
395+
it 'replaced it by a file with the same name' do
396+
expect(record[:images]).to match_array(['test.jpeg'])
397+
expect(record.images_identifiers).to match_array(['test.jpeg'])
398+
end
394399
end
395400
end
396401

spec/mongoid_spec.rb

+12-5
Original file line numberDiff line numberDiff line change
@@ -340,14 +340,21 @@ def extension_white_list
340340
@doc.image = stub_file('test.jpeg')
341341
@doc.save
342342
@doc.reload
343-
end
344-
345-
it "replaced it by a file with the same name" do
346343
@doc.image = stub_file('test.jpeg')
347344
@doc.save
348345
@doc.reload
349-
expect(@doc[:image]).to eq 'test.jpeg'
350-
expect(@doc.image_identifier).to eq 'test.jpeg'
346+
end
347+
348+
if Gem::Version.new(CarrierWave::VERSION) >= Gem::Version.new("3.0.beta")
349+
it "performs deduplication" do
350+
expect(@doc[:image]).to eq 'test(2).jpeg'
351+
expect(@doc.image_identifier).to eq 'test(2).jpeg'
352+
end
353+
else
354+
it "replaced it by a file with the same name" do
355+
expect(@doc[:image]).to eq 'test.jpeg'
356+
expect(@doc.image_identifier).to eq 'test.jpeg'
357+
end
351358
end
352359

353360
end

0 commit comments

Comments
 (0)