cloudfuji_paperclip 2.4.6 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +9 -6
  3. data/Appraisals +6 -6
  4. data/CONTRIBUTING.md +34 -2
  5. data/Gemfile +2 -0
  6. data/NEWS +90 -0
  7. data/README.md +62 -29
  8. data/RUNNING_TESTS.md +4 -0
  9. data/Rakefile +7 -2
  10. data/UPGRADING +14 -0
  11. data/features/basic_integration.feature +11 -7
  12. data/features/rake_tasks.feature +1 -1
  13. data/features/step_definitions/attachment_steps.rb +11 -2
  14. data/features/step_definitions/rails_steps.rb +17 -79
  15. data/features/support/env.rb +3 -0
  16. data/features/support/fakeweb.rb +7 -0
  17. data/features/support/file_helpers.rb +24 -0
  18. data/features/support/rails.rb +3 -3
  19. data/gemfiles/{rails3_1.gemfile → 3.0.gemfile} +3 -1
  20. data/gemfiles/{rails2.gemfile → 3.1.gemfile} +3 -1
  21. data/gemfiles/{rails3.gemfile → 3.2.gemfile} +3 -1
  22. data/images.rake +21 -0
  23. data/lib/cloudfuji_paperclip.rb +1 -0
  24. data/lib/generators/paperclip/paperclip_generator.rb +1 -2
  25. data/lib/paperclip.rb +54 -319
  26. data/lib/paperclip/attachment.rb +86 -107
  27. data/lib/paperclip/attachment_options.rb +9 -0
  28. data/lib/paperclip/callbacks.rb +30 -0
  29. data/lib/paperclip/errors.rb +27 -0
  30. data/lib/paperclip/geometry.rb +6 -4
  31. data/lib/paperclip/glue.rb +23 -0
  32. data/lib/paperclip/helpers.rb +71 -0
  33. data/lib/paperclip/instance_methods.rb +35 -0
  34. data/lib/paperclip/interpolations.rb +4 -4
  35. data/lib/paperclip/io_adapters/attachment_adapter.rb +69 -0
  36. data/lib/paperclip/io_adapters/file_adapter.rb +81 -0
  37. data/lib/paperclip/io_adapters/identity_adapter.rb +12 -0
  38. data/lib/paperclip/io_adapters/nil_adapter.rb +34 -0
  39. data/lib/paperclip/io_adapters/registry.rb +32 -0
  40. data/lib/paperclip/io_adapters/stringio_adapter.rb +64 -0
  41. data/lib/paperclip/io_adapters/uploaded_file_adapter.rb +63 -0
  42. data/lib/paperclip/locales/en.yml +17 -0
  43. data/lib/paperclip/logger.rb +21 -0
  44. data/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +5 -5
  45. data/lib/paperclip/matchers/validate_attachment_presence_matcher.rb +7 -7
  46. data/lib/paperclip/matchers/validate_attachment_size_matcher.rb +11 -11
  47. data/lib/paperclip/missing_attachment_styles.rb +6 -9
  48. data/lib/paperclip/processor.rb +32 -17
  49. data/lib/paperclip/railtie.rb +13 -17
  50. data/lib/paperclip/storage/filesystem.rb +4 -13
  51. data/lib/paperclip/storage/fog.rb +33 -24
  52. data/lib/paperclip/storage/s3.rb +36 -28
  53. data/lib/paperclip/tempfile.rb +41 -0
  54. data/lib/paperclip/thumbnail.rb +2 -3
  55. data/lib/paperclip/validators.rb +45 -0
  56. data/lib/paperclip/validators/attachment_content_type_validator.rb +54 -0
  57. data/lib/paperclip/validators/attachment_presence_validator.rb +26 -0
  58. data/lib/paperclip/validators/attachment_size_validator.rb +102 -0
  59. data/lib/paperclip/version.rb +1 -1
  60. data/lib/tasks/paperclip.rake +4 -12
  61. data/paperclip.gemspec +15 -5
  62. data/test/adapter_registry_test.rb +32 -0
  63. data/test/attachment_adapter_test.rb +51 -0
  64. data/test/attachment_options_test.rb +27 -0
  65. data/test/attachment_test.rb +130 -46
  66. data/test/file_adapter_test.rb +88 -0
  67. data/test/generator_test.rb +78 -0
  68. data/test/geometry_test.rb +5 -5
  69. data/test/helper.rb +21 -22
  70. data/test/identity_adapter_test.rb +8 -0
  71. data/test/integration_test.rb +55 -102
  72. data/test/interpolations_test.rb +15 -5
  73. data/test/matchers/validate_attachment_content_type_matcher_test.rb +23 -0
  74. data/test/matchers/validate_attachment_presence_matcher_test.rb +21 -0
  75. data/test/matchers/validate_attachment_size_matcher_test.rb +37 -2
  76. data/test/nil_adapter_test.rb +25 -0
  77. data/test/paperclip_missing_attachment_styles_test.rb +16 -0
  78. data/test/paperclip_test.rb +34 -183
  79. data/test/storage/filesystem_test.rb +27 -27
  80. data/test/storage/fog_test.rb +68 -12
  81. data/test/storage/s3_live_test.rb +79 -38
  82. data/test/storage/s3_test.rb +204 -34
  83. data/test/stringio_adapter_test.rb +42 -0
  84. data/test/thumbnail_test.rb +29 -8
  85. data/test/uploaded_file_adapter_test.rb +98 -0
  86. data/test/url_generator_test.rb +8 -8
  87. data/test/validators/attachment_content_type_validator_test.rb +192 -0
  88. data/test/validators/attachment_presence_validator_test.rb +85 -0
  89. data/test/validators/attachment_size_validator_test.rb +207 -0
  90. data/test/validators_test.rb +25 -0
  91. metadata +166 -59
  92. data/generators/paperclip/USAGE +0 -5
  93. data/generators/paperclip/paperclip_generator.rb +0 -27
  94. data/generators/paperclip/templates/paperclip_migration.rb.erb +0 -19
  95. data/init.rb +0 -4
  96. data/lib/paperclip/callback_compatibility.rb +0 -61
  97. data/lib/paperclip/iostream.rb +0 -45
  98. data/lib/paperclip/upfile.rb +0 -62
  99. data/rails/init.rb +0 -2
  100. data/test/.gitignore +0 -1
  101. data/test/fixtures/question?mark.png +0 -0
  102. data/test/iostream_test.rb +0 -71
  103. data/test/upfile_test.rb +0 -53
