paperclip 5.0.0.beta2 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +17 -0
  3. data/.hound.yml +5 -16
  4. data/.travis.yml +14 -15
  5. data/Appraisals +3 -23
  6. data/CONTRIBUTING.md +10 -4
  7. data/Gemfile +1 -0
  8. data/NEWS +78 -2
  9. data/README.md +175 -81
  10. data/Rakefile +1 -1
  11. data/UPGRADING +1 -1
  12. data/features/basic_integration.feature +2 -2
  13. data/features/step_definitions/attachment_steps.rb +6 -6
  14. data/features/step_definitions/rails_steps.rb +29 -22
  15. data/features/step_definitions/s3_steps.rb +1 -1
  16. data/features/support/env.rb +1 -0
  17. data/features/support/paths.rb +1 -1
  18. data/features/support/rails.rb +0 -24
  19. data/gemfiles/{4.2.awsv2.0.gemfile → 4.2.gemfile} +1 -1
  20. data/gemfiles/{5.0.awsv2.1.gemfile → 5.0.gemfile} +2 -2
  21. data/lib/generators/paperclip/paperclip_generator.rb +9 -1
  22. data/lib/generators/paperclip/templates/paperclip_migration.rb.erb +1 -1
  23. data/lib/paperclip.rb +13 -10
  24. data/lib/paperclip/attachment.rb +16 -6
  25. data/lib/paperclip/content_type_detector.rb +3 -2
  26. data/lib/paperclip/errors.rb +3 -1
  27. data/lib/paperclip/file_command_content_type_detector.rb +1 -1
  28. data/lib/paperclip/geometry_detector_factory.rb +2 -2
  29. data/lib/paperclip/helpers.rb +15 -12
  30. data/lib/paperclip/interpolations.rb +1 -1
  31. data/lib/paperclip/io_adapters/abstract_adapter.rb +29 -3
  32. data/lib/paperclip/io_adapters/attachment_adapter.rb +10 -5
  33. data/lib/paperclip/io_adapters/data_uri_adapter.rb +8 -8
  34. data/lib/paperclip/io_adapters/empty_string_adapter.rb +5 -4
  35. data/lib/paperclip/io_adapters/file_adapter.rb +12 -6
  36. data/lib/paperclip/io_adapters/http_url_proxy_adapter.rb +7 -7
  37. data/lib/paperclip/io_adapters/identity_adapter.rb +12 -6
  38. data/lib/paperclip/io_adapters/nil_adapter.rb +8 -5
  39. data/lib/paperclip/io_adapters/registry.rb +6 -2
  40. data/lib/paperclip/io_adapters/stringio_adapter.rb +9 -6
  41. data/lib/paperclip/io_adapters/uploaded_file_adapter.rb +10 -6
  42. data/lib/paperclip/io_adapters/uri_adapter.rb +41 -19
  43. data/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +4 -4
  44. data/lib/paperclip/media_type_spoof_detector.rb +3 -2
  45. data/lib/paperclip/processor.rb +5 -4
  46. data/lib/paperclip/storage/filesystem.rb +13 -2
  47. data/lib/paperclip/storage/fog.rb +12 -7
  48. data/lib/paperclip/storage/s3.rb +46 -19
  49. data/lib/paperclip/thumbnail.rb +18 -8
  50. data/lib/paperclip/url_generator.rb +17 -13
  51. data/lib/paperclip/validators.rb +1 -1
  52. data/lib/paperclip/version.rb +3 -1
  53. data/lib/tasks/paperclip.rake +18 -4
  54. data/paperclip.gemspec +4 -5
  55. data/spec/paperclip/attachment_processing_spec.rb +2 -4
  56. data/spec/paperclip/attachment_spec.rb +40 -9
  57. data/spec/paperclip/content_type_detector_spec.rb +1 -1
  58. data/spec/paperclip/file_command_content_type_detector_spec.rb +15 -1
  59. data/spec/paperclip/io_adapters/abstract_adapter_spec.rb +76 -22
  60. data/spec/paperclip/io_adapters/attachment_adapter_spec.rb +6 -3
  61. data/spec/paperclip/io_adapters/data_uri_adapter_spec.rb +7 -1
  62. data/spec/paperclip/io_adapters/file_adapter_spec.rb +2 -2
  63. data/spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb +26 -6
  64. data/spec/paperclip/io_adapters/identity_adapter_spec.rb +1 -1
  65. data/spec/paperclip/io_adapters/registry_spec.rb +2 -2
  66. data/spec/paperclip/io_adapters/stringio_adapter_spec.rb +1 -1
  67. data/spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb +5 -5
  68. data/spec/paperclip/io_adapters/uri_adapter_spec.rb +77 -7
  69. data/spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb +10 -0
  70. data/spec/paperclip/media_type_spoof_detector_spec.rb +27 -3
  71. data/spec/paperclip/paperclip_spec.rb +13 -13
  72. data/spec/paperclip/processor_spec.rb +4 -4
  73. data/spec/paperclip/storage/fog_spec.rb +28 -0
  74. data/spec/paperclip/storage/s3_live_spec.rb +12 -10
  75. data/spec/paperclip/storage/s3_spec.rb +150 -39
  76. data/spec/paperclip/tempfile_spec.rb +35 -0
  77. data/spec/paperclip/thumbnail_spec.rb +38 -35
  78. data/spec/paperclip/url_generator_spec.rb +54 -43
  79. data/spec/paperclip/validators_spec.rb +3 -2
  80. data/spec/spec_helper.rb +3 -1
  81. data/spec/support/assertions.rb +5 -1
  82. data/spec/support/conditional_filter_helper.rb +5 -0
  83. data/spec/support/mock_attachment.rb +2 -0
  84. data/spec/support/mock_url_generator_builder.rb +2 -2
  85. metadata +37 -36
  86. data/gemfiles/4.2.awsv2.1.gemfile +0 -17
  87. data/gemfiles/4.2.awsv2.gemfile +0 -20
  88. data/gemfiles/5.0.awsv2.0.gemfile +0 -17
  89. data/gemfiles/5.0.awsv2.gemfile +0 -25
