paperclip_upload 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/paperclip_upload/install/templates/initializer.rb +4 -0
  3. data/lib/paperclip_upload.rb +5 -1
  4. data/lib/paperclip_upload/active_record_extension.rb +32 -11
  5. data/lib/paperclip_upload/version.rb +1 -1
  6. data/spec/dummy/app/models/promotion.rb +3 -1
  7. data/spec/dummy/config/initializers/paperclip_upload.rb +4 -0
  8. data/spec/dummy/db/development.sqlite3 +0 -0
  9. data/spec/dummy/db/migrate/20150717201744_add_attachment_prefixed_file_one_to_promotions.rb +11 -0
  10. data/spec/dummy/db/migrate/20150717201754_add_attachment_prefixed_file_two_to_promotions.rb +11 -0
  11. data/spec/dummy/db/migrate/20150717202131_add_attachment_prefixed_file_to_promotions.rb +11 -0
  12. data/spec/dummy/db/schema.rb +15 -3
  13. data/spec/dummy/db/test.sqlite3 +0 -0
  14. data/spec/dummy/log/development.log +154 -0
  15. data/spec/dummy/log/test.log +23401 -0
  16. data/spec/dummy/{tmp/uploads/1/bukowski.jpg → public/system/promotions/photos/000/000/021/original/data} +0 -0
  17. data/spec/dummy/spec/models/promotion_spec.rb +39 -12
  18. data/spec/dummy/tmp/{uploads/3 → promotions/11}/bukowski.jpg +0 -0
  19. data/spec/dummy/tmp/promotions/13/bukowski.jpg +0 -0
  20. data/spec/dummy/tmp/promotions/15/bukowski.jpg +0 -0
  21. data/spec/dummy/tmp/promotions/17/bukowski.jpg +0 -0
  22. data/spec/dummy/tmp/promotions/19/bukowski.jpg +0 -0
  23. data/spec/dummy/tmp/promotions/21/bukowski.jpg +0 -0
  24. data/spec/dummy/tmp/promotions/21/data +0 -0
  25. data/spec/dummy/tmp/promotions/3/bukowski.jpg +0 -0
  26. data/spec/dummy/tmp/promotions/5/bukowski.jpg +0 -0
  27. data/spec/dummy/tmp/promotions/7/bukowski.jpg +0 -0
  28. data/spec/dummy/tmp/promotions/9/bukowski.jpg +0 -0
  29. data/spec/dummy/tmp/uploads/10/bukowski.jpg +0 -0
  30. data/spec/dummy/tmp/uploads/12/bukowski.jpg +0 -0
  31. data/spec/dummy/tmp/uploads/14/bukowski.jpg +0 -0
  32. data/spec/dummy/tmp/uploads/18/bukowski.jpg +0 -0
  33. data/spec/dummy/tmp/uploads/20/bukowski.jpg +0 -0
  34. data/spec/dummy/tmp/uploads/21/bukowski.jpg +0 -0
  35. data/spec/dummy/tmp/uploads/4/bukowski.jpg +0 -0
  36. data/spec/dummy/tmp/uploads/6/bukowski.jpg +0 -0
  37. data/spec/dummy/tmp/uploads/8/bukowski.jpg +0 -0
  38. metadata +49 -5
@@ -12,47 +12,74 @@ RSpec.describe Promotion, type: :model do
12
12
  expect(Promotion.new.photo).to be_a(Paperclip::Attachment)
13
13
  end
14
14
 
15
- it "has upload accessors" do
16
- promotion.upload = "upload"
17
- expect(promotion.upload).to eq("upload")
15
+ it "has upload accessor" do
16
+ expect(promotion).to respond_to(:upload)
18
17
  end
19
18
 
20
19
  it "has upload_identifier accessor" do
21
- promotion.upload_identifier = "upload_identifier"
22
- expect(promotion.upload_identifier).to eq("upload_identifier")
20
+ expect(promotion).to respond_to(:upload_identifier)
21
+ end
22
+
23
+ context "with use_prefix option enabled" do
24
+ it "has upload accessors" do
25
+ expect(promotion).to respond_to(:prefixed_file_upload)
26
+ end
27
+
28
+ it "has upload_identifier accessor" do
29
+ expect(promotion).to respond_to(:prefixed_file_upload_identifier)
30
+ end
31
+
32
+ it "raises error trying to redefine upload_accessor", focus: true do
33
+ expect { Promotion.has_attached_upload(:photo) }.to raise_error(
34
+ "you are trying to redefine upload_identifier attribute")
35
+ expect { Promotion.has_attached_upload(:prefixed_file, upload: { use_prefix: true }) }.to raise_error(
36
+ "you are trying to redefine prefixed_file_upload_identifier attribute")
37
+ end
23
38
  end
24
39
 
25
40
  context "saving promotion" do
26
41
  context "with invalid upload" do
27
- it "raise error passing an invalid upload_identifier" do
42
+ it "raises error passing an invalid upload_identifier" do
28
43
  promotion.upload_identifier = "invalid upload identifier"