@@ -0,0 +1,85 @@
1
+ require './test/helper'
2
+
3
+ class AttachmentPresenceValidatorTest < Test::Unit::TestCase
4
+ def setup
5
+ rebuild_model
6
+ @dummy = Dummy.new
7
+ end
8
+
9
+ def build_validator(options={})
10
+ @validator = Paperclip::Validators::AttachmentPresenceValidator.new(options.merge(
11
+ :attributes => :avatar
12
+ ))
13
+ end
14
+
15
+ context "nil attachment" do
16
+ setup do
17
+ @dummy.avatar = nil
18
+ end
19
+
20
+ context "with default options" do
21
+ setup do
22
+ build_validator
23
+ @validator.validate(@dummy)
24
+ end
25
+
26
+ should "add error on the attachment" do
27
+ assert @dummy.errors[:avatar].present?
28
+ end
29
+
30
+ should "not add an error on the file_name attribute" do
31
+ assert @dummy.errors[:avatar_file_name].blank?
32
+ end
33
+ end
34
+
35
+ context "with :if option" do
36
+ context "returning true" do
37
+ setup do
38
+ build_validator :if => true
39
+ @validator.validate(@dummy)
40
+ end
41
+
42
+ should "perform a validation" do
43
+ assert @dummy.errors[:avatar].present?
44
+ end
45
+ end
46
+
47
+ context "returning false" do
48
+ setup do
49
+ build_validator :if => false
50
+ @validator.validate(@dummy)
51
+ end
52
+
53
+ should "perform a validation" do
54
+ assert @dummy.errors[:avatar].present?
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ context "with attachment" do
61
+ setup do
62
+ build_validator
63
+ @dummy.avatar = StringIO.new('.')
64
+ @validator.validate(@dummy)
65
+ end
66
+
67
+ should "not add error on the attachment" do
68
+ assert @dummy.errors[:avatar].blank?
69
+ end
70
+
71
+ should "not add an error on the file_name attribute" do
72
+ assert @dummy.errors[:avatar_file_name].blank?
73
+ end
74
+ end
75
+
76
+ context "using the helper" do
77
+ setup do
78
+ Dummy.validates_attachment_presence :avatar
79
+ end
80
+
81
+ should "add the validator to the class" do
82
+ assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :attachment_presence }
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,207 @@
1
+ require './test/helper'
2
+
3
+ class AttachmentSizeValidatorTest < Test::Unit::TestCase
4
+ def setup
5
+ rebuild_model
6
+ @dummy = Dummy.new
7
+ end
8
+
9
+ def build_validator(options)
10
+ @validator = Paperclip::Validators::AttachmentSizeValidator.new(options.merge(
11
+ :attributes => :avatar
12
+ ))
13
+ end
14
+
15
+ def self.should_allow_attachment_file_size(size)
16
+ context "when the attachment size is #{size}" do
17
+ should "add error to dummy object" do
18
+ @dummy.stubs(:avatar_file_size).returns(size)
19
+ @validator.validate(@dummy)
20
+ assert @dummy.errors[:avatar_file_size].blank?,
21
+ "Expect an error message on :avatar_file_size, got none."
22
+ end
23
+ end
24
+ end
25
+
26
+ def self.should_not_allow_attachment_file_size(size, options = {})
27
+ context "when the attachment size is #{size}" do
28
+ setup do
29
+ @dummy.stubs(:avatar_file_size).returns(size)
30
+ @validator.validate(@dummy)
31
+ end
32
+
33
+ should "add error to dummy object" do
34
+ assert @dummy.errors[:avatar_file_size].present?,
35
+ "Unexpected error message on :avatar_file_size"
36
+ end
37
+
38
+ if options[:message]
39
+ should "return a correct error message" do
40
+ assert_includes @dummy.errors[:avatar_file_size], options[:message]
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ context "with :in option" do
47
+ context "as a range" do
48
+ setup do
49
+ build_validator :in => (5.kilobytes..10.kilobytes)
50
+ end
51
+
52
+ should_allow_attachment_file_size(7.kilobytes)
53
+ should_not_allow_attachment_file_size(4.kilobytes)
54
+ should_not_allow_attachment_file_size(11.kilobytes)
55
+ end
56
+
57
+ context "as a proc" do
58
+ setup do
59
+ build_validator :in => lambda { |avatar| (5.kilobytes..10.kilobytes) }
60
+ end
61
+
62
+ should_allow_attachment_file_size(7.kilobytes)
63
+ should_not_allow_attachment_file_size(4.kilobytes)
64
+ should_not_allow_attachment_file_size(11.kilobytes)
65
+ end
66
+ end
67
+
68
+ context "with :greater_than option" do
69
+ context "as number" do
70
+ setup do
71
+ build_validator :greater_than => 10.kilobytes
72
+ end
73
+
74
+ should_allow_attachment_file_size 11.kilobytes
75
+ should_not_allow_attachment_file_size 10.kilobytes
76
+ end
77
+
78
+ context "as a proc" do
79
+ setup do
80
+ build_validator :greater_than => lambda { |avatar| 10.kilobytes }
81
+ end
82
+
83
+ should_allow_attachment_file_size 11.kilobytes
84
+ should_not_allow_attachment_file_size 10.kilobytes
85
+ end
86
+ end
87
+
88
+ context "with :less_than option" do
89
+ context "as number" do
90
+ setup do
91
+ build_validator :less_than => 10.kilobytes
92
+ end
93
+
94
+ should_allow_attachment_file_size 9.kilobytes
95
+ should_not_allow_attachment_file_size 10.kilobytes
96
+ end
97
+
98
+ context "as a proc" do
99
+ setup do
100
+ build_validator :less_than => lambda { |avatar| 10.kilobytes }
101
+ end
102
+
103
+ should_allow_attachment_file_size 9.kilobytes
104
+ should_not_allow_attachment_file_size 10.kilobytes
105
+ end
106
+ end
107
+
108
+ context "with :greater_than and :less_than option" do
109
+ context "as numbers" do
110
+ setup do
111
+ build_validator :greater_than => 5.kilobytes,
112
+ :less_than => 10.kilobytes
113
+ end
114
+
115
+ should_allow_attachment_file_size 7.kilobytes
116
+ should_not_allow_attachment_file_size 5.kilobytes
117
+ should_not_allow_attachment_file_size 10.kilobytes
118
+ end
119
+
120
+ context "as a proc" do
121
+ setup do
122
+ build_validator :greater_than => lambda { |avatar| 5.kilobytes },
123
+ :less_than => lambda { |avatar| 10.kilobytes }
124
+ end
125
+
126
+ should_allow_attachment_file_size 7.kilobytes
127
+ should_not_allow_attachment_file_size 5.kilobytes
128
+ should_not_allow_attachment_file_size 10.kilobytes
129
+ end
130
+ end
131
+
132
+ context "with :message option" do
133
+ context "given a range" do
134
+ setup do
135
+ build_validator :in => (5.kilobytes..10.kilobytes),
136
+ :message => "is invalid. (Between %{min} and %{max} please.)"
137
+ end
138
+
139
+ should_not_allow_attachment_file_size 11.kilobytes,
140
+ :message => "is invalid. (Between 5120 Bytes and 10240 Bytes please.)"
141
+ end
142
+
143
+ context "given :less_than and :greater_than" do
144
+ setup do
145
+ build_validator :less_than => 10.kilobytes,
146
+ :greater_than => 5.kilobytes,
147
+ :message => "is invalid. (Between %{min} and %{max} please.)"
148
+ end
149
+
150
+ should_not_allow_attachment_file_size 11.kilobytes,
151
+ :message => "is invalid. (Between 5120 Bytes and 10240 Bytes please.)"
152
+ end
153
+ end
154
+
155
+ context "default error messages" do
156
+ context "given :less_than and :greater_than" do
157
+ setup do
158
+ build_validator :greater_than => 5.kilobytes,
159
+ :less_than => 10.kilobytes
160
+ end
161
+
162
+ should_not_allow_attachment_file_size 11.kilobytes,
163
+ :message => "must be less than 10240 Bytes"
164
+ should_not_allow_attachment_file_size 4.kilobytes,
165
+ :message => "must be greater than 5120 Bytes"
166
+ end
167
+
168
+ context "given a size range" do
169
+ setup do
170
+ build_validator :in => (5.kilobytes..10.kilobytes)
171
+ end
172
+
173
+ should_not_allow_attachment_file_size 11.kilobytes,
174
+ :message => "must be in between 5120 Bytes and 10240 Bytes"
175
+ should_not_allow_attachment_file_size 4.kilobytes,
176
+ :message => "must be in between 5120 Bytes and 10240 Bytes"
177
+ end
178
+ end
179
+
180
+ context "using the helper" do
181
+ setup do
182
+ Dummy.validates_attachment_size :avatar, :in => (5.kilobytes..10.kilobytes)
183
+ end
184
+
185
+ should "add the validator to the class" do
186
+ assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :attachment_size }
187
+ end
188
+ end
189
+
190
+ context "given options" do
191
+ should "raise argument error if no required argument was given" do
192
+ assert_raises(ArgumentError) do
193
+ build_validator :message => "Some message"
194
+ end
195
+ end
196
+
197
+ (Paperclip::Validators::AttachmentSizeValidator::AVAILABLE_CHECKS).each do |argument|
198
+ should "not raise arguemnt error if #{argument} was given" do
199
+ build_validator argument => 5.kilobytes
200
+ end
201
+ end
202
+
203
+ should "not raise argument error if :in was given" do
204
+ build_validator :in => (5.kilobytes..10.kilobytes)
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,25 @@
1
+ require './test/helper'
2
+
3
+ class ValidatorsTest < Test::Unit::TestCase
4
+ def setup
5
+ rebuild_model
6
+ end
7
+
8
+ context "using the helper" do
9
+ setup do
10
+ Dummy.validates_attachment :avatar, :presence => true, :content_type => { :content_type => "image/jpg" }, :size => { :in => 0..10.kilobytes }
11
+ end
12
+
13
+ should "add the attachment_presence validator to the class" do
14
+ assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :attachment_presence }
15
+ end
16
+
17
+ should "add the attachment_content_type validator to the class" do
18
+ assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :attachment_content_type }
19
+ end
20
+
21
+ should "add the attachment_size validator to the class" do
22
+ assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :attachment_size }
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cloudfuji_paperclip
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.4.6
5
+ version: 3.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jon Yurek
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-04-26 00:00:00 Z
13
+ date: 2012-04-27 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -19,67 +19,67 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.3.0
22
+ version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
- name: activesupport
27
+ name: activemodel
28
28
  requirement: &id002 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.3.2
