paperclip 4.3.7 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +17 -0
  3. data/.hound.yml +5 -16
  4. data/.travis.yml +15 -12
  5. data/Appraisals +4 -8
  6. data/CONTRIBUTING.md +16 -5
  7. data/Gemfile +3 -8
  8. data/LICENSE +1 -1
  9. data/NEWS +105 -31
  10. data/README.md +239 -153
  11. data/Rakefile +1 -1
  12. data/UPGRADING +12 -9
  13. data/features/basic_integration.feature +3 -2
  14. data/features/migration.feature +0 -24
  15. data/features/step_definitions/attachment_steps.rb +6 -6
  16. data/features/step_definitions/rails_steps.rb +29 -28
  17. data/features/step_definitions/s3_steps.rb +2 -2
  18. data/features/support/env.rb +1 -0
  19. data/features/support/paths.rb +1 -1
  20. data/features/support/rails.rb +0 -24
  21. data/gemfiles/4.2.gemfile +3 -5
  22. data/gemfiles/{3.2.gemfile → 5.0.gemfile} +4 -6
  23. data/lib/generators/paperclip/paperclip_generator.rb +9 -1
  24. data/lib/generators/paperclip/templates/paperclip_migration.rb.erb +1 -1
  25. data/lib/paperclip.rb +13 -12
  26. data/lib/paperclip/attachment.rb +25 -14
  27. data/lib/paperclip/attachment_registry.rb +2 -1
  28. data/lib/paperclip/callbacks.rb +8 -6
  29. data/lib/paperclip/content_type_detector.rb +3 -2
  30. data/lib/paperclip/errors.rb +3 -1
  31. data/lib/paperclip/file_command_content_type_detector.rb +1 -1
  32. data/lib/paperclip/geometry_detector_factory.rb +2 -2
  33. data/lib/paperclip/glue.rb +1 -1
  34. data/lib/paperclip/has_attached_file.rb +7 -1
  35. data/lib/paperclip/helpers.rb +15 -11
  36. data/lib/paperclip/interpolations.rb +1 -1
  37. data/lib/paperclip/io_adapters/abstract_adapter.rb +29 -3
  38. data/lib/paperclip/io_adapters/attachment_adapter.rb +10 -5
  39. data/lib/paperclip/io_adapters/data_uri_adapter.rb +8 -8
  40. data/lib/paperclip/io_adapters/empty_string_adapter.rb +5 -4
  41. data/lib/paperclip/io_adapters/file_adapter.rb +12 -6
  42. data/lib/paperclip/io_adapters/http_url_proxy_adapter.rb +7 -7
  43. data/lib/paperclip/io_adapters/identity_adapter.rb +12 -6
  44. data/lib/paperclip/io_adapters/nil_adapter.rb +8 -5
  45. data/lib/paperclip/io_adapters/registry.rb +6 -2
  46. data/lib/paperclip/io_adapters/stringio_adapter.rb +9 -6
  47. data/lib/paperclip/io_adapters/uploaded_file_adapter.rb +10 -6
  48. data/lib/paperclip/io_adapters/uri_adapter.rb +17 -14
  49. data/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +4 -4
  50. data/lib/paperclip/media_type_spoof_detector.rb +3 -2
  51. data/lib/paperclip/processor.rb +5 -4
  52. data/lib/paperclip/schema.rb +2 -8
  53. data/lib/paperclip/storage/filesystem.rb +13 -2
  54. data/lib/paperclip/storage/fog.rb +20 -13
  55. data/lib/paperclip/storage/s3.rb +87 -58
  56. data/lib/paperclip/thumbnail.rb +18 -8
  57. data/lib/paperclip/url_generator.rb +17 -13
  58. data/lib/paperclip/validators.rb +1 -1
  59. data/lib/paperclip/validators/attachment_size_validator.rb +1 -7
  60. data/lib/paperclip/version.rb +3 -1
  61. data/lib/tasks/paperclip.rake +18 -4
  62. data/paperclip.gemspec +13 -10
  63. data/spec/paperclip/attachment_processing_spec.rb +2 -4
  64. data/spec/paperclip/attachment_registry_spec.rb +28 -0
  65. data/spec/paperclip/attachment_spec.rb +72 -18
  66. data/spec/paperclip/content_type_detector_spec.rb +1 -1
  67. data/spec/paperclip/file_command_content_type_detector_spec.rb +15 -1
  68. data/spec/paperclip/has_attached_file_spec.rb +24 -8
  69. data/spec/paperclip/integration_spec.rb +4 -3
  70. data/spec/paperclip/io_adapters/abstract_adapter_spec.rb +76 -22
  71. data/spec/paperclip/io_adapters/attachment_adapter_spec.rb +6 -3
  72. data/spec/paperclip/io_adapters/data_uri_adapter_spec.rb +7 -1
  73. data/spec/paperclip/io_adapters/file_adapter_spec.rb +2 -2
  74. data/spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb +18 -1
  75. data/spec/paperclip/io_adapters/identity_adapter_spec.rb +1 -1
  76. data/spec/paperclip/io_adapters/registry_spec.rb +2 -2
  77. data/spec/paperclip/io_adapters/stringio_adapter_spec.rb +1 -1
  78. data/spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb +5 -5
  79. data/spec/paperclip/io_adapters/uri_adapter_spec.rb +48 -3
  80. data/spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb +10 -0
  81. data/spec/paperclip/media_type_spoof_detector_spec.rb +15 -0
  82. data/spec/paperclip/paperclip_spec.rb +15 -45
  83. data/spec/paperclip/processor_spec.rb +4 -4
  84. data/spec/paperclip/storage/fog_spec.rb +31 -0
  85. data/spec/paperclip/storage/s3_live_spec.rb +20 -14
  86. data/spec/paperclip/storage/s3_spec.rb +357 -190
  87. data/spec/paperclip/tempfile_spec.rb +35 -0
  88. data/spec/paperclip/thumbnail_spec.rb +38 -35
  89. data/spec/paperclip/url_generator_spec.rb +54 -43
  90. data/spec/paperclip/validators/attachment_size_validator_spec.rb +26 -20
  91. data/spec/paperclip/validators_spec.rb +5 -5
  92. data/spec/spec_helper.rb +6 -2
  93. data/spec/support/assertions.rb +12 -1
  94. data/spec/support/conditional_filter_helper.rb +5 -0
  95. data/spec/support/mock_attachment.rb +2 -0
  96. data/spec/support/mock_url_generator_builder.rb +2 -2
  97. data/spec/support/model_reconstruction.rb +9 -1
  98. data/spec/support/reporting.rb +11 -0
  99. metadata +66 -58
  100. data/cucumber/paperclip_steps.rb +0 -6
  101. data/gemfiles/4.1.gemfile +0 -19
  102. data/lib/paperclip/deprecations.rb +0 -42
  103. data/lib/paperclip/locales/de.yml +0 -18
  104. data/lib/paperclip/locales/es.yml +0 -18
  105. data/lib/paperclip/locales/ja.yml +0 -18
  106. data/lib/paperclip/locales/pt-BR.yml +0 -18
  107. data/lib/paperclip/locales/zh-CN.yml +0 -18
  108. data/lib/paperclip/locales/zh-HK.yml +0 -18
  109. data/lib/paperclip/locales/zh-TW.yml +0 -18
  110. data/spec/paperclip/deprecations_spec.rb +0 -65
  111. data/spec/support/deprecations.rb +0 -9
  112. data/spec/support/rails_helpers.rb +0 -7
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,8 @@ require 'active_support/core_ext'
7
7
  require 'mocha/api'