@@ -4,11 +4,10 @@ require 'spec_helper'
4
4
  describe Paperclip::UrlGenerator do
5
5
  it "uses the given interpolator" do
6
6
  expected = "the expected result"
7
- mock_attachment = MockAttachment.new
8
7
  mock_interpolator = MockInterpolator.new(result: expected)
8
+ mock_attachment = MockAttachment.new(interpolator: mock_interpolator)
9
9
 
10
- url_generator = Paperclip::UrlGenerator.new(mock_attachment,
11
- { interpolator: mock_interpolator })
10
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
12
11
  result = url_generator.for(:style_name, {})
13
12
 
14
13
  assert_equal expected, result
@@ -17,12 +16,12 @@ describe Paperclip::UrlGenerator do
17
16
  end
18
17
 
19
18
  it "uses the default URL when no file is assigned" do
20
- mock_attachment = MockAttachment.new
21
19
  mock_interpolator = MockInterpolator.new
22
20
  default_url = "the default url"
23
- options = { interpolator: mock_interpolator, default_url: default_url}
21
+ options = { interpolator: mock_interpolator, default_url: default_url }
22
+ mock_attachment = MockAttachment.new(options)
24
23
 
25
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
24
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
26
25
  url_generator.for(:style_name, {})
27
26
 
28
27
  assert mock_interpolator.has_interpolated_pattern?(default_url),
@@ -30,12 +29,12 @@ describe Paperclip::UrlGenerator do
30
29
  end
31
30
 
32
31
  it "executes the default URL lambda when no file is assigned" do
33
- mock_attachment = MockAttachment.new
34
32
  mock_interpolator = MockInterpolator.new