33
+ version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: cocaine
38
+ name: activesupport
39
39
  requirement: &id003 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: 0.0.2
44
+ version: 3.0.0
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: *id003
48
48
  - !ruby/object:Gem::Dependency
49
- name: mime-types
49
+ name: cocaine
50
50
  requirement: &id004 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: "0"
55
+ version: 0.0.2
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: *id004
59
59
  - !ruby/object:Gem::Dependency
60
- name: shoulda
60
+ name: mime-types
61
61
  requirement: &id005 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
66
  version: "0"
67
- type: :development
67
+ type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: *id005
70
70
  - !ruby/object:Gem::Dependency
71
- name: appraisal
71
+ name: shoulda
72
72
  requirement: &id006 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ~>
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: 0.4.0
77
+ version: "0"
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: *id006
81
81
  - !ruby/object:Gem::Dependency
82
- name: mocha
82
+ name: appraisal
83
83
  requirement: &id007 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
@@ -90,7 +90,7 @@ dependencies:
90
90
  prerelease: false
91
91
  version_requirements: *id007
92
92
  - !ruby/object:Gem::Dependency
93
- name: aws-sdk
93
+ name: mocha
94
94
  requirement: &id008 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
@@ -101,8 +101,30 @@ dependencies:
101
101
  prerelease: false
