durran-carrierwave 0.3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. data/Generators +4 -0
  2. data/History.txt +66 -0
  3. data/LICENSE +8 -0
  4. data/Manifest.txt +89 -0
  5. data/README.rdoc +342 -0
  6. data/Rakefile +30 -0
  7. data/carrierwave.gemspec +57 -0
  8. data/cucumber.yml +2 -0
  9. data/features/caching.feature +28 -0
  10. data/features/file_storage.feature +37 -0
  11. data/features/file_storage_overridden_filename.feature +38 -0
  12. data/features/file_storage_overridden_store_dir.feature +38 -0
  13. data/features/file_storage_reversing_processor.feature +43 -0
  14. data/features/fixtures/bork.txt +1 -0
  15. data/features/fixtures/monkey.txt +1 -0
  16. data/features/mount_activerecord.feature +46 -0
  17. data/features/mount_datamapper.feature +46 -0
  18. data/features/step_definitions/activerecord_steps.rb +22 -0
  19. data/features/step_definitions/caching_steps.rb +14 -0
  20. data/features/step_definitions/datamapper_steps.rb +29 -0
  21. data/features/step_definitions/file_steps.rb +42 -0
  22. data/features/step_definitions/general_steps.rb +80 -0
  23. data/features/step_definitions/mount_steps.rb +19 -0
  24. data/features/step_definitions/store_steps.rb +18 -0
  25. data/features/support/activerecord.rb +30 -0
  26. data/features/support/datamapper.rb +7 -0
  27. data/features/support/env.rb +35 -0
  28. data/features/versions_basics.feature +50 -0
  29. data/features/versions_nested_versions.feature +70 -0
  30. data/features/versions_overridden_filename.feature +51 -0
  31. data/features/versions_overriden_store_dir.feature +41 -0
  32. data/lib/carrierwave.rb +145 -0
  33. data/lib/carrierwave/compatibility/paperclip.rb +95 -0
  34. data/lib/carrierwave/core_ext/blank.rb +46 -0
  35. data/lib/carrierwave/core_ext/inheritable_attributes.rb +104 -0
  36. data/lib/carrierwave/core_ext/module_setup.rb +51 -0
  37. data/lib/carrierwave/mount.rb +332 -0
  38. data/lib/carrierwave/orm/activerecord.rb +73 -0
  39. data/lib/carrierwave/orm/datamapper.rb +27 -0
  40. data/lib/carrierwave/orm/mongomapper.rb +27 -0
  41. data/lib/carrierwave/orm/sequel.rb +57 -0
  42. data/lib/carrierwave/processing/image_science.rb +72 -0
  43. data/lib/carrierwave/processing/rmagick.rb +286 -0
  44. data/lib/carrierwave/sanitized_file.rb +272 -0
  45. data/lib/carrierwave/storage/abstract.rb +32 -0
  46. data/lib/carrierwave/storage/file.rb +50 -0
  47. data/lib/carrierwave/storage/s3.rb +215 -0
  48. data/lib/carrierwave/test/matchers.rb +114 -0
  49. data/lib/carrierwave/uploader.rb +43 -0
  50. data/lib/carrierwave/uploader/cache.rb +116 -0
  51. data/lib/carrierwave/uploader/callbacks.rb +42 -0
  52. data/lib/carrierwave/uploader/default_path.rb +23 -0
  53. data/lib/carrierwave/uploader/extension_whitelist.rb +37 -0
  54. data/lib/carrierwave/uploader/mountable.rb +39 -0
  55. data/lib/carrierwave/uploader/paths.rb +27 -0
  56. data/lib/carrierwave/uploader/processing.rb +81 -0
  57. data/lib/carrierwave/uploader/proxy.rb +62 -0
  58. data/lib/carrierwave/uploader/remove.rb +23 -0
  59. data/lib/carrierwave/uploader/store.rb +156 -0
  60. data/lib/carrierwave/uploader/url.rb +24 -0
  61. data/lib/carrierwave/uploader/versions.rb +147 -0
  62. data/lib/generators/uploader_generator.rb +22 -0
  63. data/rails_generators/uploader/USAGE +2 -0
  64. data/rails_generators/uploader/templates/uploader.rb +47 -0
  65. data/rails_generators/uploader/uploader_generator.rb +21 -0
  66. data/script/console +10 -0
  67. data/script/destroy +14 -0
  68. data/script/generate +14 -0
  69. data/spec/compatibility/paperclip_spec.rb +43 -0
  70. data/spec/fixtures/bork.txt +1 -0
  71. data/spec/fixtures/test.jpeg +1 -0
  72. data/spec/fixtures/test.jpg +1 -0
  73. data/spec/mount_spec.rb +517 -0
  74. data/spec/orm/activerecord_spec.rb +271 -0
  75. data/spec/orm/datamapper_spec.rb +161 -0
  76. data/spec/orm/mongomapper_spec.rb +184 -0
  77. data/spec/orm/sequel_spec.rb +192 -0
  78. data/spec/sanitized_file_spec.rb +612 -0
  79. data/spec/spec_helper.rb +99 -0
  80. data/spec/uploader/cache_spec.rb +196 -0
  81. data/spec/uploader/default_path_spec.rb +68 -0
  82. data/spec/uploader/extension_whitelist_spec.rb +44 -0
  83. data/spec/uploader/mountable_spec.rb +33 -0
  84. data/spec/uploader/paths_spec.rb +22 -0
  85. data/spec/uploader/processing_spec.rb +62 -0
  86. data/spec/uploader/proxy_spec.rb +54 -0
  87. data/spec/uploader/remove_spec.rb +70 -0
  88. data/spec/uploader/store_spec.rb +274 -0
  89. data/spec/uploader/url_spec.rb +87 -0
  90. data/spec/uploader/versions_spec.rb +306 -0
  91. metadata +228 -0