8
8
  require 'bourne'
9
9
  require 'ostruct'
10
+ require 'pathname'
11
+ require 'activerecord-import'
10
12
 
11
13
  ROOT = Pathname(File.expand_path(File.join(File.dirname(__FILE__), '..')))
12
14
 
@@ -20,7 +22,8 @@ FIXTURES_DIR = File.join(File.dirname(__FILE__), "fixtures")
20
22
  config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
21
23
  ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
22
24
  ActiveRecord::Base.establish_connection(config['test'])
23
- unless ActiveRecord::VERSION::STRING < "4.2"
25
+ if ActiveRecord::VERSION::STRING >= "4.2" &&
26
+ ActiveRecord::VERSION::STRING < "5.0"
24
27
  ActiveRecord::Base.raise_in_transactional_callbacks = true
25
28
  end
26
29
  Paperclip.options[:logger] = ActiveRecord::Base.logger
@@ -34,8 +37,9 @@ RSpec.configure do |config|
34
37
  config.include Assertions
35
38
  config.include ModelReconstruction
36
39
  config.include TestData
40
+ config.include Reporting
37
41
  config.extend VersionHelper
38
- config.extend RailsHelpers::ClassMethods
42
+ config.extend ConditionalFilterHelper
39
43
  config.mock_framework = :mocha
