rails_uploads 0.1.5 → 0.2.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 (120) hide show
  1. data/README.rdoc +35 -9
  2. data/app/controllers/rails_uploads/application_controller.rb +1 -0
  3. data/app/controllers/rails_uploads/presets_controller.rb +2 -4
  4. data/lib/rails_uploads.rb +2 -0
  5. data/lib/rails_uploads/active_record/base.rb +60 -55
  6. data/lib/rails_uploads/magick/image.rb +3 -3
  7. data/lib/rails_uploads/railtie.rb +6 -1
  8. data/lib/rails_uploads/storages/local.rb +57 -0
  9. data/lib/rails_uploads/storages/s3.rb +61 -0
  10. data/lib/rails_uploads/types/file.rb +35 -43
  11. data/lib/rails_uploads/types/image.rb +12 -28
  12. data/lib/rails_uploads/validators/attachment_content_type_validator.rb +2 -4
  13. data/lib/rails_uploads/validators/attachment_presence_validator.rb +0 -2
  14. data/lib/rails_uploads/validators/attachment_size_validator.rb +4 -6
  15. data/lib/rails_uploads/version.rb +1 -1
  16. data/lib/tasks/rails_uploads_tasks.rake +31 -3
  17. data/test/dummy/app/models/file_upload.rb +1 -1
  18. data/test/dummy/app/models/image_upload.rb +1 -1
  19. data/test/dummy/app/models/validation_upload.rb +2 -2
  20. data/test/dummy/config/s3.yml +15 -0
  21. data/test/dummy/log/development.log +1 -0
  22. data/test/dummy/log/test.log +11581 -0
  23. data/test/dummy/public/uploads/images/{original/default.jpg → big/image.jpg} +0 -0
  24. data/test/dummy/public/uploads/images/small/image.jpg +0 -0
  25. data/test/dummy/tmp/uploads/files/13687482983108968.jpg +0 -0
  26. data/test/dummy/tmp/uploads/files/13687483348482658.jpg +0 -0
  27. data/test/dummy/tmp/uploads/files/13687483563901100.jpg +0 -0
  28. data/test/dummy/tmp/uploads/files/13687484108914220.jpg +0 -0
  29. data/test/dummy/tmp/uploads/files/13687489381697390.jpg +0 -0
  30. data/test/dummy/tmp/uploads/files/13687490968011022.jpg +0 -0
  31. data/test/dummy/tmp/uploads/files/13687491524768450.jpg +0 -0
  32. data/test/dummy/tmp/uploads/files/13687494425396302.jpg +0 -0
  33. data/test/dummy/tmp/uploads/files/13687513450654020.jpg +0 -0
  34. data/test/dummy/{public/uploads/files/default.txt → tmp/uploads/files/13687514839373922.txt} +0 -0
  35. data/test/dummy/tmp/uploads/files/13688181722986792.jpg +0 -0
  36. data/test/dummy/tmp/uploads/files/13688181729459798.jpg +0 -0
  37. data/test/dummy/tmp/uploads/images/big/13687484103672162.jpg +0 -0
  38. data/test/dummy/tmp/uploads/images/big/13687484106303082.jpg +0 -0
  39. data/test/dummy/tmp/uploads/images/big/13687489377129980.jpg +0 -0
  40. data/test/dummy/tmp/uploads/images/big/13687489379459820.jpg +0 -0
  41. data/test/dummy/tmp/uploads/images/big/13687490965463210.jpg +0 -0
  42. data/test/dummy/tmp/uploads/images/big/13687491522552230.jpg +0 -0
  43. data/test/dummy/tmp/uploads/images/big/13688181724596422.jpg +0 -0
  44. data/test/dummy/tmp/uploads/images/big/13688181727051510.jpg +0 -0
  45. data/test/dummy/tmp/uploads/images/big/13688259257147068.jpg +0 -0
  46. data/test/dummy/tmp/uploads/images/big/13688280071286788.jpg +0 -0
  47. data/test/dummy/tmp/uploads/images/big/13688281527981960.jpg +0 -0
  48. data/test/dummy/tmp/uploads/images/big/13688360981527310.jpg +0 -0
  49. data/test/dummy/tmp/uploads/images/big/13688360983686640.jpg +0 -0
  50. data/test/dummy/tmp/uploads/images/big/13688977138132322.jpg +0 -0
  51. data/test/dummy/tmp/uploads/images/big/13688977290079510.jpg +0 -0
  52. data/test/dummy/tmp/uploads/images/big/13688978966174670.jpg +0 -0
  53. data/test/dummy/tmp/uploads/images/original/13687482977916958.jpg +0 -0
  54. data/test/dummy/tmp/uploads/images/original/13687482979328390.jpg +0 -0
  55. data/test/dummy/tmp/uploads/images/original/13687482981277580.jpg +0 -0
  56. data/test/dummy/tmp/uploads/images/original/13687483343313990.jpg +0 -0
  57. data/test/dummy/tmp/uploads/images/original/13687483344710930.jpg +0 -0
  58. data/test/dummy/tmp/uploads/images/original/13687483346647770.jpg +0 -0
  59. data/test/dummy/tmp/uploads/images/original/13687483558679350.jpg +0 -0
  60. data/test/dummy/tmp/uploads/images/original/13687483560070410.jpg +0 -0
  61. data/test/dummy/tmp/uploads/images/original/13687483562001660.jpg +0 -0
  62. data/test/dummy/tmp/uploads/images/original/13687484103672162.jpg +0 -0
  63. data/test/dummy/tmp/uploads/images/original/13687484106303082.jpg +0 -0
  64. data/test/dummy/tmp/uploads/images/original/13687489377129980.jpg +0 -0
  65. data/test/dummy/tmp/uploads/images/original/13687489379459820.jpg +0 -0
  66. data/test/dummy/tmp/uploads/images/original/13687490965463210.jpg +0 -0
  67. data/test/dummy/tmp/uploads/images/original/13687491522552230.jpg +0 -0
  68. data/test/dummy/tmp/uploads/images/original/13688181723027610.jpg +0 -0
  69. data/test/dummy/tmp/uploads/images/original/13688181724596422.jpg +0 -0
  70. data/test/dummy/tmp/uploads/images/original/13688181727051510.jpg +0 -0
  71. data/test/dummy/tmp/uploads/images/original/13688259257147068.jpg +0 -0
  72. data/test/dummy/tmp/uploads/images/original/13688280071286788.jpg +0 -0
  73. data/test/dummy/tmp/uploads/images/original/13688281527981960.jpg +0 -0
  74. data/test/dummy/tmp/uploads/images/original/13688360981527310.jpg +0 -0
  75. data/test/dummy/tmp/uploads/images/original/13688360983686640.jpg +0 -0
  76. data/test/dummy/tmp/uploads/images/original/13688977138132322.jpg +0 -0
  77. data/test/dummy/tmp/uploads/images/original/13688977290079510.jpg +0 -0
  78. data/test/dummy/tmp/uploads/images/original/13688978966174670.jpg +0 -0
  79. data/test/dummy/tmp/uploads/images/small/13687484103672162.jpg +0 -0
  80. data/test/dummy/tmp/uploads/images/small/13687484106303082.jpg +0 -0
  81. data/test/dummy/tmp/uploads/images/small/13687489377129980.jpg +0 -0
  82. data/test/dummy/tmp/uploads/images/small/13687489379459820.jpg +0 -0
  83. data/test/dummy/tmp/uploads/images/small/13687490965463210.jpg +0 -0
  84. data/test/dummy/tmp/uploads/images/small/13687491522552230.jpg +0 -0
  85. data/test/dummy/tmp/uploads/images/small/13688181723027610.jpg +0 -0
  86. data/test/dummy/tmp/uploads/images/small/13688181724596422.jpg +0 -0
  87. data/test/dummy/tmp/uploads/images/small/13688181727051510.jpg +0 -0
  88. data/test/dummy/tmp/uploads/images/small/13688259257147068.jpg +0 -0
  89. data/test/dummy/tmp/uploads/images/small/13688280071286788.jpg +0 -0
  90. data/test/dummy/tmp/uploads/images/small/13688281527981960.jpg +0 -0
  91. data/test/dummy/tmp/uploads/images/small/13688360981527310.jpg +0 -0
  92. data/test/dummy/tmp/uploads/images/small/13688360983686640.jpg +0 -0
  93. data/test/dummy/tmp/uploads/images/small/13688977138132322.jpg +0 -0
  94. data/test/dummy/tmp/uploads/images/small/13688977290079510.jpg +0 -0
  95. data/test/dummy/tmp/uploads/images/small/13688978966174670.jpg +0 -0
  96. data/test/{generate_test.rb → integration/local_generate_test.rb} +12 -14
  97. data/test/test_helper.rb +29 -0
  98. data/test/unit/local_file_record_test.rb +20 -0
  99. data/test/unit/local_file_string_test.rb +23 -0
  100. data/test/unit/local_file_upload_test.rb +30 -0
  101. data/test/unit/local_image_record_test.rb +25 -0
  102. data/test/{image_string_test.rb → unit/local_image_string_test.rb} +19 -21
  103. data/test/unit/local_image_upload_test.rb +27 -0
  104. data/test/unit/local_records_test.rb +52 -0
  105. data/test/{validators_test.rb → unit/local_validators_test.rb} +15 -28
  106. data/test/unit/s3_file_record_tes.rb +21 -0
  107. data/test/unit/s3_file_string_tes.rb +24 -0
  108. data/test/unit/s3_file_upload_tes.rb +31 -0
  109. data/test/unit/s3_image_record_tes.rb +26 -0
  110. data/test/unit/s3_image_string_tes.rb +31 -0
  111. data/test/unit/s3_image_upload_tes.rb +28 -0
  112. data/test/unit/s3_records_tes.rb +56 -0
  113. data/test/unit/s3_validators_tes.rb +71 -0
  114. metadata +204 -25
  115. data/test/file_string_test.rb +0 -35
  116. data/test/file_upload_test.rb +0 -41
  117. data/test/image_presets_test.rb +0 -32
  118. data/test/image_upload_test.rb +0 -34
  119. data/test/rails_uploads_test.rb +0 -9
  120. data/test/records_test.rb +0 -55
