paperclip_upload 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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