40
44
  config.before(:all) do
41
45
  rebuild_model
@@ -48,19 +48,30 @@ module Assertions
48
48
  end
49
49
 
50
50
  def assert_success_response(url)
51
+ url = "http:#{url}" unless url =~ /http/
51
52
  Net::HTTP.get_response(URI.parse(url)) do |response|
52
- assert_equal "200", response.code,
53
+ assert_equal "200",
54
+ response.code,
53
55
  "Expected HTTP response code 200, got #{response.code}"
54
56
  end
55
57
  end
56
58
 
57
59
  def assert_not_found_response(url)
60
+ url = "http:#{url}" unless url =~ /http/
58
61
  Net::HTTP.get_response(URI.parse(url)) do |response|
59
62
  assert_equal "404", response.code,
60
63
  "Expected HTTP response code 404, got #{response.code}"
61
64
  end
62
65
  end
63
66
 
67
+ def assert_forbidden_response(url)
68
+ url = "http:#{url}" unless url =~ /http/
69
+ Net::HTTP.get_response(URI.parse(url)) do |response|
70
+ assert_equal "403", response.code,
71
+ "Expected HTTP response code 403, got #{response.code}"
72
+ end
73
+ end
74
+
64
75
  def assert_frame_dimensions(range, frames)
65
76
  frames.each_with_index do |frame, frame_index|
66
77
  frame.split('x').each_with_index do |dimension, dimension_index |
@@ -0,0 +1,5 @@
1
+ module ConditionalFilterHelper
2
+ def aws_accelerate_available?
3
+ (Gem::Version.new(Aws::VERSION) >= Gem::Version.new("2.3.0"))
4
+ end
5
+ end
@@ -1,7 +1,9 @@
1
1
  class MockAttachment
2
2
  attr_accessor :updated_at, :original_filename
3
+ attr_reader :options
3
4
 
4
5
  def initialize(options = {})
6
+ @options = options
5
7
  @model = options[:model]
6
8
  @responds_to_updated_at = options[:responds_to_updated_at]
7
9
  @updated_at = options[:updated_at]
@@ -2,9 +2,9 @@ class MockUrlGeneratorBuilder
2
2
  def initializer
3
3
  end
4
4
 
5
- def new(attachment, attachment_options)
5
+ def new(attachment)
6
6
  @attachment = attachment
7
- @attachment_options = attachment_options
7
+ @attachment_options = @attachment.options
8
8
  self
9
9
  end
10
10
 
@@ -10,7 +10,15 @@ module ModelReconstruction
10
10
 
11
11
  klass.reset_column_information
12
12
  klass.connection_pool.clear_table_cache!(klass.table_name) if klass.connection_pool.respond_to?(:clear_table_cache!)