@@ -1,35 +0,0 @@
1
- require 'test_helper'
2
-
3
- class FileStringTest < ActiveSupport::TestCase
4
-
5
- setup :create_file
6
-
7
- test "methods should work properly" do
8
-
9
- # Basic tests
10
-
11
- assert @file.exists?
12
- assert_equal 11, @file.size
13
- assert_equal '.txt', @file.extname
14
- assert_equal ::File.join('', 'uploads', 'files', @file.filename), @file.path
15
- assert_equal Rails.root.join('tmp', 'uploads', 'files', @file.filename).to_s, @file.realpath
16
-
17
- # Delete tests
18
-
19
- uploads_path = Rails.root.join('tmp', 'uploads', 'files', @file.filename).to_s
20
- @file.delete
21
- assert !::File.exists?(uploads_path)
22
- assert !@file.exists?
23
-
24
- end
25
-
26
- protected
27
-
28
- def create_file
29
- FileUtils.mkdir_p Rails.root.join('tmp', 'uploads', 'files')
30
- filename = 'file.txt'
31
- FileUtils.cp ::File.join(ActiveSupport::TestCase.fixture_path, filename), Rails.root.join('tmp', 'uploads', 'files', filename)
32
- @file = RailsUploads::Types::File.new(filename)
33
- end
34
-
35
- end
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
-
3
- class FileUploadTest < ActiveSupport::TestCase
4
- include ActionDispatch::TestProcess
5
-
6
- setup :create_file
7
-
8
- test "methods should work properly" do
9
-
10
- # Basic tests
11
-
12
- assert @file.exists?
13
- assert_equal 58841, @file.size
14
- assert_equal '.jpg', @file.extname
15
- assert_equal ::File.join('', 'uploads', 'files', @file.filename), @file.path
16
-
17
- # Delete test
18
-
19
- @file.delete
20
- assert @file.exists?
21
-
22
- # Store and delete tests
23
-
24
- @file.store
25
- uploads_path = Rails.root.join('tmp', 'uploads', 'files', @file.filename).to_s
26
- assert ::File.exists?(uploads_path)
27
- assert_equal uploads_path, @file.realpath
28
-
29
- @file.delete
30
- assert !::File.exists?(uploads_path)
31
- assert !@file.exists?
32
-
33
- end
34
-
35
- protected
36
-
37
- def create_file
38
- @file = RailsUploads::Types::File.new(fixture_file_upload('/image.jpg', 'image/jpeg'))
39
- end
40
-
41
- end
@@ -1,32 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ImagePresetsTest < ActiveSupport::TestCase
4
- include ActionDispatch::TestProcess
5
-
6
- setup :create_image
7
-
8
- test "should save/destory main image and thumbs" do
9
-
10
- #assert_equal 58841, @record.image.size
11
- #assert_equal 89314, @record.image.size(:big)
12
- #assert_equal 12057, @record.image.size(:small)
13
-
14
- original = @record.image.realpath
15
- big = @record.image.realpath(:big)
16
- small = @record.image.realpath(:small)
17
-
18
- @record.destroy
19
-
20
- assert !::File.exists?(original)
21
- assert !::File.exists?(big)
22
- assert !::File.exists?(small)
23
-
24
- end
25
-
26
- protected
27
-
28
- def create_image
29
- @record = ImageUpload.create :image => fixture_file_upload(::File.join('', 'image.jpg'), 'image/jpeg')
30
- end
31
-
32
- end
@@ -1,34 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ImageUploadTest < ActiveSupport::TestCase
4
- include ActionDispatch::TestProcess
5
-
6
- setup :create_image
7
-
8
- test "should save/destory main image and thumbs" do
9
-
10
- #assert_equal 58841, @image.size
11
- #assert_equal 89314, @image.size(:big)
12
- #assert_equal 12057, @image.size(:small)
13
-
14
- original = @image.realpath
15
- big = @image.realpath(:big)
16
- small = @image.realpath(:small)
17
-
18
- @image.delete
19
-
20
- assert !::File.exists?(original)
21
- assert !::File.exists?(big)
22
- assert !::File.exists?(small)
23
-
24
- end
25
-
26
- protected
27
-
28
- def create_image
29
- @options = { :presets => [:small, :big] }
30
- @image = RailsUploads::Types::Image.new(fixture_file_upload(::File.join('', 'image.jpg'), 'image/jpeg'), @options)
31
- @image.store
32
- end
33
-
34
- end
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
-
3
- class RailsUploadsTest < ActiveSupport::TestCase
4
-
5
- test "truth" do
6
- assert_kind_of Module, RailsUploads
7
- end
8
-
9
- end
data/test/records_test.rb DELETED
@@ -1,55 +0,0 @@
1
- require 'test_helper'
2
-
3
- class RecordsTest < ActiveSupport::TestCase
4
-
5
- test "should save/update/destroy from the database and save/destroy the file" do
6
-
7
- # Save
8
-
9
- image_fixture_path = ::File.join(ActiveSupport::TestCase.fixture_path, 'image.jpg')
10
- record = FileUpload.create(:file => Rack::Test::UploadedFile.new(image_fixture_path, 'image/jpeg'))
11
-
12
- image_filename = record.file.filename
13
- assert_equal image_filename, FileUpload.first.file.filename
14
-
15
- image_upload_path = record.file.realpath
16
- assert ::File.exists?(image_upload_path)
17
-
18
- # Update
19
-
20
- doc_fixture_path = ::File.join(ActiveSupport::TestCase.fixture_path, 'file.txt')
21
- record.update_attributes :file => Rack::Test::UploadedFile.new(doc_fixture_path, 'text/plain')
22
-
23
- doc_filename = record.file.filename
24
- assert_not_equal image_filename, doc_filename
25
- assert_equal doc_filename, FileUpload.first.file.filename
26
-
27
- doc_upload_path = record.file.realpath
28
- assert !::File.exists?(image_upload_path)
29
- assert ::File.exists?(doc_upload_path)
30
-
31
- # Destroy
32
-
33
- record.destroy
34
- assert !FileUpload.first
35
- assert !::File.exists?(doc_upload_path)
36
-
37
- end
38
-
39
- test "should take default file/image and shouldn't store/delete it" do
40
-
41
- # File
42
-
43
- record = FileUpload.create
44
- assert_equal ::File.join('', 'uploads', 'files', 'default.txt'), record.file.path
45
-
46
- # Image
47
-
48
- record = ImageUpload.create
49
- assert_equal ::File.join('', 'uploads', 'images', 'original', 'default.jpg'), record.image.path
50
- assert_equal ::File.join('', 'uploads', 'images', 'small', 'default.jpg'), record.image.path(:small)
51
- assert_equal ::File.join('', 'uploads', 'images', 'big', 'default.jpg'), record.image.path(:big)
52
-
53
- end
54
-
55
- end