35
33
  default_url = lambda {|attachment| "the #{attachment.class.name} default url" }
36
34
  options = { interpolator: mock_interpolator, default_url: default_url}
35
+ mock_attachment = MockAttachment.new(options)
37
36
 
38
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
37
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
39
38
  url_generator.for(:style_name, {})
40
39
 
41
40
  assert mock_interpolator.has_interpolated_pattern?("the MockAttachment default url"),
@@ -44,12 +43,16 @@ describe Paperclip::UrlGenerator do
44
43
 
45
44
  it "executes the method named by the symbol as the default URL when no file is assigned" do
46
45
  mock_model = FakeModel.new
47
- mock_attachment = MockAttachment.new(model: mock_model)
48
- mock_interpolator = MockInterpolator.new
49
46
  default_url = :to_s
50
- options = { interpolator: mock_interpolator, default_url: default_url}
51
-
52
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
47
+ mock_interpolator = MockInterpolator.new
48
+ options = {
49
+ interpolator: mock_interpolator,
50
+ default_url: default_url,
51
+ model: mock_model,
52
+ }
53
+ mock_attachment = MockAttachment.new(options)
54
+
55
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
53
56
  url_generator.for(:style_name, {})
54
57
 
55
58
  assert mock_interpolator.has_interpolated_pattern?(mock_model.to_s),
@@ -58,10 +61,10 @@ describe Paperclip::UrlGenerator do
58
61
 
59
62
  it "URL-escapes spaces if asked to" do
60
63
  expected = "the expected result"
61
- mock_attachment = MockAttachment.new
62
64
  mock_interpolator = MockInterpolator.new(result: expected)
63
65
  options = { interpolator: mock_interpolator }
64
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
66
+ mock_attachment = MockAttachment.new(options)
67
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
65
68
 
66
69
  result = url_generator.for(:style_name, {escape: true})
67
70
 
@@ -74,10 +77,10 @@ describe Paperclip::UrlGenerator do
74
77
  "the escaped result"
75
78
  end
76
79
  end.new
77
- mock_attachment = MockAttachment.new
78
80
  mock_interpolator = MockInterpolator.new(result: expected)
79
81
  options = { interpolator: mock_interpolator }
80
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
82
+ mock_attachment = MockAttachment.new(options)
83
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
81
84
 
82
85
  result = url_generator.for(:style_name, {escape: true})
83
86
 
@@ -86,10 +89,10 @@ describe Paperclip::UrlGenerator do
86
89
 
87
90
  it "leaves spaces unescaped as asked to" do
88
91
  expected = "the expected result"
89
- mock_attachment = MockAttachment.new
90
92
  mock_interpolator = MockInterpolator.new(result: expected)
91
93
  options = { interpolator: mock_interpolator }
92
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
94
+ mock_attachment = MockAttachment.new(options)
95
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
93
96
 
94
97
  result = url_generator.for(:style_name, {escape: false})
95
98
 
@@ -98,10 +101,10 @@ describe Paperclip::UrlGenerator do
98
101
 
99
102
  it "defaults to leaving spaces unescaped" do
100
103
  expected = "the expected result"
101
- mock_attachment = MockAttachment.new
102
104
  mock_interpolator = MockInterpolator.new(result: expected)
103
105
  options = { interpolator: mock_interpolator }
104
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
106
+ mock_attachment = MockAttachment.new(options)
107
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
105
108
 
106
109
  result = url_generator.for(:style_name, {})
107
110
 
@@ -111,9 +114,9 @@ describe Paperclip::UrlGenerator do
111
114
  it "produces URLs without the updated_at value when the object does not respond to updated_at" do
112
115
  expected = "the expected result"
113
116
  mock_interpolator = MockInterpolator.new(result: expected)