13
- klass.connection.schema_cache.clear_table_cache!(klass.table_name) if klass.connection.respond_to?(:schema_cache)
13
+
14
+ if klass.connection.respond_to?(:schema_cache)
15
+ if ActiveRecord::VERSION::STRING >= "5.0"
16
+ klass.connection.schema_cache.clear_data_source_cache!(klass.table_name)
17
+ else
18
+ klass.connection.schema_cache.clear_table_cache!(klass.table_name)
19
+ end
20
+ end
21
+
14
22
  klass
15
23
  end
16
24
 
@@ -0,0 +1,11 @@
1
+ module Reporting
2
+ def silence_stream(stream)
3
+ old_stream = stream.dup
4
+ stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
5
+ stream.sync = true
6
+ yield
7
+ ensure
8
+ stream.reopen(old_stream)
9
+ old_stream.close
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.7
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Yurek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-01 00:00:00.000000000 Z
11
+ date: 2018-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.0
19
+ version: 4.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.0
26
+ version: 4.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 3.2.0
33
+ version: 4.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 3.2.0
40
+ version: 4.2.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: cocaine
42
+ name: terrapin
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.5
47
+ version: 0.6.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.5
54
+ version: 0.6.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mime-types
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +70,14 @@ dependencies:
70
70
  name: mimemagic
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.3.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.3.0
83
83
  - !ruby/object:Gem::Dependency
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 3.2.0
89
+ version: 4.2.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 3.2.0
96
+ version: 4.2.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: shoulda
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -156,20 +156,20 @@ dependencies:
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 1.5.7
160
- - - "<="
159
+ version: 2.3.0
160
+ - - "<"
161
161
  - !ruby/object:Gem::Version
162
- version: '2.0'
162
+ version: '3.0'
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
167
  - - ">="
168
168
  - !ruby/object:Gem::Version
169
- version: 1.5.7
170
- - - "<="
169
+ version: 2.3.0
170
+ - - "<"
171
171
  - !ruby/object:Gem::Version
172
- version: '2.0'
172
+ version: '3.0'
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: bourne
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -185,19 +185,33 @@ dependencies:
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  - !ruby/object:Gem::Dependency
188
- name: cucumber
188
+ name: cucumber-rails
189
189
  requirement: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - "~>"
191
+ - - ">="
192
192
  - !ruby/object:Gem::Version
193
- version: 1.3.18
193
+ version: '0'
194
194
  type: :development
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
- - - "~>"
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: cucumber-expressions
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - '='
199
206
  - !ruby/object:Gem::Version
200
- version: 1.3.18
207
+ version: 4.0.3
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - '='
213
+ - !ruby/object:Gem::Version
214
+ version: 4.0.3
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: aruba
203
217
  requirement: !ruby/object:Gem::Requirement
@@ -338,20 +352,6 @@ dependencies:
338
352
  - - ">="
339
353
  - !ruby/object:Gem::Version
340
354
  version: '0'
341
- - !ruby/object:Gem::Dependency
342
- name: actionmailer
343
- requirement: !ruby/object:Gem::Requirement
344
- requirements:
345
- - - ">="
346
- - !ruby/object:Gem::Version
347
- version: 3.2.0
348
- type: :development
349
- prerelease: false
350
- version_requirements: !ruby/object:Gem::Requirement
351
- requirements:
352
- - - ">="
353
- - !ruby/object:Gem::Version
354
- version: 3.2.0
355
355
  - !ruby/object:Gem::Dependency
356
356
  name: generator_spec
357
357
  requirement: !ruby/object:Gem::Requirement
@@ -387,6 +387,7 @@ executables: []
387
387
  extensions: []
388
388
  extra_rdoc_files: []
389
389
  files:
390
+ - ".codeclimate.yml"
390
391
  - ".gitignore"
391
392
  - ".hound.yml"
392
393
  - ".rubocop.yml"
@@ -400,7 +401,6 @@ files:
400
401
  - RELEASING.md
