attachs 0.4.5 → 4.0.0.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +83 -218
  4. data/Rakefile +1 -14
  5. data/lib/attachs.rb +98 -31
  6. data/lib/attachs/attachment.rb +301 -72
  7. data/lib/attachs/builder.rb +78 -0
  8. data/lib/attachs/collection.rb +84 -0
  9. data/lib/attachs/concern.rb +47 -0
  10. data/lib/attachs/configuration.rb +11 -0
  11. data/lib/attachs/console.rb +40 -0
  12. data/lib/attachs/extensions/active_record/base.rb +24 -0
  13. data/lib/attachs/extensions/active_record/validations/attachment_content_type_validator.rb +37 -0
  14. data/lib/attachs/extensions/active_record/validations/attachment_presence_validator.rb +27 -0
  15. data/lib/attachs/extensions/active_record/validations/attachment_size_validator.rb +55 -0
  16. data/lib/attachs/extensions/active_record/validations/attachment_validator.rb +24 -0
  17. data/lib/attachs/interpolations.rb +27 -0
  18. data/lib/attachs/jobs/base.rb +14 -0
  19. data/lib/attachs/jobs/delete_job.rb +15 -0
  20. data/lib/attachs/jobs/update_job.rb +11 -0
  21. data/lib/attachs/locales/en.yml +2 -6
  22. data/lib/attachs/locales/es.yml +2 -6
  23. data/lib/attachs/processors/base.rb +4 -14
  24. data/lib/attachs/processors/image.rb +45 -0
  25. data/lib/attachs/railtie.rb +7 -27
  26. data/lib/attachs/storages/base.rb +10 -59
  27. data/lib/attachs/storages/s3.rb +68 -63
  28. data/lib/attachs/version.rb +1 -1
  29. data/lib/generators/attachs/install/install_generator.rb +15 -0
  30. data/lib/generators/attachs/install/templates/initializer.rb +7 -0
  31. data/lib/generators/attachs/upload/templates/migration.rb +11 -0
  32. data/lib/generators/attachs/upload/templates/model.rb +19 -0
  33. data/lib/generators/attachs/upload/upload_generator.rb +24 -0
  34. data/lib/tasks/attachs.rake +12 -26
  35. data/test/attachment_test.rb +175 -12
  36. data/test/collection_test.rb +52 -0
  37. data/test/concern_test.rb +10 -0
  38. data/test/dummy/Rakefile +1 -2
  39. data/test/dummy/app/assets/javascripts/application.js +2 -2
  40. data/test/dummy/app/assets/stylesheets/application.css +6 -4
  41. data/test/dummy/app/models/product.rb +16 -0
  42. data/test/dummy/app/models/shop.rb +14 -0
  43. data/test/dummy/app/models/upload.rb +19 -0
  44. data/test/dummy/app/views/layouts/application.html.erb +9 -11
  45. data/test/dummy/bin/bundle +1 -0
  46. data/test/dummy/bin/rails +2 -1
  47. data/test/dummy/bin/rake +1 -0
  48. data/test/dummy/bin/setup +30 -0
  49. data/test/dummy/config.ru +1 -1
  50. data/test/dummy/config/application.rb +3 -2
  51. data/test/dummy/config/boot.rb +1 -1
  52. data/test/dummy/config/database.yml +4 -22
  53. data/test/dummy/config/database.yml.travis +3 -0
  54. data/test/dummy/config/environment.rb +1 -1
  55. data/test/dummy/config/environments/development.rb +15 -3
  56. data/test/dummy/config/environments/production.rb +21 -26
  57. data/test/dummy/config/environments/test.rb +10 -12
  58. data/test/dummy/config/initializers/assets.rb +11 -0
  59. data/test/dummy/config/initializers/attachs.rb +7 -21
  60. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  61. data/test/dummy/config/initializers/mime_types.rb +1 -2
  62. data/test/dummy/config/initializers/session_store.rb +1 -1
  63. data/test/dummy/config/routes.rb +54 -0
  64. data/test/dummy/config/secrets.yml +24 -0
  65. data/test/dummy/db/migrate/20161024234003_create_shops.rb +11 -0
  66. data/test/dummy/db/migrate/20161024234029_create_products.rb +12 -0
  67. data/test/dummy/db/migrate/20161031135453_create_uploads.rb +11 -0
  68. data/test/dummy/db/schema.rb +27 -16
  69. data/test/dummy/log/development.log +61 -0
  70. data/test/dummy/log/test.log +5873 -0
  71. data/test/dummy/public/404.html +58 -55
  72. data/test/dummy/public/422.html +58 -55
  73. data/test/dummy/public/500.html +57 -54
  74. data/test/fixtures/big_file.txt +50 -0
  75. data/test/fixtures/big_image.jpg +0 -0
  76. data/test/fixtures/file.txt +1 -0
  77. data/test/fixtures/image.jpg +0 -0
  78. data/test/{dummy/test/fixtures/file.txt → fixtures/small_file.txt} +0 -0
  79. data/test/fixtures/small_image.jpg +0 -0
  80. data/test/generator_test.rb +14 -6
  81. data/test/helper_test.rb +28 -0
  82. data/test/query_test.rb +26 -0
  83. data/test/support/storage_helper.rb +65 -0
  84. data/test/task_test.rb +69 -0
  85. data/test/test_helper.rb +6 -45
  86. data/test/upload_test.rb +27 -0
  87. data/test/validator_test.rb +160 -0
  88. metadata +114 -68
  89. data/lib/attachs/active_record/base.rb +0 -103
  90. data/lib/attachs/active_record/connection_adapters.rb +0 -40
  91. data/lib/attachs/active_record/migration.rb +0 -17
  92. data/lib/attachs/active_record/validators.rb +0 -7
  93. data/lib/attachs/active_record/validators/attachment_content_type_validator.rb +0 -30
  94. data/lib/attachs/active_record/validators/attachment_presence_validator.rb +0 -22
  95. data/lib/attachs/active_record/validators/attachment_size_validator.rb +0 -47
  96. data/lib/attachs/processors/thumbnail.rb +0 -69
  97. data/lib/attachs/storages/local.rb +0 -95
  98. data/lib/attachs/types/base.rb +0 -22
  99. data/lib/attachs/types/default.rb +0 -29
  100. data/lib/attachs/types/regular.rb +0 -21
  101. data/lib/generators/attachs/install_generator.rb +0 -13
  102. data/lib/generators/attachs/templates/attachs.rb +0 -2
  103. data/test/dummy/README.rdoc +0 -28
  104. data/test/dummy/app/models/medium.rb +0 -5
  105. data/test/dummy/app/models/picture.rb +0 -2
  106. data/test/dummy/config/initializers/secret_token.rb +0 -13
  107. data/test/dummy/config/s3.yml +0 -15
  108. data/test/dummy/db/migrate/20140808012639_create_media.rb +0 -11
  109. data/test/dummy/test/fixtures/image.gif +0 -0
  110. data/test/local_storage_test.rb +0 -72
  111. data/test/migration_test.rb +0 -65
  112. data/test/processor_test.rb +0 -49
  113. data/test/s3_storage_tes.rb +0 -66
  114. data/test/tasks_test.rb +0 -57
  115. data/test/validators_test.rb +0 -100