102
102
  version_requirements: *id008
103
103
  - !ruby/object:Gem::Dependency
104
- name: sqlite3
104
+ name: aws-sdk
105
105
  requirement: &id009 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: bourne
116
+ requirement: &id010 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: "0"
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: &id011 !ruby/object:Gem::Requirement
106
128
  none: false
107
129
  requirements:
108
130
  - - ~>
@@ -110,10 +132,10 @@ dependencies:
110
132
  version: 1.3.4
111
133
  type: :development
112
134
  prerelease: false
113
- version_requirements: *id009
135
+ version_requirements: *id011
114
136
  - !ruby/object:Gem::Dependency
115
137
  name: cucumber
116
- requirement: &id010 !ruby/object:Gem::Requirement
138
+ requirement: &id012 !ruby/object:Gem::Requirement
117
139
  none: false
118
140
  requirements:
119
141
  - - ~>
@@ -121,10 +143,10 @@ dependencies:
121
143
  version: 1.1.0
122
144
  type: :development
123
145
  prerelease: false
124
- version_requirements: *id010
146
+ version_requirements: *id012
125
147
  - !ruby/object:Gem::Dependency
126
148
  name: aruba
127
- requirement: &id011 !ruby/object:Gem::Requirement
149
+ requirement: &id013 !ruby/object:Gem::Requirement
128
150
  none: false