29
44
  expect { promotion.save }.to raise_error(ActiveRecord::RecordNotFound)
30
45
  end
31
46
 
32
- it "raise error passing an invalid upload" do
47
+ it "raises error passing an invalid upload" do
33
48
  promotion.upload = "invalid upload"
34
49
  expect { promotion.save }.to raise_error("invalid PaperclipUpload::Upload instance")
35
50
  end
36
51
  end
37
52
 
38
53
  context "with valid upload" do
39
- let(:upload) { create(:upload) }
54
+ let!(:upload) { create(:upload) }
40
55
 
41
- def saves_with_upload
56
+ def saves_with_upload(_paperclip_attr)
42
57
  expect(promotion.photo.exists?).to be_falsy
43
58
  yield(promotion)
44
59
  expect(promotion.save).to be_truthy
45
- expect(promotion.photo.exists?).to be_truthy
60
+ expect(promotion.send(_paperclip_attr).exists?).to be_truthy
46
61
  expect { PaperclipUpload::Upload.find(upload.id) }.to(
47
62
  raise_error(ActiveRecord::RecordNotFound))
48
63
  end
49
64
 
50
65
  it "saves photo using upload instance" do
51
- saves_with_upload { |promo| promotion.upload = upload }
66
+ saves_with_upload(:photo) { promotion.upload = upload }
52
67
  end
53
68
 
54
69
  it "saves photo using upload_identifier" do
55
- saves_with_upload { |promo| promotion.upload_identifier = upload.identifier }
70
+ saves_with_upload(:photo) { promotion.upload_identifier = upload.identifier }
71
+ end
72
+
73
+ context "with use_prefix option enabled" do
74
+ it "saves prefixed_file using upload_identifier" do
75
+ saves_with_upload(:prefixed_file) do
76
+ promotion.prefixed_file_upload_identifier = upload.identifier
77
+ end
78
+ end
79
+
80
+ it "saves prefixed_file using upload instance" do
81
+ saves_with_upload(:prefixed_file) { promotion.prefixed_file_upload = upload }
82
+ end
56
83
  end
57
84
  end
58
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip_upload
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Segovia
@@ -271,6 +271,9 @@ files:
271
271
  - spec/dummy/db/migrate/20150612173817_add_attachment_file_to_uploads.paperclip_upload.rb
272
272
  - spec/dummy/db/migrate/20150613212501_create_promotions.rb
273
273
  - spec/dummy/db/migrate/20150613212609_add_attachment_photo_to_promotions.rb
274
+ - spec/dummy/db/migrate/20150717201744_add_attachment_prefixed_file_one_to_promotions.rb
275
+ - spec/dummy/db/migrate/20150717201754_add_attachment_prefixed_file_two_to_promotions.rb
276
+ - spec/dummy/db/migrate/20150717202131_add_attachment_prefixed_file_to_promotions.rb
274
277
  - spec/dummy/db/schema.rb
275
278
  - spec/dummy/db/test.sqlite3
276
279
  - spec/dummy/log/development.log
@@ -280,6 +283,7 @@ files:
280
283
  - spec/dummy/public/422.html
281
284
  - spec/dummy/public/500.html
282
285
  - spec/dummy/public/favicon.ico
286
+ - spec/dummy/public/system/promotions/photos/000/000/021/original/data
283
287
  - spec/dummy/Rakefile
284
288
  - spec/dummy/README.md
285
289
  - spec/dummy/spec/assets/bukowski.jpg
@@ -288,12 +292,30 @@ files:
288
292
  - spec/dummy/spec/models/promotion_spec.rb
289
293
  - spec/dummy/tmp/promotions/1/bukowski.jpg
290
294
  - spec/dummy/tmp/promotions/1/data
291
- - spec/dummy/tmp/uploads/1/bukowski.jpg
295
+ - spec/dummy/tmp/promotions/11/bukowski.jpg
296
+ - spec/dummy/tmp/promotions/13/bukowski.jpg
297
+ - spec/dummy/tmp/promotions/15/bukowski.jpg
298
+ - spec/dummy/tmp/promotions/17/bukowski.jpg
299
+ - spec/dummy/tmp/promotions/19/bukowski.jpg
300
+ - spec/dummy/tmp/promotions/21/bukowski.jpg
301
+ - spec/dummy/tmp/promotions/21/data
302
+ - spec/dummy/tmp/promotions/3/bukowski.jpg
303
+ - spec/dummy/tmp/promotions/5/bukowski.jpg
304
+ - spec/dummy/tmp/promotions/7/bukowski.jpg
305
+ - spec/dummy/tmp/promotions/9/bukowski.jpg
306
+ - spec/dummy/tmp/uploads/10/bukowski.jpg
307
+ - spec/dummy/tmp/uploads/12/bukowski.jpg
308
+ - spec/dummy/tmp/uploads/14/bukowski.jpg
309
+ - spec/dummy/tmp/uploads/18/bukowski.jpg
292
310
  - spec/dummy/tmp/uploads/2/bukowski.jpg