114
- mock_attachment = MockAttachment.new(responds_to_updated_at: false)
115
- options = { interpolator: mock_interpolator }
116
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
117
+ options = { interpolator: mock_interpolator, responds_to_updated_at: false }
118
+ mock_attachment = MockAttachment.new(options)
119
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
117
120
 
118
121
  result = url_generator.for(:style_name, {timestamp: true})
119
122
 
@@ -123,9 +126,13 @@ describe Paperclip::UrlGenerator do
123
126
  it "produces URLs without the updated_at value when the updated_at value is nil" do
124
127
  expected = "the expected result"
125
128
  mock_interpolator = MockInterpolator.new(result: expected)
126
- mock_attachment = MockAttachment.new(responds_to_updated_at: true, updated_at: nil)
127
- options = { interpolator: mock_interpolator }
128
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
129
+ options = {
130
+ responds_to_updated_at: true,
131
+ updated_at: nil,
132
+ interpolator: mock_interpolator,
133
+ }
134
+ mock_attachment = MockAttachment.new(options)
135
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
129
136
 
130
137
  result = url_generator.for(:style_name, {timestamp: true})
131
138
 
@@ -136,9 +143,9 @@ describe Paperclip::UrlGenerator do
136
143
  expected = "the expected result"
137
144
  updated_at = 1231231234
138
145
  mock_interpolator = MockInterpolator.new(result: expected)
139
- mock_attachment = MockAttachment.new(updated_at: updated_at)
140
- options = { interpolator: mock_interpolator }
141
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
146
+ options = { interpolator: mock_interpolator, updated_at: updated_at }
147
+ mock_attachment = MockAttachment.new(options)
148
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
142
149
 
143
150
  result = url_generator.for(:style_name, {timestamp: true})
144
151
 
@@ -149,9 +156,9 @@ describe Paperclip::UrlGenerator do
149
156
  expected = "the?expected=result"
150
157
  updated_at = 1231231234
151
158
  mock_interpolator = MockInterpolator.new(result: expected)
152
- mock_attachment = MockAttachment.new(updated_at: updated_at)
153
- options = { interpolator: mock_interpolator }
154
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
159
+ options = { interpolator: mock_interpolator, updated_at: updated_at }
160
+ mock_attachment = MockAttachment.new(options)
161
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
155
162
 
156
163
  result = url_generator.for(:style_name, {timestamp: true})
157
164
 
@@ -162,9 +169,9 @@ describe Paperclip::UrlGenerator do
162
169
  expected = "the expected result"
163
170
  updated_at = 1231231234
164
171
  mock_interpolator = MockInterpolator.new(result: expected)
165
- mock_attachment = MockAttachment.new(updated_at: updated_at)
166
- options = { interpolator: mock_interpolator }
167
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
172
+ options = { interpolator: mock_interpolator, updated_at: updated_at }
173
+ mock_attachment = MockAttachment.new(options)
174
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
168
175
 
169
176
  result = url_generator.for(:style_name, {timestamp: false})
170
177
 
@@ -173,11 +180,15 @@ describe Paperclip::UrlGenerator do
173
180
 
174
181
  it "produces the correct URL when the instance has a file name" do
175
182
  expected = "the expected result"
176
- mock_attachment = MockAttachment.new(original_filename: 'exists')
177
183
  mock_interpolator = MockInterpolator.new
178
- options = { interpolator: mock_interpolator, url: expected}
179
-
180
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
184
+ options = {
185
+ interpolator: mock_interpolator,
186
+ url: expected,
187
+ original_filename: "exists",
188
+ }
189
+ mock_attachment = MockAttachment.new(options)
190
+
191
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
181
192
  url_generator.for(:style_name, {})
182
193
 
183
194
  assert mock_interpolator.has_interpolated_pattern?(expected),
@@ -186,10 +197,10 @@ describe Paperclip::UrlGenerator do
186
197
 
187
198
  describe "should be able to escape (, ), [, and ]." do
188
199
  def generate(expected, updated_at=nil)