401
402
  - Rakefile
402
403
  - UPGRADING
403
- - cucumber/paperclip_steps.rb
404
404
  - features/basic_integration.feature
405
405
  - features/migration.feature
406
406
  - features/rake_tasks.feature
@@ -418,9 +418,8 @@ files:
418
418
  - features/support/paths.rb
419
419
  - features/support/rails.rb
420
420
  - features/support/selectors.rb
421
- - gemfiles/3.2.gemfile
422
- - gemfiles/4.1.gemfile
423
421
  - gemfiles/4.2.gemfile
422
+ - gemfiles/5.0.gemfile
424
423
  - lib/generators/paperclip/USAGE
425
424
  - lib/generators/paperclip/paperclip_generator.rb
426
425
  - lib/generators/paperclip/templates/paperclip_migration.rb.erb
@@ -429,7 +428,6 @@ files:
429
428
  - lib/paperclip/attachment_registry.rb
430
429
  - lib/paperclip/callbacks.rb
431
430
  - lib/paperclip/content_type_detector.rb
432
- - lib/paperclip/deprecations.rb
433
431
  - lib/paperclip/errors.rb
434
432
  - lib/paperclip/file_command_content_type_detector.rb
435
433
  - lib/paperclip/filename_cleaner.rb
@@ -453,14 +451,7 @@ files:
453
451
  - lib/paperclip/io_adapters/stringio_adapter.rb
454
452
  - lib/paperclip/io_adapters/uploaded_file_adapter.rb
455
453
  - lib/paperclip/io_adapters/uri_adapter.rb
456
- - lib/paperclip/locales/de.yml
457
454
  - lib/paperclip/locales/en.yml
458
- - lib/paperclip/locales/es.yml
459
- - lib/paperclip/locales/ja.yml
460
- - lib/paperclip/locales/pt-BR.yml
461
- - lib/paperclip/locales/zh-CN.yml
462
- - lib/paperclip/locales/zh-HK.yml
463
- - lib/paperclip/locales/zh-TW.yml
464
455
  - lib/paperclip/logger.rb
465
456
  - lib/paperclip/matchers.rb
466
457
  - lib/paperclip/matchers/have_attached_file_matcher.rb
@@ -500,7 +491,6 @@ files:
500
491
  - spec/paperclip/attachment_registry_spec.rb
501
492
  - spec/paperclip/attachment_spec.rb
502
493
  - spec/paperclip/content_type_detector_spec.rb
503
- - spec/paperclip/deprecations_spec.rb
504
494
  - spec/paperclip/file_command_content_type_detector_spec.rb
505
495
  - spec/paperclip/filename_cleaner_spec.rb
506
496
  - spec/paperclip/geometry_detector_spec.rb
@@ -542,6 +532,7 @@ files:
542
532
  - spec/paperclip/storage/s3_spec.rb
543
533
  - spec/paperclip/style_spec.rb
544
534
  - spec/paperclip/tempfile_factory_spec.rb
535
+ - spec/paperclip/tempfile_spec.rb
545
536
  - spec/paperclip/thumbnail_spec.rb
546
537
  - spec/paperclip/url_generator_spec.rb
547
538
  - spec/paperclip/validators/attachment_content_type_validator_spec.rb
@@ -552,7 +543,7 @@ files:
552
543
  - spec/paperclip/validators_spec.rb
553
544
  - spec/spec_helper.rb
554
545
  - spec/support/assertions.rb
555
- - spec/support/deprecations.rb
546
+ - spec/support/conditional_filter_helper.rb
556
547
  - spec/support/fake_model.rb
557
548
  - spec/support/fake_rails.rb
558
549
  - spec/support/fixtures/12k.png
@@ -579,14 +570,31 @@ files:
579
570
  - spec/support/mock_interpolator.rb
580
571
  - spec/support/mock_url_generator_builder.rb
581
572
  - spec/support/model_reconstruction.rb