293
311
  - spec/dummy/tmp/uploads/2/Marilyn_Manson_imagen_003.jpg
294
- - spec/dummy/tmp/uploads/3/bukowski.jpg
312
+ - spec/dummy/tmp/uploads/20/bukowski.jpg
313
+ - spec/dummy/tmp/uploads/21/bukowski.jpg
295
314
  - spec/dummy/tmp/uploads/3/Marilyn_Manson_imagen_005.jpg
315
+ - spec/dummy/tmp/uploads/4/bukowski.jpg
296
316
  - spec/dummy/tmp/uploads/4/Marilyn_Manson_imagen_005.jpg
317
+ - spec/dummy/tmp/uploads/6/bukowski.jpg
318
+ - spec/dummy/tmp/uploads/8/bukowski.jpg
297
319
  - spec/factories/paperclip_upload/uploads.rb
298
320
  - spec/factories/promotions.rb
299
321
  - spec/rails_helper.rb
@@ -359,6 +381,9 @@ test_files:
359
381
  - spec/dummy/db/migrate/20150612173817_add_attachment_file_to_uploads.paperclip_upload.rb
360
382
  - spec/dummy/db/migrate/20150613212501_create_promotions.rb
361
383
  - spec/dummy/db/migrate/20150613212609_add_attachment_photo_to_promotions.rb
384
+ - spec/dummy/db/migrate/20150717201744_add_attachment_prefixed_file_one_to_promotions.rb
385
+ - spec/dummy/db/migrate/20150717201754_add_attachment_prefixed_file_two_to_promotions.rb
386
+ - spec/dummy/db/migrate/20150717202131_add_attachment_prefixed_file_to_promotions.rb
362
387
  - spec/dummy/db/schema.rb
363
388
  - spec/dummy/db/test.sqlite3
364
389
  - spec/dummy/log/development.log
@@ -368,6 +393,7 @@ test_files:
368
393
  - spec/dummy/public/422.html
369
394
  - spec/dummy/public/500.html
370
395
  - spec/dummy/public/favicon.ico
396
+ - spec/dummy/public/system/promotions/photos/000/000/021/original/data
371
397
  - spec/dummy/Rakefile
372
398
  - spec/dummy/README.md
373
399
  - spec/dummy/spec/assets/bukowski.jpg
@@ -376,12 +402,30 @@ test_files:
376
402
  - spec/dummy/spec/models/promotion_spec.rb
377
403
  - spec/dummy/tmp/promotions/1/bukowski.jpg
378
404
  - spec/dummy/tmp/promotions/1/data
379
- - spec/dummy/tmp/uploads/1/bukowski.jpg
405
+ - spec/dummy/tmp/promotions/11/bukowski.jpg
406
+ - spec/dummy/tmp/promotions/13/bukowski.jpg
407
+ - spec/dummy/tmp/promotions/15/bukowski.jpg
408
+ - spec/dummy/tmp/promotions/17/bukowski.jpg
409
+ - spec/dummy/tmp/promotions/19/bukowski.jpg
410
+ - spec/dummy/tmp/promotions/21/bukowski.jpg
411
+ - spec/dummy/tmp/promotions/21/data
412
+ - spec/dummy/tmp/promotions/3/bukowski.jpg
413
+ - spec/dummy/tmp/promotions/5/bukowski.jpg
414
+ - spec/dummy/tmp/promotions/7/bukowski.jpg
415
+ - spec/dummy/tmp/promotions/9/bukowski.jpg
416
+ - spec/dummy/tmp/uploads/10/bukowski.jpg
417
+ - spec/dummy/tmp/uploads/12/bukowski.jpg
418
+ - spec/dummy/tmp/uploads/14/bukowski.jpg
419
+ - spec/dummy/tmp/uploads/18/bukowski.jpg
380
420
  - spec/dummy/tmp/uploads/2/bukowski.jpg
381
421
  - spec/dummy/tmp/uploads/2/Marilyn_Manson_imagen_003.jpg
382
- - spec/dummy/tmp/uploads/3/bukowski.jpg
422
+ - spec/dummy/tmp/uploads/20/bukowski.jpg
423
+ - spec/dummy/tmp/uploads/21/bukowski.jpg
383
424
  - spec/dummy/tmp/uploads/3/Marilyn_Manson_imagen_005.jpg
425
+ - spec/dummy/tmp/uploads/4/bukowski.jpg
384
426
  - spec/dummy/tmp/uploads/4/Marilyn_Manson_imagen_005.jpg
427
+ - spec/dummy/tmp/uploads/6/bukowski.jpg
428
+ - spec/dummy/tmp/uploads/8/bukowski.jpg
385
429
  - spec/factories/paperclip_upload/uploads.rb
386
430
  - spec/factories/promotions.rb
387
431
  - spec/rails_helper.rb