@@ -1,100 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ValidatorsTest < ActiveSupport::TestCase
4
- include ActionView::Helpers::NumberHelper
5
-
6
- test 'presence validator' do
7
- model = build_model
8
- model.validates_attachment_presence_of :attach
9
- record = model.new
10
- assert !record.valid?
11
- message = I18n.t('errors.messages.attachment_presence')
12
- assert record.errors[:attach].include?(message)
13
-
14
- record = model.new(attach: image_upload)
15
- assert record.valid?
16
- assert record.errors[:attach].empty?
17
- record.destroy
18
- end
19
-
20
- test 'content type regex validator' do
21
- model = build_model
22
- model.validates_attachment_content_type_of :attach, with: /\Aimage/
23
- record = model.new(attach: file_upload)
24
- assert !record.valid?
25
- message = I18n.t('errors.messages.attachment_content_type_with')
26
- assert record.errors[:attach].include?(message)
27
-
28
- record = model.new(attach: image_upload)
29
- assert record.valid?
30
- assert record.errors[:attach].empty?
31
- record.destroy
32
- end
33
-
34
- test 'content type inclusion validator' do
35
- model = build_model
36
- model.validates_attachment_content_type_of :attach, in: %w(image/gif)
37
- record = model.new(attach: file_upload)
38
- assert !record.valid?
39
- message = I18n.t('errors.messages.attachment_content_type_in', types: %w(image/gif).to_sentence)
40
- assert record.errors[:attach].include?(message)
41
-
42
- record = model.new(attach: image_upload)
43
- assert record.valid?
44
- assert record.errors[:attach].empty?
45
- record.destroy
46
- end
47
-
48
- test 'size range validator' do
49
- model = build_model
50
- model.validates_attachment_size_of :attach, in: 1..20.bytes
51
- record = model.new(attach: image_upload)
52
- assert !record.valid?
53
- message = I18n.t('errors.messages.attachment_size_in', min: number_to_human_size(1.byte), max: number_to_human_size(20.bytes))
54
- assert record.errors[:attach].include?(message)
55
-
56
- record = model.new(attach: file_upload)
57
- assert record.valid?
58
- assert record.errors[:attach].empty?
59
- record.destroy
60
- end
61
-
62
- test 'size minimum validator' do
63
- model = build_model
64
- model.validates_attachment_size_of :attach, less_than: 20.bytes
65
- record = model.new(attach: image_upload)
66
- assert !record.valid?
67
- message = I18n.t('errors.messages.attachment_size_less_than', count: number_to_human_size(20.bytes))
68
- assert record.errors[:attach].include?(message)
69
-
70
- record = model.new(attach: file_upload)
71
- assert record.valid?
72
- assert record.errors[:attach].empty?
73
- record.destroy
74
- end
75
-
76
- test 'size maximum validator' do
77
- model = build_model
78
- model.validates_attachment_size_of :attach, greater_than: 20.bytes
79
- record = model.new(attach: file_upload)
80
- assert !record.valid?
81
- message = I18n.t('errors.messages.attachment_size_greater_than', count: number_to_human_size(20.bytes))
82
- assert record.errors[:attach].include?(message)
83
-
84
- record = model.new(attach: image_upload)
85
- assert record.valid?
86
- assert record.errors[:attach].empty?
87
- record.destroy
88
- end
89
-
90
- private
91
-
92
- def build_model
93
- Class.new(Medium) do
94
- def self.name
95
- 'Medium'
96
- end
97
- end
98
- end
99
-
100
- end