129
151
  requirements:
130
152
  - - ">="
@@ -132,10 +154,21 @@ dependencies:
132
154
  version: "0"
133
155
  type: :development
134
156
  prerelease: false
135
- version_requirements: *id011
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
159
+ name: nokogiri
160
+ requirement: &id014 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: "0"
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: *id014
136
169
  - !ruby/object:Gem::Dependency
137
170
  name: capybara
138
- requirement: &id012 !ruby/object:Gem::Requirement
171
+ requirement: &id015 !ruby/object:Gem::Requirement
139
172
  none: false
140
173
  requirements:
141
174
  - - ">="
@@ -143,10 +176,10 @@ dependencies:
143
176
  version: "0"
144
177
  type: :development
145
178
  prerelease: false
146
- version_requirements: *id012
179
+ version_requirements: *id015
147
180
  - !ruby/object:Gem::Dependency
148
181
  name: bundler
149
- requirement: &id013 !ruby/object:Gem::Requirement
182
+ requirement: &id016 !ruby/object:Gem::Requirement
150
183
  none: false
151
184
  requirements:
152
185
  - - ">="
@@ -154,10 +187,10 @@ dependencies:
154
187
  version: "0"
155
188
  type: :development
156
189
  prerelease: false
157
- version_requirements: *id013
190
+ version_requirements: *id016
158
191
  - !ruby/object:Gem::Dependency
159
192
  name: cocaine
160
- requirement: &id014 !ruby/object:Gem::Requirement
193
+ requirement: &id017 !ruby/object:Gem::Requirement
161
194
  none: false
162
195
  requirements:
163
196
  - - ~>
@@ -165,10 +198,10 @@ dependencies:
165
198
  version: "0.2"
166
199
  type: :development
167
200
  prerelease: false
168
- version_requirements: *id014
201
+ version_requirements: *id017
169
202
  - !ruby/object:Gem::Dependency
170
203
  name: fog
171
- requirement: &id015 !ruby/object:Gem::Requirement
204
+ requirement: &id018 !ruby/object:Gem::Requirement
172
205
  none: false
173
206
  requirements:
174
207
  - - ">="
@@ -176,10 +209,32 @@ dependencies:
176
209
  version: "0"
