paperclip 3.5.1 → 3.5.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of paperclip might be problematic. Click here for more details.

data/Gemfile CHANGED
@@ -2,6 +2,12 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem "jruby-openssl", :platform => :jruby
6
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
7
- gem "sqlite3", :platform => :ruby
5
+ platform :jruby do
6
+ gem 'jruby-openssl'
7
+ gem 'activerecord-jdbcsqlite3-adapter'
8
+ end
9
+
10
+ platform :ruby do
11
+ gem 'pry'
12
+ gem 'pry-debugger'
13
+ end
data/NEWS CHANGED
@@ -1,3 +1,10 @@
1
+ New in 3.5.2:
2
+
3
+ * Security: Force cocaine to at least 0.5.3 to include a security fix
4
+ * Improvement: Fixed some README exmaples
5
+ * Feature: Added HTTP URL Proxy Adapter, can assign string URLs as attachments
6
+ * Improvement: Put validation errors on the base attribute and the sub-attribute
7
+
1
8
  New in 3.5.1:
2
9
 
3
10
  * Bug Fix: Returned the class-level `attachment_definitions` method for compatability.
data/README.md CHANGED
@@ -233,7 +233,7 @@ afterwards, then assign manually:
233
233
  ```ruby
234
234
  class Book < ActiveRecord::Base
235
235
  has_attached_file :document, styles: {thumbnail: "60x60#"}
236
- validates_attachment :document, content_type: "application/pdf"
236
+ validates_attachment :document, content_type: { content_type: "application/pdf" }
237
237
  validates_something_else # Other validations that conflict with Paperclip's
238
238
  end
239
239
 
@@ -191,3 +191,4 @@ require 'paperclip/io_adapters/nil_adapter'
191
191
  require 'paperclip/io_adapters/attachment_adapter'
192
192
  require 'paperclip/io_adapters/uploaded_file_adapter'
193
193
  require 'paperclip/io_adapters/uri_adapter'
194
+ require 'paperclip/io_adapters/http_url_proxy_adapter'
@@ -476,10 +476,10 @@ module Paperclip
476
476
 
477
477
  # called by storage after the writes are flushed and before @queued_for_writes is cleared
478
478
  def after_flush_writes
479
- @queued_for_write.each do |style, file|
480
- file.close unless file.closed?
481
- file.unlink if file.respond_to?(:unlink) && file.path.present? && File.exist?(file.path)
482
- end
479
+ @queued_for_write.each do |style, file|
480
+ file.close unless file.closed?
481
+ file.unlink if file.respond_to?(:unlink) && file.path.present? && File.exist?(file.path)
482
+ end
483
483
  end
484
484
 
485
485
  # You can either specifiy :restricted_characters or you can define your own
@@ -1,7 +1,7 @@
1
1
  module Paperclip
2
2
  class DataUriAdapter < StringioAdapter
3
3
 
4
- REGEXP = /^data:([-\w]+\/[-\w\+]+);base64,(.*)/
4
+ REGEXP = /^data:([-\w]+\/[-\w\+]+);base64,(.*)/m
5
5
 
6
6
  def initialize(target_uri)
7
7
  @target_uri = target_uri
@@ -0,0 +1,15 @@
1
+ module Paperclip
2
+ class HttpUrlProxyAdapter < UriAdapter
3
+
4
+ REGEXP = /^https?:\/\//
5
+
6
+ def initialize(target)
7
+ super(URI(target))
8
+ end
9
+
10
+ end
11
+ end
12
+
13
+ Paperclip.io_adapters.register Paperclip::HttpUrlProxyAdapter do |target|
14
+ String === target && target =~ Paperclip::HttpUrlProxyAdapter::REGEXP
15
+ end
@@ -17,7 +17,9 @@ module Paperclip
17
17
  validate_blacklist(record, attribute, value)
18
18
 
19
19
  if record.errors.include? attribute
20
- record.errors.add base_attribute, record.errors[attribute]
20
+ record.errors[attribute].each do |error|
21
+ record.errors.add base_attribute, error
22
+ end
21
23
  end
22
24
  end
23
25
 
@@ -1,3 +1,3 @@
1
1
  module Paperclip
2
- VERSION = "3.5.1" unless defined? Paperclip::VERSION
2
+ VERSION = "3.5.2" unless defined? Paperclip::VERSION
3
3
  end
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
 
29
29
  s.add_dependency('activemodel', '>= 3.0.0')
30
30
  s.add_dependency('activesupport', '>= 3.0.0')
31
- s.add_dependency('cocaine', '~> 0.5.0')
31
+ s.add_dependency('cocaine', '~> 0.5.3')
32
32
  s.add_dependency('mime-types')
33
33
 
34
34
  s.add_development_dependency('activerecord', '>= 3.0.0')
@@ -44,9 +44,7 @@ Gem::Specification.new do |s|
44
44
  # Ruby version < 1.9.3 can't install capybara > 2.0.3.
45
45
  s.add_development_dependency('capybara', '= 2.0.3')
46
46
  s.add_development_dependency('bundler')
47
- s.add_development_dependency('fog', '>= 1.4.0', "< 1.7.0")
48
- s.add_development_dependency('pry')
49
- s.add_development_dependency('pry-debugger')
47
+ s.add_development_dependency('fog', '~> 1.0')
50
48
  s.add_development_dependency('launchy')
51
49
  s.add_development_dependency('rake')
52
50
  s.add_development_dependency('fakeweb')
@@ -13,7 +13,12 @@ require 'shoulda/context'
13
13
  require 'mime/types'
14
14
  require 'pathname'
15
15
  require 'ostruct'
16
- require 'pry'
16
+
17
+ begin
18
+ require 'pry'
19
+ rescue LoadError
20
+ # Pry is not available, just ignore.
21
+ end
17
22
 
18
23
  puts "Testing against version #{ActiveRecord::VERSION::STRING}"
19
24
 
@@ -3,7 +3,7 @@ require './test/helper'
3
3
  class DataUriAdapterTest < Test::Unit::TestCase
4
4
  context "a new instance" do
5
5
  setup do
6
- @contents = "data:image/png;base64,dGVzdA=="
6
+ @contents = "data:image/png;base64,#{original_base64_content}"
7
7
  @subject = Paperclip.io_adapters.for(@contents)
8
8
  end
9
9
 
@@ -16,11 +16,14 @@ class DataUriAdapterTest < Test::Unit::TestCase
16
16
  end
17
17
 
18
18
  should "return the size of the data" do
19
- assert_equal 4, @subject.size
19
+ assert_equal 4456, @subject.size
20
20
  end
21
21
 
22
- should "generate an MD5 hash of the contents" do
23
- assert_equal Digest::MD5.hexdigest(Base64.decode64('dGVzdA==')), @subject.fingerprint
22
+ should "generate a correct MD5 hash of the contents" do
23
+ assert_equal(
24
+ Digest::MD5.hexdigest(Base64.decode64(original_base64_content)),
25
+ @subject.fingerprint
26
+ )
24
27
  end
25
28
 
26
29
  should "generate correct fingerprint after read" do
@@ -32,10 +35,6 @@ class DataUriAdapterTest < Test::Unit::TestCase
32
35
  assert_equal @subject.fingerprint, @subject.fingerprint
33
36
  end
34
37
 
35
- should "return the data contained in the StringIO" do
36
- assert_equal "test", @subject.read
37
- end
38
-
39
38
  should 'accept a content_type' do
40
39
  @subject.content_type = 'image/png'
41
40
  assert_equal 'image/png', @subject.content_type
@@ -57,4 +56,12 @@ class DataUriAdapterTest < Test::Unit::TestCase
57
56
  end
58
57
 
59
58
  end
59
+
60
+ def original_base64_content
61
+ Base64.encode64(original_file_contents)
62
+ end
63
+
64
+ def original_file_contents
65
+ @original_file_contents ||= File.read(fixture_file('5k.png'))
66
+ end
60
67
  end
@@ -0,0 +1,102 @@
1
+ require './test/helper'
2
+
3
+ class HttpUrlProxyAdapterTest < Test::Unit::TestCase
4
+ context "a new instance" do
5
+ setup do
6
+ @open_return = StringIO.new("xxx")
7
+ @open_return.stubs(:content_type).returns("image/png")
8
+ Paperclip::HttpUrlProxyAdapter.any_instance.stubs(:download_content).returns(@open_return)
9
+ @url = "http://thoughtbot.com/images/thoughtbot-logo.png"
10
+ @subject = Paperclip.io_adapters.for(@url)
11
+ end
12
+
13
+ teardown do
14
+ @subject.close
15
+ end
16
+
17
+ should "return a file name" do
18
+ assert_equal "thoughtbot-logo.png", @subject.original_filename
19
+ end
20
+
21
+ should 'close open handle after reading' do
22
+ assert_equal true, @open_return.closed?
23
+ end
24
+
25
+ should "return a content type" do
26
+ assert_equal "image/png", @subject.content_type
27
+ end
28
+
29
+ should "return the size of the data" do
30
+ assert_equal @open_return.size, @subject.size
31
+ end
32
+
33
+ should "generate an MD5 hash of the contents" do
34
+ assert_equal Digest::MD5.hexdigest("xxx"), @subject.fingerprint
35
+ end
36
+
37
+ should "generate correct fingerprint after read" do
38
+ fingerprint = Digest::MD5.hexdigest(@subject.read)
39
+ assert_equal fingerprint, @subject.fingerprint
40
+ end
41
+
42
+ should "generate same fingerprint" do
43
+ assert_equal @subject.fingerprint, @subject.fingerprint
44
+ end
45
+
46
+ should "return the data contained in the StringIO" do
47
+ assert_equal "xxx", @subject.read
48
+ end
49
+
50
+ should 'accept a content_type' do
51
+ @subject.content_type = 'image/png'
52
+ assert_equal 'image/png', @subject.content_type
53
+ end
54
+
55
+ should 'accept an original_filename' do
56
+ @subject.original_filename = 'image.png'
57
+ assert_equal 'image.png', @subject.original_filename
58
+ end
59
+ end
60
+
61
+ context "a url with query params" do
62
+ setup do
63
+ Paperclip::HttpUrlProxyAdapter.any_instance.stubs(:download_content).returns(StringIO.new("x"))
64
+ @url = "https://github.com/thoughtbot/paperclip?file=test"
65
+ @subject = Paperclip.io_adapters.for(@url)
66
+ end
67
+
68
+ teardown do
69
+ @subject.close
70
+ end
71
+
72
+ should "return a file name" do
73
+ assert_equal "paperclip", @subject.original_filename
74
+ end
75
+ end
76
+
77
+ context "a url with restricted characters in the filename" do
78
+ setup do
79
+ Paperclip::HttpUrlProxyAdapter.any_instance.stubs(:download_content).returns(StringIO.new("x"))
80
+ @url = "https://github.com/thoughtbot/paper:clip.jpg"
81
+ @subject = Paperclip.io_adapters.for(@url)
82
+ end
83
+
84
+ teardown do
85
+ begin
86
+ @subject.close
87
+ rescue Exception => e
88
+ binding.pry
89
+ true
90
+ end
91
+ end
92
+
93
+ should "not generate filenames that include restricted characters" do
94
+ assert_equal "paper_clip.jpg", @subject.original_filename
95
+ end
96
+
97
+ should "not generate paths that include restricted characters" do
98
+ assert_no_match /:/, @subject.path
99
+ end
100
+ end
101
+
102
+ end
@@ -61,6 +61,11 @@ class AttachmentContentTypeValidatorTest < Test::Unit::TestCase
61
61
  assert @dummy.errors[:avatar].present?,
62
62
  "Error not added to base attribute"
63
63
  end
64
+
65
+ should "add error to base object as a string" do
66
+ assert_kind_of String, @dummy.errors[:avatar].first,
67
+ "Error added to base attribute as something other than a String"
68
+ end
64
69
  end
65
70
 
66
71
  context "with a successful validation" do
@@ -45,6 +45,11 @@ class AttachmentSizeValidatorTest < Test::Unit::TestCase
45
45
  "Error not added to base attribute"
46
46
  end
47
47
 
48
+ should "add error to base object as a string" do
49
+ assert_kind_of String, @dummy.errors[:avatar].first,
50
+ "Error added to base attribute as something other than a String"
51
+ end
52
+
48
53
  if options[:message]
49
54
  should "return a correct error message" do
50
55
  assert_includes @dummy.errors[:avatar_file_size], options[:message]
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.1
4
+ version: 3.5.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jon Yurek
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-07-31 00:00:00.000000000 Z
12
+ date: 2013-10-22 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activemodel
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: activesupport
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,20 +46,23 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: cocaine
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
47
- version: 0.5.0
53
+ version: 0.5.3
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
54
- version: 0.5.0
61
+ version: 0.5.3
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: mime-types
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: activerecord
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: shoulda
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: appraisal
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: mocha
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ! '>='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ! '>='
123
140
  - !ruby/object:Gem::Version
@@ -125,6 +142,7 @@ dependencies:
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: aws-sdk
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ! '>='
130
148
  - !ruby/object:Gem::Version
@@ -132,6 +150,7 @@ dependencies:
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
155
  - - ! '>='
137
156
  - !ruby/object:Gem::Version
@@ -139,6 +158,7 @@ dependencies:
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: bourne
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
163
  - - ! '>='
144
164
  - !ruby/object:Gem::Version
@@ -146,6 +166,7 @@ dependencies:
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
171
  - - ! '>='
151
172
  - !ruby/object:Gem::Version
@@ -153,6 +174,7 @@ dependencies:
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: sqlite3
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
179
  - - ~>
158
180
  - !ruby/object:Gem::Version
@@ -160,6 +182,7 @@ dependencies:
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
187
  - - ~>
165
188
  - !ruby/object:Gem::Version
@@ -167,6 +190,7 @@ dependencies:
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: cucumber
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
195
  - - ~>
172
196
  - !ruby/object:Gem::Version
@@ -174,6 +198,7 @@ dependencies:
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
203
  - - ~>
179
204
  - !ruby/object:Gem::Version
@@ -181,6 +206,7 @@ dependencies:
181
206
  - !ruby/object:Gem::Dependency
182
207
  name: aruba
183
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
184
210
  requirements:
185
211
  - - ! '>='
186
212
  - !ruby/object:Gem::Version
@@ -188,6 +214,7 @@ dependencies:
188
214
  type: :development
189
215
  prerelease: false
190
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
191
218
  requirements:
192
219
  - - ! '>='
193
220
  - !ruby/object:Gem::Version
@@ -195,6 +222,7 @@ dependencies:
195
222
  - !ruby/object:Gem::Dependency
196
223
  name: nokogiri
197
224
  requirement: !ruby/object:Gem::Requirement
225
+ none: false
198
226
  requirements:
199
227
  - - ! '>='
200
228
  - !ruby/object:Gem::Version
@@ -202,6 +230,7 @@ dependencies:
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
205
234
  requirements:
206
235
  - - ! '>='
207
236
  - !ruby/object:Gem::Version
@@ -209,6 +238,7 @@ dependencies:
209
238
  - !ruby/object:Gem::Dependency
210
239
  name: capybara
211
240
  requirement: !ruby/object:Gem::Requirement
241
+ none: false
212
242
  requirements:
213
243
  - - '='
214
244
  - !ruby/object:Gem::Version
@@ -216,6 +246,7 @@ dependencies:
216
246
  type: :development
217
247
  prerelease: false
218
248
  version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
219
250
  requirements:
220
251
  - - '='
221
252
  - !ruby/object:Gem::Version
@@ -223,6 +254,7 @@ dependencies:
223
254
  - !ruby/object:Gem::Dependency
224
255
  name: bundler
225
256
  requirement: !ruby/object:Gem::Requirement
257
+ none: false
226
258
  requirements:
227
259
  - - ! '>='
228
260
  - !ruby/object:Gem::Version
@@ -230,6 +262,7 @@ dependencies:
230
262
  type: :development
231
263
  prerelease: false
232
264
  version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
233
266
  requirements:
234
267
  - - ! '>='
235
268
  - !ruby/object:Gem::Version
@@ -237,54 +270,23 @@ dependencies:
237
270
  - !ruby/object:Gem::Dependency
238
271
  name: fog
239
272
  requirement: !ruby/object:Gem::Requirement
273
+ none: false
240
274
  requirements:
241
- - - ! '>='
242
- - !ruby/object:Gem::Version
243
- version: 1.4.0
244
- - - <
245
- - !ruby/object:Gem::Version
246
- version: 1.7.0
247
- type: :development
248
- prerelease: false
249
- version_requirements: !ruby/object:Gem::Requirement
250
- requirements:
251
- - - ! '>='
252
- - !ruby/object:Gem::Version
253
- version: 1.4.0
254
- - - <
255
- - !ruby/object:Gem::Version
256
- version: 1.7.0
257
- - !ruby/object:Gem::Dependency
258
- name: pry
259
- requirement: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - ! '>='
262
- - !ruby/object:Gem::Version
263
- version: '0'
264
- type: :development
265
- prerelease: false
266
- version_requirements: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - ! '>='
269
- - !ruby/object:Gem::Version
270
- version: '0'
271
- - !ruby/object:Gem::Dependency
272
- name: pry-debugger
273
- requirement: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - ! '>='
275
+ - - ~>
276
276
  - !ruby/object:Gem::Version
277
- version: '0'
277
+ version: '1.0'
278
278
  type: :development
279
279
  prerelease: false
280
280
  version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
281
282
  requirements:
282
- - - ! '>='
283
+ - - ~>
283
284
  - !ruby/object:Gem::Version
284
- version: '0'
285
+ version: '1.0'
285
286
  - !ruby/object:Gem::Dependency
286
287
  name: launchy
287
288
  requirement: !ruby/object:Gem::Requirement
289
+ none: false
288
290
  requirements:
289
291
  - - ! '>='
290
292
  - !ruby/object:Gem::Version
@@ -292,6 +294,7 @@ dependencies:
292
294
  type: :development
293
295
  prerelease: false
294
296
  version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
295
298
  requirements:
296
299
  - - ! '>='
297
300
  - !ruby/object:Gem::Version
@@ -299,6 +302,7 @@ dependencies:
299
302
  - !ruby/object:Gem::Dependency
300
303
  name: rake
301
304
  requirement: !ruby/object:Gem::Requirement
305
+ none: false
302
306
  requirements:
303
307
  - - ! '>='
304
308
  - !ruby/object:Gem::Version
@@ -306,6 +310,7 @@ dependencies:
306
310
  type: :development
307
311
  prerelease: false
308
312
  version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
309
314
  requirements:
310
315
  - - ! '>='
311
316
  - !ruby/object:Gem::Version
@@ -313,6 +318,7 @@ dependencies:
313
318
  - !ruby/object:Gem::Dependency
314
319
  name: fakeweb
315
320
  requirement: !ruby/object:Gem::Requirement
321
+ none: false
316
322
  requirements:
317
323
  - - ! '>='
318
324
  - !ruby/object:Gem::Version
@@ -320,6 +326,7 @@ dependencies:
320
326
  type: :development
321
327
  prerelease: false
322
328
  version_requirements: !ruby/object:Gem::Requirement
329
+ none: false
323
330
  requirements:
324
331
  - - ! '>='
325
332
  - !ruby/object:Gem::Version
@@ -327,6 +334,7 @@ dependencies:
327
334
  - !ruby/object:Gem::Dependency
328
335
  name: railties
329
336
  requirement: !ruby/object:Gem::Requirement
337
+ none: false
330
338
  requirements:
331
339
  - - ! '>='
332
340
  - !ruby/object:Gem::Version
@@ -334,6 +342,7 @@ dependencies:
334
342
  type: :development
335
343
  prerelease: false
336
344
  version_requirements: !ruby/object:Gem::Requirement
345
+ none: false
337
346
  requirements:
338
347
  - - ! '>='
339
348
  - !ruby/object:Gem::Version
@@ -341,6 +350,7 @@ dependencies:
341
350
  - !ruby/object:Gem::Dependency
342
351
  name: actionmailer
343
352
  requirement: !ruby/object:Gem::Requirement
353
+ none: false
344
354
  requirements:
345
355
  - - ! '>='
346
356
  - !ruby/object:Gem::Version
@@ -348,6 +358,7 @@ dependencies:
348
358
  type: :development
349
359
  prerelease: false
350
360
  version_requirements: !ruby/object:Gem::Requirement
361
+ none: false
351
362
  requirements:
352
363
  - - ! '>='
353
364
  - !ruby/object:Gem::Version
@@ -416,6 +427,7 @@ files:
416
427
  - lib/paperclip/io_adapters/data_uri_adapter.rb
417
428
  - lib/paperclip/io_adapters/empty_string_adapter.rb
418
429
  - lib/paperclip/io_adapters/file_adapter.rb
430
+ - lib/paperclip/io_adapters/http_url_proxy_adapter.rb
419
431
  - lib/paperclip/io_adapters/identity_adapter.rb
420
432
  - lib/paperclip/io_adapters/nil_adapter.rb
421
433
  - lib/paperclip/io_adapters/registry.rb
@@ -485,6 +497,7 @@ files:
485
497
  - test/io_adapters/data_uri_adapter_test.rb
486
498
  - test/io_adapters/empty_string_adapter_test.rb
487
499
  - test/io_adapters/file_adapter_test.rb
500
+ - test/io_adapters/http_url_proxy_adapter_test.rb
488
501
  - test/io_adapters/identity_adapter_test.rb
489
502
  - test/io_adapters/nil_adapter_test.rb
490
503
  - test/io_adapters/registry_test.rb
@@ -521,7 +534,6 @@ files:
521
534
  homepage: https://github.com/thoughtbot/paperclip
522
535
  licenses:
523
536
  - MIT
524
- metadata: {}
525
537
  post_install_message: ! "##################################################\n# NOTE
526
538
  FOR UPGRADING FROM PRE-3.0 VERSION #\n##################################################\n\nPaperclip
527
539
  3.0 introduces a non-backward compatible change in your attachment\npath. This will
@@ -534,11 +546,13 @@ rdoc_options: []
534
546
  require_paths:
535
547
  - lib
536
548
  required_ruby_version: !ruby/object:Gem::Requirement
549
+ none: false
537
550
  requirements:
538
551
  - - ! '>='
539
552
  - !ruby/object:Gem::Version
540
553
  version: 1.9.2
541
554
  required_rubygems_version: !ruby/object:Gem::Requirement
555
+ none: false
542
556
  requirements:
543
557
  - - ! '>='
544
558
  - !ruby/object:Gem::Version
@@ -546,9 +560,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
546
560
  requirements:
547
561
  - ImageMagick
548
562
  rubyforge_project: paperclip
549
- rubygems_version: 2.0.5
563
+ rubygems_version: 1.8.23
550
564
  signing_key:
551
- specification_version: 4
565
+ specification_version: 3
552
566
  summary: File attachments as attributes for ActiveRecord
553
567
  test_files:
554
568
  - features/basic_integration.feature
@@ -603,6 +617,7 @@ test_files:
603
617
  - test/io_adapters/data_uri_adapter_test.rb
604
618
  - test/io_adapters/empty_string_adapter_test.rb
605
619
  - test/io_adapters/file_adapter_test.rb
620
+ - test/io_adapters/http_url_proxy_adapter_test.rb
606
621
  - test/io_adapters/identity_adapter_test.rb
607
622
  - test/io_adapters/nil_adapter_test.rb
608
623
  - test/io_adapters/registry_test.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MDk3MDQ5M2FjY2Q3OTIzMDQzNTg4YzE3OGMwMTU1YTBiZGM0ZDVmNg==
5
- data.tar.gz: !binary |-
6
- MDkwNWQ0M2I2MzAwMDk0NDA4NDdhZDM0ZTFiODg3MjZlY2ZmYTU1NA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- Y2U4ZDI0Y2Q3MGE2NTJmZTQ5MDZlODJiZDIzOTJlNjM5MDAwZDI5Yjk5NmYx
10
- MWRmNjc1YjQ3MmI2YzMwMzU2ODIwZGI2NTcyZjNhY2I3YWVhOWViNTZmOTZj
11
- Yjc1ZDI1OTExNWE3MTgxN2Y2Nzc5YzdjODU1ZjA1ZDk3ZjNjOGM=
12
- data.tar.gz: !binary |-
13
- Y2RkZGY4MjViZTVjOTczMmRiZTNjYjBhYzMyNTRkODczOWVkMjdmMzU0ZDY0
14
- ZmRkNGNiNGM2MjRkMmNjYTU4ODQzZTQwZmY5YmVmMGM1ZmE3NTZiYzRjMzIy
15
- NDdkY2JkNDFmNTNhNDk0ZjAxNDZhNWNkZDk3ZTU0YjAyNzI5ZDM=