189
- mock_attachment = MockAttachment.new(updated_at: updated_at)
190
200
  mock_interpolator = MockInterpolator.new(result: expected)
191
- options = { interpolator: mock_interpolator }
192
- url_generator = Paperclip::UrlGenerator.new(mock_attachment, options)
201
+ options = { interpolator: mock_interpolator, updated_at: updated_at }
202
+ mock_attachment = MockAttachment.new(options)
203
+ url_generator = Paperclip::UrlGenerator.new(mock_attachment)
193
204
  def url_generator.respond_to(params)
194
205
  false if params == :escape
195
206
  end
@@ -3,6 +3,7 @@ require 'spec_helper'
3
3
  describe Paperclip::Validators do
4
4
  context "using the helper" do
5
5
  before do
6
+ rebuild_class
6
7
  Dummy.validates_attachment :avatar, presence: true, content_type: { content_type: "image/jpeg" }, size: { in: 0..10240 }
7
8
  end
8
9
 
@@ -30,8 +31,8 @@ describe Paperclip::Validators do
30
31
  before do
31
32
  rebuild_class
32
33
  Dummy.validates_attachment :avatar, file_type_ignorance: true, file_name: [
33
- { matches: /\A.*\.jpe?g\Z/i, message: :invalid_extension },
34
- { matches: /\A.{,8}\..+\Z/i, message: [:too_long, count: 8] },
34
+ { matches: /\A.*\.jpe?g\z/i, message: :invalid_extension },
35
+ { matches: /\A.{,8}\..+\z/i, message: [:too_long, count: 8] },
35
36
  ]
36
37
  end
37
38
 
data/spec/spec_helper.rb CHANGED
@@ -22,7 +22,8 @@ FIXTURES_DIR = File.join(File.dirname(__FILE__), "fixtures")
22
22
  config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
23
23
  ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
24
24
  ActiveRecord::Base.establish_connection(config['test'])
25
- unless ActiveRecord::VERSION::STRING < "4.2"
25
+ if ActiveRecord::VERSION::STRING >= "4.2" &&
26
+ ActiveRecord::VERSION::STRING < "5.0"
26
27
  ActiveRecord::Base.raise_in_transactional_callbacks = true
27
28
  end
28
29
  Paperclip.options[:logger] = ActiveRecord::Base.logger
@@ -38,6 +39,7 @@ RSpec.configure do |config|
38
39
  config.include TestData
39
40
  config.include Reporting
40
41
  config.extend VersionHelper
42
+ config.extend ConditionalFilterHelper
41
43
  config.mock_framework = :mocha
42
44
  config.before(:all) do
43
45
  rebuild_model
@@ -48,13 +48,16 @@ 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}"
@@ -62,6 +65,7 @@ module Assertions
62
65
  end
63
66
 
64
67
  def assert_forbidden_response(url)
68
+ url = "http:#{url}" unless url =~ /http/
65
69
  Net::HTTP.get_response(URI.parse(url)) do |response|
66
70
  assert_equal "403", response.code,
67
71
  "Expected HTTP response code 403, got #{response.code}"
@@ -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
 
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: 5.0.0.beta2
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-04-20 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
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
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
@@ -156,7 +156,7 @@ dependencies:
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 2.0.34
159
+ version: 2.3.0
160
160
  - - "<"
161
161
  - !ruby/object:Gem::Version
162
162
  version: '3.0'
@@ -166,7 +166,7 @@ dependencies:
166
166
  requirements:
167
167
  - - ">="
168
168
  - !ruby/object:Gem::Version
169
- version: 2.0.34
169
+ version: 2.3.0
170
170
  - - "<"
171
171
  - !ruby/object:Gem::Version
172
172
  version: '3.0'
@@ -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
+ - - '='
206
+ - !ruby/object:Gem::Version
207
+ version: 4.0.3
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - '='
199
213
  - !ruby/object:Gem::Version