177
210
  type: :development
178
211
  prerelease: false
179
- version_requirements: *id015
212
+ version_requirements: *id018
213
+ - !ruby/object:Gem::Dependency
214
+ name: pry
215
+ requirement: &id019 !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: "0"
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: *id019
224
+ - !ruby/object:Gem::Dependency
225
+ name: launchy
226
+ requirement: &id020 !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: "0"
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: *id020
180
235
  - !ruby/object:Gem::Dependency
181
236
  name: rake
182
- requirement: &id016 !ruby/object:Gem::Requirement
237
+ requirement: &id021 !ruby/object:Gem::Requirement
183
238
  none: false
184
239
  requirements:
185
240
  - - ">="
@@ -187,10 +242,10 @@ dependencies:
187
242
  version: "0"
188
243
  type: :development
189
244
  prerelease: false
190
- version_requirements: *id016
245
+ version_requirements: *id021
191
246
  - !ruby/object:Gem::Dependency
192
247
  name: fakeweb
193
- requirement: &id017 !ruby/object:Gem::Requirement
248
+ requirement: &id022 !ruby/object:Gem::Requirement
194
249
  none: false
195
250
  requirements:
196
251
  - - ">="
@@ -198,10 +253,11 @@ dependencies:
198
253
  version: "0"
199
254
  type: :development
200
255
  prerelease: false
201
- version_requirements: *id017
202
- description: Temporary fork of the paperclip gem to support AWS STS
256
+ version_requirements: *id022
257
+ description: Easy upload management for ActiveRecord
203
258
  email:
204
259
  - sean@fakecoolguys.com
260
+ - jyurek@thoughtbot.com
205
261
  executables: []
206
262
 
207
263
  extensions: []
@@ -216,8 +272,11 @@ files:
216
272
  - Gemfile
217
273
  - Gemfile.lock
218
274
  - LICENSE
275
+ - NEWS
219
276
  - README.md
277
+ - RUNNING_TESTS.md
220
278
  - Rakefile
279
+ - UPGRADING
221
280
  - cucumber/paperclip_steps.rb
222
281
  - features/basic_integration.feature
223
282
  - features/rake_tasks.feature
@@ -228,6 +287,7 @@ files:
228
287
  - features/step_definitions/web_steps.rb
229
288
  - features/support/env.rb
230
289
  - features/support/fakeweb.rb
290
+ - features/support/file_helpers.rb
231
291
  - features/support/fixtures/.boot_config.rb.swo
232
292
  - features/support/fixtures/boot_config.txt
233
293
  - features/support/fixtures/gemfile.txt
@@ -235,22 +295,35 @@ files:
235
295
  - features/support/paths.rb
236
296
  - features/support/rails.rb
237
297
  - features/support/selectors.rb
238
- - gemfiles/rails2.gemfile
239
- - gemfiles/rails3.gemfile
240
- - gemfiles/rails3_1.gemfile
241
- - generators/paperclip/USAGE
242
- - generators/paperclip/paperclip_generator.rb
243
- - generators/paperclip/templates/paperclip_migration.rb.erb
244
- - init.rb
298
+ - gemfiles/3.0.gemfile
299
+ - gemfiles/3.1.gemfile
300
+ - gemfiles/3.2.gemfile
301
+ - images.rake
302
+ - lib/.DS_Store
303
+ - lib/cloudfuji_paperclip.rb
245
304
  - lib/generators/paperclip/USAGE
246
305
  - lib/generators/paperclip/paperclip_generator.rb
247
306
  - lib/generators/paperclip/templates/paperclip_migration.rb.erb
248
307
  - lib/paperclip.rb
308
+ - lib/paperclip/.DS_Store
249
309
  - lib/paperclip/attachment.rb
250
- - lib/paperclip/callback_compatibility.rb
310
+ - lib/paperclip/attachment_options.rb
311
+ - lib/paperclip/callbacks.rb
312
+ - lib/paperclip/errors.rb
251
313
  - lib/paperclip/geometry.rb
314
+ - lib/paperclip/glue.rb
315
+ - lib/paperclip/helpers.rb
316
+ - lib/paperclip/instance_methods.rb
252
317
  - lib/paperclip/interpolations.rb