@@ -0,0 +1,87 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ describe CarrierWave::Uploader do
6
+
7
+ before do
8
+ @uploader_class = Class.new(CarrierWave::Uploader::Base)
9
+ @uploader = @uploader_class.new
10
+ end
11
+
12
+ after do
13
+ FileUtils.rm_rf(public_path)
14
+ end
15
+
16
+ describe '#url' do
17
+ before do
18
+ CarrierWave.stub!(:generate_cache_id).and_return('20071201-1234-345-2255')
19
+ end
20
+
21
+ it "should default to nil" do
22
+ @uploader.url.should be_nil
23
+ end
24
+
25
+ it "should raise ArgumentError when version doesn't exist" do
26
+ lambda { @uploader.url(:thumb) }.should raise_error(ArgumentError)
27
+ end
28
+
29
+ it "should not raise ArgumentError when versions version exists" do
30
+ @uploader_class.version(:thumb)
31
+ lambda { @uploader.url(:thumb) }.should_not raise_error(ArgumentError)
32
+ end
33
+
34
+ it "should get the directory relative to public, prepending a slash" do
35
+ @uploader.cache!(File.open(file_path('test.jpg')))
36
+ @uploader.url.should == '/uploads/tmp/20071201-1234-345-2255/test.jpg'
37
+ end
38
+
39
+ it "should get the directory relative to public for a specific version" do
40
+ @uploader_class.version(:thumb)
41
+ @uploader.cache!(File.open(file_path('test.jpg')))
42
+ @uploader.url(:thumb).should == '/uploads/tmp/20071201-1234-345-2255/thumb_test.jpg'
43
+ end
44
+
45
+ it "should get the directory relative to public for a nested version" do
46
+ @uploader_class.version(:thumb) do
47
+ version(:mini)
48
+ end
49
+ @uploader.cache!(File.open(file_path('test.jpg')))
50
+ @uploader.url(:thumb, :mini).should == '/uploads/tmp/20071201-1234-345-2255/thumb_mini_test.jpg'
51
+ end
52
+
53
+ it "should return file#url if available" do
54
+ @uploader.cache!(File.open(file_path('test.jpg')))
55
+ @uploader.file.stub!(:url).and_return('http://www.example.com/someurl.jpg')
56
+ @uploader.url.should == 'http://www.example.com/someurl.jpg'
57
+ end
58
+
59
+ it "should get the directory relative to public, if file#url is blank" do
60
+ @uploader.cache!(File.open(file_path('test.jpg')))
61
+ @uploader.file.stub!(:url).and_return('')
62
+ @uploader.url.should == '/uploads/tmp/20071201-1234-345-2255/test.jpg'
63
+ end
64
+ end
65
+
66
+ describe '#to_s' do
67
+ before do
68
+ CarrierWave.stub!(:generate_cache_id).and_return('20071201-1234-345-2255')
69
+ end
70
+
71
+ it "should default to nil" do
72
+ @uploader.to_s.should be_nil
73
+ end
74
+
75
+ it "should get the directory relative to public, prepending a slash" do
76
+ @uploader.cache!(File.open(file_path('test.jpg')))
77
+ @uploader.to_s.should == '/uploads/tmp/20071201-1234-345-2255/test.jpg'
78
+ end
79
+
80
+ it "should return file#url if available" do
81
+ @uploader.cache!(File.open(file_path('test.jpg')))
82
+ @uploader.file.stub!(:url).and_return('http://www.example.com/someurl.jpg')
83
+ @uploader.to_s.should == 'http://www.example.com/someurl.jpg'
84
+ end
85
+ end
86
+
87
+ end
@@ -0,0 +1,306 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ describe CarrierWave::Uploader do
6
+
7
+ before do
8
+ @uploader_class = Class.new(CarrierWave::Uploader::Base)
9
+ @uploader = @uploader_class.new
10
+ end
11
+
12
+ after do
13
+ FileUtils.rm_rf(public_path)
14
+ end
15
+
16
+ describe '.version' do
17
+ it "should add it to .versions" do
18
+ @uploader_class.version :thumb
19
+ @uploader_class.versions[:thumb].should be_a(Class)
20
+ @uploader_class.versions[:thumb].ancestors.should include(@uploader_class)
21
+ end
22
+
23
+ it "should add an accessor which returns the version" do
24
+ @uploader_class.version :thumb
25
+ @uploader.thumb.should be_a(@uploader_class)
26
+ end
27
+
28
+ it "should add it to #versions which returns the version" do
29
+ @uploader_class.version :thumb
30
+ @uploader.versions[:thumb].should be_a(@uploader_class)
31
+ end
32
+
33
+ it "should set the version name" do
34
+ @uploader_class.version :thumb
35
+ @uploader.version_name.should == nil
36
+ @uploader.thumb.version_name.should == :thumb
37
+ end
38
+
39
+ it "should set the version names on the class" do
40
+ @uploader_class.version :thumb
41
+ @uploader.class.version_names.should == []
42
+ @uploader.thumb.class.version_names.should == [:thumb]
43
+ end
44
+
45
+ it "should remember mount options" do
46
+ model = mock('a model')
47
+ @uploader_class.version :thumb
48
+ @uploader = @uploader_class.new(model, :gazelle)
49
+
50
+ @uploader.thumb.model.should == model
51
+ @uploader.thumb.mounted_as.should == :gazelle
52
+ end
53
+
54
+ it "should apply any overrides given in a block" do
55
+ @uploader_class.version :thumb do
56
+ def store_dir
57
+ public_path('monkey/apache')
58
+ end
59
+ end
60
+ @uploader.store_dir.should == 'uploads'
61
+ @uploader.thumb.store_dir.should == public_path('monkey/apache')
62
+ end
63
+
64
+ it "should reopen the same class when called multiple times" do
65
+ @uploader_class.version :thumb do
66
+ def self.monkey
67
+ "monkey"
68
+ end
69
+ end
70
+ @uploader_class.version :thumb do
71
+ def self.llama
72
+ "llama"
73
+ end
74
+ end
75
+ @uploader_class.version(:thumb).monkey.should == "monkey"
76
+ @uploader_class.version(:thumb).llama.should == "llama"
77
+ end
78
+
79
+ describe 'with nested versions' do
80
+ before do
81
+ @uploader_class.version :thumb do
82
+ version :mini
83
+ version :micro
84
+ end
85
+ end
86
+
87
+ it "should add an array of version names" do
88
+ @uploader.class.version_names.should == []
89
+ @uploader.thumb.class.version_names.should == [:thumb]
90
+ @uploader.thumb.mini.class.version_names.should == [:thumb, :mini]
91
+ @uploader.thumb.micro.class.version_names.should == [:thumb, :micro]
92
+ end
93
+
94
+ it "should set the version name for the instances" do
95
+ @uploader.version_name.should be_nil
96
+ @uploader.thumb.version_name.should == :thumb
97
+ @uploader.thumb.mini.version_name.should == :thumb_mini
98
+ @uploader.thumb.micro.version_name.should == :thumb_micro
99
+ end
100
+
101
+ end
102
+
103
+ end
104
+
105
+ describe 'with a version' do
106
+ before do
107
+ @uploader_class.version(:thumb)
108
+ end
109
+
110
+ describe '#cache!' do
111
+
112
+ before do
113
+ CarrierWave.stub!(:generate_cache_id).and_return('20071201-1234-345-2255')
114
+ end
115
+
116
+ it "should set store_path with versions" do
117
+ @uploader.cache!(File.open(file_path('test.jpg')))
118
+ @uploader.store_path.should == 'uploads/test.jpg'
119
+ @uploader.thumb.store_path.should == 'uploads/thumb_test.jpg'
120
+ @uploader.thumb.store_path('kebab.png').should == 'uploads/thumb_kebab.png'
121
+ end
122
+
123
+ it "should move it to the tmp dir with the filename prefixed" do
124
+ @uploader.cache!(File.open(file_path('test.jpg')))
125
+ @uploader.current_path.should == public_path('uploads/tmp/20071201-1234-345-2255/test.jpg')
126
+ @uploader.thumb.current_path.should == public_path('uploads/tmp/20071201-1234-345-2255/thumb_test.jpg')
127
+ @uploader.file.exists?.should be_true
128
+ @uploader.thumb.file.exists?.should be_true
129
+ end
130
+ end
131
+
132
+ describe '#retrieve_from_cache!' do
133
+ it "should set the path to the tmp dir" do
134
+ @uploader.retrieve_from_cache!('20071201-1234-345-2255/test.jpg')
135
+ @uploader.current_path.should == public_path('uploads/tmp/20071201-1234-345-2255/test.jpg')
136
+ @uploader.thumb.current_path.should == public_path('uploads/tmp/20071201-1234-345-2255/thumb_test.jpg')
137
+ end
138
+
139
+ it "should set store_path with versions" do
140
+ @uploader.retrieve_from_cache!('20071201-1234-345-2255/test.jpg')
141
+ @uploader.store_path.should == 'uploads/test.jpg'
142
+ @uploader.thumb.store_path.should == 'uploads/thumb_test.jpg'
143
+ @uploader.thumb.store_path('kebab.png').should == 'uploads/thumb_kebab.png'
144
+ end
145
+ end
146
+
147
+ describe '#store!' do
148
+ before do
149
+ @uploader_class.storage = mock_storage('base')
150
+ @uploader_class.version(:thumb).storage = mock_storage('thumb')
151
+
152
+ @file = File.open(file_path('test.jpg'))
153
+
154
+ @base_stored_file = mock('a stored file')
155
+ @base_stored_file.stub!(:path).and_return('/path/to/somewhere')
156
+ @base_stored_file.stub!(:url).and_return('http://www.example.com')
157
+
158
+ @thumb_stored_file = mock('a thumb version of a stored file')
159
+ @thumb_stored_file.stub!(:path).and_return('/path/to/somewhere/thumb')
160
+ @thumb_stored_file.stub!(:url).and_return('http://www.example.com/thumb')
161
+
162
+ @storage = mock('a storage engine')
163
+ @storage.stub!(:store!).and_return(@base_stored_file)
164
+
165
+ @thumb_storage = mock('a storage engine for thumbnails')
166
+ @thumb_storage.stub!(:store!).and_return(@thumb_stored_file)
167
+
168
+ @uploader_class.storage.stub!(:new).with(@uploader).and_return(@storage)
169
+ @uploader_class.version(:thumb).storage.stub!(:new).with(@uploader.thumb).and_return(@thumb_storage)
170
+ end
171
+
172
+ after do
173
+ CarrierWave.config[:use_cache] = true
174
+ end
175
+
176
+ it "should set the current path for the version" do
177
+ @uploader.store!(@file)
178
+ @uploader.current_path.should == '/path/to/somewhere'
179
+ @uploader.thumb.current_path.should == '/path/to/somewhere/thumb'
180
+ end
181
+
182
+ it "should set the url" do
183
+ @uploader.store!(@file)
184
+ @uploader.url.should == 'http://www.example.com'
185
+ @uploader.thumb.url.should == 'http://www.example.com/thumb'
186
+ end
187
+
188
+ it "should, if a file is given as argument, set the store_path" do
189
+ @uploader.store!(@file)
190
+ @uploader.store_path.should == 'uploads/test.jpg'
191
+ @uploader.thumb.store_path.should == 'uploads/thumb_test.jpg'
192
+ @uploader.thumb.store_path('kebab.png').should == 'uploads/thumb_kebab.png'
193
+ end
194
+
195
+ it "should instruct the storage engine to store the file and its version" do
196
+ @uploader.cache!(@file)
197
+ @storage.should_receive(:store!).with(@uploader.file).and_return(:monkey)
198
+ @thumb_storage.should_receive(:store!).with(@uploader.thumb.file).and_return(:gorilla)
199
+ @uploader.store!
200
+ end
201
+
202
+ end
203
+
204
+ describe '#remove!' do
205
+ before do
206
+ @uploader_class.storage = mock_storage('base')
207
+ @uploader_class.version(:thumb).storage = mock_storage('thumb')
208
+
209
+ @file = File.open(file_path('test.jpg'))
210
+
211
+ @base_stored_file = mock('a stored file')
212
+ @thumb_stored_file = mock('a thumb version of a stored file')
213
+
214
+ @storage = mock('a storage engine')
215
+ @storage.stub!(:store!).and_return(@base_stored_file)
216
+
217
+ @thumb_storage = mock('a storage engine for thumbnails')
218
+ @thumb_storage.stub!(:store!).and_return(@thumb_stored_file)
219
+
220
+ @uploader_class.storage.stub!(:new).with(@uploader).and_return(@storage)
221
+ @uploader_class.version(:thumb).storage.stub!(:new).with(@uploader.thumb).and_return(@thumb_storage)
222
+
223
+ @base_stored_file.stub!(:delete)
224
+ @thumb_stored_file.stub!(:delete)
225
+
226
+ @uploader.store!(@file)
227
+ end
228
+
229
+ after do
230
+ CarrierWave.config[:use_cache] = true
231
+ end
232
+
233
+ it "should reset the current path for the version" do
234
+ @uploader.remove!
235
+ @uploader.current_path.should be_nil
236
+ @uploader.thumb.current_path.should be_nil
237
+ end
238
+
239
+ it "should reset the url" do
240
+ @uploader.remove!
241
+ @uploader.url.should be_nil
242
+ @uploader.thumb.url.should be_nil
243
+ end
244
+
245
+ it "should delete all the files" do
246
+ @base_stored_file.should_receive(:delete)
247
+ @thumb_stored_file.should_receive(:delete)
248
+ @uploader.remove!
249
+ end
250
+
251
+ end
252
+
253
+
254
+ describe '#retrieve_from_store!' do
255
+ before do
256
+ @uploader_class.storage = mock_storage('base')
257
+ @uploader_class.version(:thumb).storage = mock_storage('thumb')
258
+
259
+ @file = File.open(file_path('test.jpg'))
260
+
261
+ @base_stored_file = mock('a stored file')
262
+ @base_stored_file.stub!(:path).and_return('/path/to/somewhere')
263
+ @base_stored_file.stub!(:url).and_return('http://www.example.com')
264
+
265
+ @thumb_stored_file = mock('a thumb version of a stored file')
266
+ @thumb_stored_file.stub!(:path).and_return('/path/to/somewhere/thumb')
267
+ @thumb_stored_file.stub!(:url).and_return('http://www.example.com/thumb')
268
+
269
+ @storage = mock('a storage engine')
270
+ @storage.stub!(:retrieve!).and_return(@base_stored_file)
271
+
272
+ @thumb_storage = mock('a storage engine for thumbnails')
273
+ @thumb_storage.stub!(:retrieve!).and_return(@thumb_stored_file)
274
+
275
+ @uploader_class.storage.stub!(:new).with(@uploader).and_return(@storage)
276
+ @uploader_class.version(:thumb).storage.stub!(:new).with(@uploader.thumb).and_return(@thumb_storage)
277
+ end
278
+
279
+ it "should set the current path" do
280
+ @uploader.retrieve_from_store!('monkey.txt')
281
+ @uploader.current_path.should == '/path/to/somewhere'
282
+ @uploader.thumb.current_path.should == '/path/to/somewhere/thumb'
283
+ end
284
+
285
+ it "should set the url" do
286
+ @uploader.retrieve_from_store!('monkey.txt')
287
+ @uploader.url.should == 'http://www.example.com'
288
+ @uploader.thumb.url.should == 'http://www.example.com/thumb'
289
+ end
290
+
291
+ it "should pass the identifier to the storage engine" do
292
+ @storage.should_receive(:retrieve!).with('monkey.txt').and_return(@base_stored_file)
293
+ @thumb_storage.should_receive(:retrieve!).with('monkey.txt').and_return(@thumb_stored_file)
294
+ @uploader.retrieve_from_store!('monkey.txt')
295
+ @uploader.file.should == @base_stored_file
296
+ @uploader.thumb.file.should == @thumb_stored_file
297
+ end
298
+
299
+ it "should not set the filename" do
300
+ @uploader.retrieve_from_store!('monkey.txt')
301
+ @uploader.filename.should be_nil
302
+ end
303
+ end
304
+ end
305
+
306
+ end
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: durran-carrierwave
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2.3
5
+ platform: ruby
6
+ authors:
7
+ - Jonas Nicklas
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-08-28 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.2.8
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: cucumber
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.96
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: activerecord
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.3.3
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: dm-core
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.11
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: sequel
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 3.2.0
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: rmagick
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 2.10.0
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: mongomapper
77
+ type: :development
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.3.3
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: hoe
87
+ type: :development
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 2.3.2
94
+ version:
95
+ description: "* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/]. * Source code {hosted at GitHub}[http://github.com/jnicklas/carrierwave] * Please {report any issues}[http://github.com/jnicklas/carrierwave/issues] on GitHub * Please direct any questions at the {mailing list}[http://groups.google.com/group/carrierwave]"
96
+ email:
97
+ - jonas.nicklas@gmail.com
98
+ executables: []
99
+
100
+ extensions: []
101
+
102
+ extra_rdoc_files:
103
+ - History.txt
104
+ - Manifest.txt
105
+ - features/fixtures/bork.txt
106
+ - features/fixtures/monkey.txt
107
+ - README.rdoc
108
+ - LICENSE
109
+ files:
110
+ - Generators
111
+ - History.txt
112
+ - Manifest.txt
113
+ - README.rdoc
114
+ - Rakefile
115
+ - carrierwave.gemspec
116
+ - cucumber.yml
117
+ - features/caching.feature
118
+ - features/file_storage.feature
119
+ - features/file_storage_overridden_filename.feature
120
+ - features/file_storage_overridden_store_dir.feature
121
+ - features/file_storage_reversing_processor.feature
122
+ - features/fixtures/bork.txt
123
+ - features/fixtures/monkey.txt
124
+ - features/mount_activerecord.feature
125
+ - features/mount_datamapper.feature
126
+ - features/step_definitions/activerecord_steps.rb
127
+ - features/step_definitions/caching_steps.rb
128
+ - features/step_definitions/datamapper_steps.rb
129
+ - features/step_definitions/file_steps.rb
130
+ - features/step_definitions/general_steps.rb
131
+ - features/step_definitions/mount_steps.rb
132
+ - features/step_definitions/store_steps.rb
133
+ - features/support/activerecord.rb
134
+ - features/support/datamapper.rb
135
+ - features/support/env.rb
136
+ - features/versions_basics.feature
137
+ - features/versions_nested_versions.feature
138
+ - features/versions_overridden_filename.feature
139
+ - features/versions_overriden_store_dir.feature
140
+ - lib/carrierwave.rb
141
+ - lib/carrierwave/compatibility/paperclip.rb
142
+ - lib/carrierwave/core_ext/blank.rb
143
+ - lib/carrierwave/core_ext/inheritable_attributes.rb
144
+ - lib/carrierwave/core_ext/module_setup.rb
145
+ - lib/carrierwave/mount.rb
146
+ - lib/carrierwave/orm/activerecord.rb
147
+ - lib/carrierwave/orm/datamapper.rb
148
+ - lib/carrierwave/orm/mongomapper.rb
149
+ - lib/carrierwave/orm/sequel.rb
150
+ - lib/carrierwave/processing/image_science.rb
151
+ - lib/carrierwave/processing/rmagick.rb
152
+ - lib/carrierwave/sanitized_file.rb
153
+ - lib/carrierwave/storage/abstract.rb
154
+ - lib/carrierwave/storage/file.rb
155
+ - lib/carrierwave/storage/s3.rb
156
+ - lib/carrierwave/test/matchers.rb
157
+ - lib/carrierwave/uploader.rb
158
+ - lib/carrierwave/uploader/cache.rb
159
+ - lib/carrierwave/uploader/callbacks.rb
160
+ - lib/carrierwave/uploader/default_path.rb
161
+ - lib/carrierwave/uploader/extension_whitelist.rb
162
+ - lib/carrierwave/uploader/mountable.rb
163
+ - lib/carrierwave/uploader/paths.rb
164
+ - lib/carrierwave/uploader/processing.rb
165
+ - lib/carrierwave/uploader/proxy.rb
166
+ - lib/carrierwave/uploader/remove.rb
167
+ - lib/carrierwave/uploader/store.rb
168
+ - lib/carrierwave/uploader/url.rb
169
+ - lib/carrierwave/uploader/versions.rb
170
+ - lib/generators/uploader_generator.rb
171
+ - rails_generators/uploader/USAGE
172
+ - rails_generators/uploader/templates/uploader.rb
173
+ - rails_generators/uploader/uploader_generator.rb
174
+ - script/console
175
+ - script/destroy
176
+ - script/generate
177
+ - spec/compatibility/paperclip_spec.rb
178
+ - spec/fixtures/bork.txt
179
+ - spec/fixtures/test.jpeg
180
+ - spec/fixtures/test.jpg
181
+ - spec/mount_spec.rb
182
+ - spec/orm/activerecord_spec.rb
183
+ - spec/orm/datamapper_spec.rb
184
+ - spec/orm/mongomapper_spec.rb
185
+ - spec/orm/sequel_spec.rb
186
+ - spec/sanitized_file_spec.rb
187
+ - spec/spec_helper.rb
188
+ - spec/uploader/cache_spec.rb
189
+ - spec/uploader/default_path_spec.rb
190
+ - spec/uploader/extension_whitelist_spec.rb
191
+ - spec/uploader/mountable_spec.rb
192
+ - spec/uploader/paths_spec.rb
193
+ - spec/uploader/processing_spec.rb
194
+ - spec/uploader/proxy_spec.rb
195
+ - spec/uploader/remove_spec.rb
196
+ - spec/uploader/store_spec.rb
197
+ - spec/uploader/url_spec.rb
198
+ - spec/uploader/versions_spec.rb
199
+ - LICENSE
200
+ has_rdoc: false
201
+ homepage: http://carrierwave.rubyforge.org
202
+ post_install_message:
203
+ rdoc_options:
204
+ - --main
205
+ - README.rdoc
206
+ require_paths:
207
+ - lib
208
+ required_ruby_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: "0"
213
+ version:
214
+ required_rubygems_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: "0"
219
+ version:
220
+ requirements: []
221
+
222
+ rubyforge_project: carrierwave
223
+ rubygems_version: 1.2.0
224
+ signing_key:
225
+ specification_version: 3
226
+ summary: "* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/]"
227
+ test_files: []
228
+