200
- version: 1.3.18
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: 4.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: 4.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"
@@ -417,12 +418,8 @@ files:
417
418
  - features/support/paths.rb
418
419
  - features/support/rails.rb
419
420
  - features/support/selectors.rb
420
- - gemfiles/4.2.awsv2.0.gemfile
421
- - gemfiles/4.2.awsv2.1.gemfile
422
- - gemfiles/4.2.awsv2.gemfile
423
- - gemfiles/5.0.awsv2.0.gemfile
424
- - gemfiles/5.0.awsv2.1.gemfile
425
- - gemfiles/5.0.awsv2.gemfile
421
+ - gemfiles/4.2.gemfile
422
+ - gemfiles/5.0.gemfile
426
423
  - lib/generators/paperclip/USAGE
427
424
  - lib/generators/paperclip/paperclip_generator.rb
428
425
  - lib/generators/paperclip/templates/paperclip_migration.rb.erb
@@ -535,6 +532,7 @@ files:
535
532
  - spec/paperclip/storage/s3_spec.rb
536
533
  - spec/paperclip/style_spec.rb
537
534
  - spec/paperclip/tempfile_factory_spec.rb
535
+ - spec/paperclip/tempfile_spec.rb
538
536
  - spec/paperclip/thumbnail_spec.rb
539
537
  - spec/paperclip/url_generator_spec.rb
540
538
  - spec/paperclip/validators/attachment_content_type_validator_spec.rb
@@ -545,6 +543,7 @@ files:
545
543
  - spec/paperclip/validators_spec.rb
546
544
  - spec/spec_helper.rb
547
545
  - spec/support/assertions.rb
546
+ - spec/support/conditional_filter_helper.rb
548
547
  - spec/support/fake_model.rb
549
548
  - spec/support/fake_rails.rb
550
549
  - spec/support/fixtures/12k.png
@@ -580,7 +579,7 @@ licenses:
580
579
  metadata: {}
581
580
  post_install_message: |
582
581
  ##################################################
583
- # NOTE FOR UPGRADING FROM 4.3.0 OR EARLIER #
582
+ # NOTE FOR UPGRADING FROM 4.3.0 OR EARLIER #
584
583
  ##################################################
585
584
 
586
585
  Paperclip is now compatible with aws-sdk >= 2.0.0.
@@ -606,13 +605,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
606
605
  version: 2.1.0
607
606
  required_rubygems_version: !ruby/object:Gem::Requirement
608
607
  requirements:
609
- - - ">"
608
+ - - ">="
610
609
  - !ruby/object:Gem::Version
611
- version: 1.3.1
610
+ version: '0'
612
611
  requirements:
613
612
  - ImageMagick
614
613
  rubyforge_project:
615
- rubygems_version: 2.6.2
614
+ rubygems_version: 2.6.11
616
615
  signing_key:
617
616
  specification_version: 4
618
617
  summary: File attachments as attributes for ActiveRecord
@@ -681,6 +680,7 @@ test_files:
681
680
  - spec/paperclip/storage/s3_spec.rb
682
681
  - spec/paperclip/style_spec.rb
683
682
  - spec/paperclip/tempfile_factory_spec.rb
683
+ - spec/paperclip/tempfile_spec.rb
684
684
  - spec/paperclip/thumbnail_spec.rb
685
685
  - spec/paperclip/url_generator_spec.rb
686
686
  - spec/paperclip/validators/attachment_content_type_validator_spec.rb
@@ -691,6 +691,7 @@ test_files:
691
691
  - spec/paperclip/validators_spec.rb
692
692
  - spec/spec_helper.rb
693
693
  - spec/support/assertions.rb
694
+ - spec/support/conditional_filter_helper.rb
694
695
  - spec/support/fake_model.rb
695
696
  - spec/support/fake_rails.rb
696
697
  - spec/support/fixtures/12k.png