253
- - lib/paperclip/iostream.rb
318
+ - lib/paperclip/io_adapters/attachment_adapter.rb
319
+ - lib/paperclip/io_adapters/file_adapter.rb
320
+ - lib/paperclip/io_adapters/identity_adapter.rb
321
+ - lib/paperclip/io_adapters/nil_adapter.rb
322
+ - lib/paperclip/io_adapters/registry.rb
323
+ - lib/paperclip/io_adapters/stringio_adapter.rb
324
+ - lib/paperclip/io_adapters/uploaded_file_adapter.rb
325
+ - lib/paperclip/locales/en.yml
326
+ - lib/paperclip/logger.rb
254
327
  - lib/paperclip/matchers.rb
255
328
  - lib/paperclip/matchers/have_attached_file_matcher.rb
256
329
  - lib/paperclip/matchers/validate_attachment_content_type_matcher.rb
@@ -265,38 +338,45 @@ files:
265
338
  - lib/paperclip/storage/fog.rb
266
339
  - lib/paperclip/storage/s3.rb
267
340
  - lib/paperclip/style.rb
341
+ - lib/paperclip/tempfile.rb
268
342
  - lib/paperclip/thumbnail.rb
269
- - lib/paperclip/upfile.rb
270
343
  - lib/paperclip/url_generator.rb
344
+ - lib/paperclip/validators.rb
345
+ - lib/paperclip/validators/attachment_content_type_validator.rb
346
+ - lib/paperclip/validators/attachment_presence_validator.rb
347
+ - lib/paperclip/validators/attachment_size_validator.rb
271
348
  - lib/paperclip/version.rb
272
349
  - lib/tasks/paperclip.rake
273
350
  - paperclip.gemspec
274
- - rails/init.rb
275
351
  - shoulda_macros/paperclip.rb
276
- - test/.gitignore
352
+ - test/adapter_registry_test.rb
353
+ - test/attachment_adapter_test.rb
354
+ - test/attachment_options_test.rb
277
355
  - test/attachment_test.rb
278
356
  - test/database.yml
357
+ - test/file_adapter_test.rb
279
358
  - test/fixtures/12k.png
280
359
  - test/fixtures/50x50.png
281
360
  - test/fixtures/5k.png
282
361
  - test/fixtures/animated.gif
283
362
  - test/fixtures/bad.png
284
363
  - test/fixtures/fog.yml
285
- - test/fixtures/question?mark.png
286
364
  - test/fixtures/s3.yml
287
365
  - test/fixtures/spaced file.png
288
366
  - test/fixtures/text.txt
289
367
  - test/fixtures/twopage.pdf
290
368
  - test/fixtures/uppercase.PNG
369
+ - test/generator_test.rb
291
370
  - test/geometry_test.rb
292
371
  - test/helper.rb
372
+ - test/identity_adapter_test.rb
293
373
  - test/integration_test.rb
294
374
  - test/interpolations_test.rb
295
- - test/iostream_test.rb
296
375
  - test/matchers/have_attached_file_matcher_test.rb
297
376
  - test/matchers/validate_attachment_content_type_matcher_test.rb
298
377
  - test/matchers/validate_attachment_presence_matcher_test.rb
299
378
  - test/matchers/validate_attachment_size_matcher_test.rb
379
+ - test/nil_adapter_test.rb
300
380
  - test/paperclip_missing_attachment_styles_test.rb
301
381
  - test/paperclip_test.rb
302
382
  - test/processor_test.rb
@@ -305,18 +385,37 @@ files:
305
385
  - test/storage/fog_test.rb
306
386
  - test/storage/s3_live_test.rb
307
387
  - test/storage/s3_test.rb
388
+ - test/stringio_adapter_test.rb
308
389
  - test/style_test.rb
309
390
  - test/support/mock_attachment.rb
310
391
  - test/support/mock_interpolator.rb
311
392
  - test/support/mock_model.rb
312
393
  - test/support/mock_url_generator_builder.rb
313
394
  - test/thumbnail_test.rb
314
- - test/upfile_test.rb
395
+ - test/uploaded_file_adapter_test.rb
315
396
  - test/url_generator_test.rb
397
+ - test/validators/attachment_content_type_validator_test.rb
398
+ - test/validators/attachment_presence_validator_test.rb
399
+ - test/validators/attachment_size_validator_test.rb
400
+ - test/validators_test.rb
316
401
  homepage: https://github.com/thoughtbot/paperclip
317
402
  licenses: []
318
403
 