582
- - spec/support/rails_helpers.rb
573
+ - spec/support/reporting.rb
583
574
  - spec/support/test_data.rb
584
575
  - spec/support/version_helper.rb
585
576
  homepage: https://github.com/thoughtbot/paperclip
586
577
  licenses:
587
578
  - MIT
588
579
  metadata: {}
589
- post_install_message:
580
+ post_install_message: |
581
+ ##################################################
582
+ # NOTE FOR UPGRADING FROM 4.3.0 OR EARLIER #
583
+ ##################################################
584
+
585
+ Paperclip is now compatible with aws-sdk >= 2.0.0.
586
+
587
+ If you are using S3 storage, aws-sdk >= 2.0.0 requires you to make a few small
588
+ changes:
589
+
590
+ * You must set the `s3_region`
591
+ * If you are explicitly setting permissions anywhere, such as in an initializer,
592
+ note that the format of the permissions changed from using an underscore to
593
+ using a hyphen. For example, `:public_read` needs to be changed to
594
+ `public-read`.
595
+
596
+ For a walkthrough of upgrading from 4 to 5 and aws-sdk >= 2.0 you can watch
597
+ http://rubythursday.com/episodes/ruby-snack-27-upgrade-paperclip-and-aws-sdk-in-prep-for-rails-5
590
598
  rdoc_options: []
591
599
  require_paths:
592
600
  - lib
@@ -594,7 +602,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
594
602
  requirements:
595
603
  - - ">="
596
604
  - !ruby/object:Gem::Version
597
- version: 1.9.2
605
+ version: 2.1.0
598
606
  required_rubygems_version: !ruby/object:Gem::Requirement
599
607
  requirements:
600
608
  - - ">="
@@ -603,7 +611,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
603
611
  requirements:
604
612
  - ImageMagick
605
613
  rubyforge_project:
606
- rubygems_version: 2.6.2
614
+ rubygems_version: 2.6.11
607
615
  signing_key:
608
616
  specification_version: 4
609
617
  summary: File attachments as attributes for ActiveRecord
@@ -631,7 +639,6 @@ test_files:
631
639
  - spec/paperclip/attachment_registry_spec.rb
632
640
  - spec/paperclip/attachment_spec.rb
633
641
  - spec/paperclip/content_type_detector_spec.rb
634
- - spec/paperclip/deprecations_spec.rb
635
642
  - spec/paperclip/file_command_content_type_detector_spec.rb
636
643
  - spec/paperclip/filename_cleaner_spec.rb
637
644
  - spec/paperclip/geometry_detector_spec.rb
@@ -673,6 +680,7 @@ test_files:
673
680
  - spec/paperclip/storage/s3_spec.rb
674
681
  - spec/paperclip/style_spec.rb
675
682
  - spec/paperclip/tempfile_factory_spec.rb
683
+ - spec/paperclip/tempfile_spec.rb
676
684
  - spec/paperclip/thumbnail_spec.rb
677
685
  - spec/paperclip/url_generator_spec.rb
678
686
  - spec/paperclip/validators/attachment_content_type_validator_spec.rb
@@ -683,7 +691,7 @@ test_files:
683
691
  - spec/paperclip/validators_spec.rb
684
692
  - spec/spec_helper.rb
685
693
  - spec/support/assertions.rb
686
- - spec/support/deprecations.rb
694
+ - spec/support/conditional_filter_helper.rb
687
695
  - spec/support/fake_model.rb
688
696
  - spec/support/fake_rails.rb
689
697
  - spec/support/fixtures/12k.png
@@ -710,6 +718,6 @@ test_files:
710
718
  - spec/support/mock_interpolator.rb
711
719
  - spec/support/mock_url_generator_builder.rb
712
720
  - spec/support/model_reconstruction.rb
713
- - spec/support/rails_helpers.rb
721
+ - spec/support/reporting.rb
714
722
  - spec/support/test_data.rb
715
723
  - spec/support/version_helper.rb