319
- post_install_message:
404
+ post_install_message: |+
405
+ ##################################################
406
+ # NOTE FOR UPGRADING FROM PRE-3.0 VERSION #
407
+ ##################################################
408
+
409
+ Paperclip 3.0 introduces a non-backward compatible change in your attachment
410
+ path. This will help to prevent attachment name clashes when you have
411
+ multiple attachments with the same name. If you didn't alter your
412
+ attachment's path and are using Paperclip's default, you'll have to add
413
+ `:path` and `:url` to your `has_attached_file` definition. For example:
414
+
415
+ has_attached_file :avatar,
416
+ :path => ":rails_root/public/system/:attachment/:id/:style/:filename",
417
+ :url => "/system/:attachment/:id/:style/:filename"
418
+
320
419
  rdoc_options: []
321
420
 
322
421
  require_paths:
@@ -326,16 +425,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
326
425
  requirements:
327
426
  - - ">="
328
427
  - !ruby/object:Gem::Version
329
- hash: -251181474667849768
330
- segments:
331
- - 0
332
- version: "0"
428
+ version: 1.9.2
333
429
  required_rubygems_version: !ruby/object:Gem::Requirement
334
430
  none: false
335
431
  requirements:
336
432
  - - ">="
337
433
  - !ruby/object:Gem::Version
338
- hash: -251181474667849768
434
+ hash: 1086832459685533352
339
435
  segments:
340
436
  - 0
341
437
  version: "0"
@@ -356,6 +452,7 @@ test_files:
356
452
  - features/step_definitions/web_steps.rb
357
453
  - features/support/env.rb
358
454
  - features/support/fakeweb.rb
455
+ - features/support/file_helpers.rb
359
456
  - features/support/fixtures/.boot_config.rb.swo
360
457
  - features/support/fixtures/boot_config.txt
361
458
  - features/support/fixtures/gemfile.txt
@@ -363,29 +460,34 @@ test_files:
363
460
  - features/support/paths.rb
364
461
  - features/support/rails.rb
365
462
  - features/support/selectors.rb
463
+ - test/adapter_registry_test.rb
464
+ - test/attachment_adapter_test.rb
465
+ - test/attachment_options_test.rb
366
466
  - test/attachment_test.rb
367
467
  - test/database.yml
468
+ - test/file_adapter_test.rb
368
469
  - test/fixtures/12k.png
369
470
  - test/fixtures/50x50.png
370
471
  - test/fixtures/5k.png
371
472
  - test/fixtures/animated.gif
372
473
  - test/fixtures/bad.png
373
474
  - test/fixtures/fog.yml
374
- - test/fixtures/question?mark.png
375
475
  - test/fixtures/s3.yml
376
476
  - test/fixtures/spaced file.png
377
477
  - test/fixtures/text.txt
378
478
  - test/fixtures/twopage.pdf
379
479
  - test/fixtures/uppercase.PNG
480
+ - test/generator_test.rb
380
481
  - test/geometry_test.rb
381
482
  - test/helper.rb
483
+ - test/identity_adapter_test.rb
382
484
  - test/integration_test.rb
383
485
  - test/interpolations_test.rb
384
- - test/iostream_test.rb
385
486
  - test/matchers/have_attached_file_matcher_test.rb
386
487
  - test/matchers/validate_attachment_content_type_matcher_test.rb
387
488
  - test/matchers/validate_attachment_presence_matcher_test.rb
388
489
  - test/matchers/validate_attachment_size_matcher_test.rb
490
+ - test/nil_adapter_test.rb
389
491
  - test/paperclip_missing_attachment_styles_test.rb
390
492
  - test/paperclip_test.rb
391
493
  - test/processor_test.rb
@@ -394,11 +496,16 @@ test_files:
394
496
  - test/storage/fog_test.rb
395
497
  - test/storage/s3_live_test.rb
396
498
  - test/storage/s3_test.rb
499
+ - test/stringio_adapter_test.rb
397
500
  - test/style_test.rb
398
501
  - test/support/mock_attachment.rb
399
502
  - test/support/mock_interpolator.rb
400
503
  - test/support/mock_model.rb
401
504
  - test/support/mock_url_generator_builder.rb
402
505
  - test/thumbnail_test.rb
403
- - test/upfile_test.rb
506
+ - test/uploaded_file_adapter_test.rb
404
507
  - test/url_generator_test.rb
508
+ - test/validators/attachment_content_type_validator_test.rb
509
+ - test/validators/attachment_presence_validator_test.rb
510
+ - test/validators/attachment_size_validator_test.rb
511
+ - test/validators_test.rb