winton-attachment_fu 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. metadata +16 -14
  2. data/CHANGELOG +0 -35
  3. data/README +0 -186
  4. data/Rakefile +0 -22
  5. data/amazon_s3.yml.tpl +0 -14
  6. data/init.rb +0 -17
  7. data/install.rb +0 -5
  8. data/lib/geometry.rb +0 -93
  9. data/lib/technoweenie/attachment_fu.rb +0 -473
  10. data/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +0 -39
  11. data/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +0 -101
  12. data/lib/technoweenie/attachment_fu/backends/s3_backend.rb +0 -303
  13. data/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +0 -59
  14. data/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +0 -54
  15. data/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +0 -61
  16. data/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +0 -59
  17. data/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +0 -54
  18. data/test/backends/db_file_test.rb +0 -16
  19. data/test/backends/file_system_test.rb +0 -80
  20. data/test/backends/remote/s3_test.rb +0 -119
  21. data/test/base_attachment_tests.rb +0 -77
  22. data/test/basic_test.rb +0 -70
  23. data/test/database.yml +0 -18
  24. data/test/extra_attachment_test.rb +0 -67
  25. data/test/fixtures/attachment.rb +0 -148
  26. data/test/fixtures/files/fake/rails.png +0 -0
  27. data/test/fixtures/files/foo.txt +0 -1
  28. data/test/fixtures/files/rails.png +0 -0
  29. data/test/geometry_test.rb +0 -101
  30. data/test/processors/core_image_test.rb +0 -37
  31. data/test/processors/gd2_test.rb +0 -31
  32. data/test/processors/image_science_test.rb +0 -31
  33. data/test/processors/mini_magick_test.rb +0 -31
  34. data/test/processors/rmagick_test.rb +0 -255
  35. data/test/schema.rb +0 -108
  36. data/test/test_helper.rb +0 -150
  37. data/test/validation_test.rb +0 -55
  38. data/vendor/red_artisan/core_image/filters/color.rb +0 -27
  39. data/vendor/red_artisan/core_image/filters/effects.rb +0 -31
  40. data/vendor/red_artisan/core_image/filters/perspective.rb +0 -25
  41. data/vendor/red_artisan/core_image/filters/quality.rb +0 -25
  42. data/vendor/red_artisan/core_image/filters/scale.rb +0 -47
  43. data/vendor/red_artisan/core_image/filters/watermark.rb +0 -32
  44. data/vendor/red_artisan/core_image/processor.rb +0 -123
@@ -1,37 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
-
3
- class CoreImageTest < Test::Unit::TestCase
4
- attachment_model CoreImageAttachment
5
-
6
- if Object.const_defined?(:OSX)
7
- def test_should_resize_image
8
- attachment = upload_file :filename => '/files/rails.png'
9
- assert_valid attachment
10
- assert attachment.image?
11
- # test core image thumbnail
12
- assert_equal 42, attachment.width
13
- assert_equal 55, attachment.height
14
-
15
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
16
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
17
-
18
- # test exact resize dimensions
19
- assert_equal 50, thumb.width
20
- assert_equal 51, thumb.height
21
-
22
- # test geometry string
23
- assert_equal 31, geo.width
24
- assert_equal 41, geo.height
25
-
26
- # This makes sure that we didn't overwrite the original file
27
- # and will end up with a thumbnail instead of the original
28
- assert_equal 42, attachment.width
29
- assert_equal 55, attachment.height
30
-
31
- end
32
- else
33
- def test_flunk
34
- puts "CoreImage not loaded, tests not running"
35
- end
36
- end
37
- end
@@ -1,31 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
-
3
- class GD2Test < Test::Unit::TestCase
4
- attachment_model GD2Attachment
5
-
6
- if Object.const_defined?(:GD2)
7
- def test_should_resize_image
8
- attachment = upload_file :filename => '/files/rails.png'
9
- assert_valid attachment
10
- assert attachment.image?
11
- # test gd2 thumbnail
12
- assert_equal 43, attachment.width
13
- assert_equal 55, attachment.height
14
-
15
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
16
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
17
-
18
- # test exact resize dimensions
19
- assert_equal 50, thumb.width
20
- assert_equal 51, thumb.height
21
-
22
- # test geometry string
23
- assert_equal 31, geo.width
24
- assert_equal 40, geo.height
25
- end
26
- else
27
- def test_flunk
28
- puts "GD2 not loaded, tests not running"
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
-
3
- class ImageScienceTest < Test::Unit::TestCase
4
- attachment_model ImageScienceAttachment
5
-
6
- if Object.const_defined?(:ImageScience)
7
- def test_should_resize_image
8
- attachment = upload_file :filename => '/files/rails.png'
9
- assert_valid attachment
10
- assert attachment.image?
11
- # test image science thumbnail
12
- assert_equal 42, attachment.width
13
- assert_equal 55, attachment.height
14
-
15
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
16
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
17
-
18
- # test exact resize dimensions
19
- assert_equal 50, thumb.width
20
- assert_equal 51, thumb.height
21
-
22
- # test geometry string
23
- assert_equal 31, geo.width
24
- assert_equal 41, geo.height
25
- end
26
- else
27
- def test_flunk
28
- puts "ImageScience not loaded, tests not running"
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
-
3
- class MiniMagickTest < Test::Unit::TestCase
4
- attachment_model MiniMagickAttachment
5
-
6
- if Object.const_defined?(:MiniMagick)
7
- def test_should_resize_image
8
- attachment = upload_file :filename => '/files/rails.png'
9
- assert_valid attachment
10
- assert attachment.image?
11
- # test MiniMagick thumbnail
12
- assert_equal 43, attachment.width
13
- assert_equal 55, attachment.height
14
-
15
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
16
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
17
-
18
- # test exact resize dimensions
19
- assert_equal 50, thumb.width
20
- assert_equal 51, thumb.height
21
-
22
- # test geometry string
23
- assert_equal 31, geo.width
24
- assert_equal 40, geo.height
25
- end
26
- else
27
- def test_flunk
28
- puts "MiniMagick not loaded, tests not running"
29
- end
30
- end
31
- end
@@ -1,255 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
-
3
- class RmagickTest < Test::Unit::TestCase
4
- attachment_model Attachment
5
-
6
- if Object.const_defined?(:Magick)
7
- def test_should_create_image_from_uploaded_file
8
- assert_created do
9
- attachment = upload_file :filename => '/files/rails.png'
10
- assert_valid attachment
11
- assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
12
- assert attachment.image?
13
- assert !attachment.size.zero?
14
- #assert_equal 1784, attachment.size
15
- assert_equal 50, attachment.width
16
- assert_equal 64, attachment.height
17
- assert_equal '50x64', attachment.image_size
18
- end
19
- end
20
-
21
- def test_should_create_image_from_uploaded_file_with_custom_content_type
22
- assert_created do
23
- attachment = upload_file :content_type => 'foo/bar', :filename => '/files/rails.png'
24
- assert_valid attachment
25
- assert !attachment.image?
26
- assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
27
- assert !attachment.size.zero?
28
- #assert_equal 1784, attachment.size
29
- assert_nil attachment.width
30
- assert_nil attachment.height
31
- assert_equal [], attachment.thumbnails
32
- end
33
- end
34
-
35
- def test_should_create_thumbnail
36
- attachment = upload_file :filename => '/files/rails.png'
37
-
38
- assert_created do
39
- basename, ext = attachment.filename.split '.'
40
- thumbnail = attachment.create_or_update_thumbnail(attachment.create_temp_file, 'thumb', 50, 50)
41
- assert_valid thumbnail
42
- assert !thumbnail.size.zero?
43
- #assert_in_delta 4673, thumbnail.size, 2
44
- assert_equal 50, thumbnail.width
45
- assert_equal 50, thumbnail.height
46
- assert_equal [thumbnail.id], attachment.thumbnails.collect(&:id)
47
- assert_equal attachment.id, thumbnail.parent_id if thumbnail.respond_to?(:parent_id)
48
- assert_equal "#{basename}_thumb.#{ext}", thumbnail.filename
49
- end
50
- end
51
-
52
- def test_should_create_thumbnail_with_geometry_string
53
- attachment = upload_file :filename => '/files/rails.png'
54
-
55
- assert_created do
56
- basename, ext = attachment.filename.split '.'
57
- thumbnail = attachment.create_or_update_thumbnail(attachment.create_temp_file, 'thumb', 'x50')
58
- assert_valid thumbnail
59
- assert !thumbnail.size.zero?
60
- #assert_equal 3915, thumbnail.size
61
- assert_equal 39, thumbnail.width
62
- assert_equal 50, thumbnail.height
63
- assert_equal [thumbnail], attachment.thumbnails
64
- assert_equal attachment.id, thumbnail.parent_id if thumbnail.respond_to?(:parent_id)
65
- assert_equal "#{basename}_thumb.#{ext}", thumbnail.filename
66
- end
67
- end
68
-
69
- def test_should_resize_image(klass = ImageAttachment)
70
- attachment_model klass
71
- assert_equal [50, 50], attachment_model.attachment_options[:resize_to]
72
- attachment = upload_file :filename => '/files/rails.png'
73
- assert_valid attachment
74
- assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
75
- assert attachment.image?
76
- assert !attachment.size.zero?
77
- #assert_in_delta 4673, attachment.size, 2
78
- assert_equal 50, attachment.width
79
- assert_equal 50, attachment.height
80
- end
81
-
82
- test_against_subclass :test_should_resize_image, ImageAttachment
83
-
84
- def test_should_resize_image_with_geometry(klass = ImageOrPdfAttachment)
85
- attachment_model klass
86
- assert_equal 'x50', attachment_model.attachment_options[:resize_to]
87
- attachment = upload_file :filename => '/files/rails.png'
88
- assert_valid attachment
89
- assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
90
- assert attachment.image?
91
- assert !attachment.size.zero?
92
- #assert_equal 3915, attachment.size
93
- assert_equal 39, attachment.width
94
- assert_equal 50, attachment.height
95
- end
96
-
97
- test_against_subclass :test_should_resize_image_with_geometry, ImageOrPdfAttachment
98
-
99
- def test_should_give_correct_thumbnail_filenames(klass = ImageWithThumbsFileAttachment)
100
- attachment_model klass
101
- assert_created 3 do
102
- attachment = upload_file :filename => '/files/rails.png'
103
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
104
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
105
-
106
- [attachment, thumb, geo].each { |record| assert_valid record }
107
-
108
- assert_match /rails\.png$/, attachment.full_filename
109
- assert_match /rails_geometry\.png$/, attachment.full_filename(:geometry)
110
- assert_match /rails_thumb\.png$/, attachment.full_filename(:thumb)
111
- end
112
- end
113
-
114
- test_against_subclass :test_should_give_correct_thumbnail_filenames, ImageWithThumbsFileAttachment
115
-
116
- def test_should_automatically_create_thumbnails(klass = ImageWithThumbsAttachment)
117
- attachment_model klass
118
- assert_created 3 do
119
- attachment = upload_file :filename => '/files/rails.png'
120
- assert_valid attachment
121
- assert !attachment.size.zero?
122
- #assert_equal 1784, attachment.size
123
- assert_equal 55, attachment.width
124
- assert_equal 55, attachment.height
125
- assert_equal 2, attachment.thumbnails.length
126
- assert_equal 1.0, attachment.aspect_ratio
127
-
128
- thumb = attachment.thumbnails.detect { |t| t.filename =~ /_thumb/ }
129
- assert !thumb.new_record?, thumb.errors.full_messages.join("\n")
130
- assert !thumb.size.zero?
131
- #assert_in_delta 4673, thumb.size, 2
132
- assert_equal 50, thumb.width
133
- assert_equal 50, thumb.height
134
- assert_equal 1.0, thumb.aspect_ratio
135
-
136
- geo = attachment.thumbnails.detect { |t| t.filename =~ /_geometry/ }
137
- assert !geo.new_record?, geo.errors.full_messages.join("\n")
138
- assert !geo.size.zero?
139
- #assert_equal 3915, geo.size
140
- assert_equal 50, geo.width
141
- assert_equal 50, geo.height
142
- assert_equal 1.0, geo.aspect_ratio
143
- end
144
- end
145
-
146
- test_against_subclass :test_should_automatically_create_thumbnails, ImageWithThumbsAttachment
147
-
148
- # same as above method, but test it on a file model
149
- test_against_class :test_should_automatically_create_thumbnails, ImageWithThumbsFileAttachment
150
- test_against_subclass :test_should_automatically_create_thumbnails_on_class, ImageWithThumbsFileAttachment
151
-
152
- def test_should_use_thumbnail_subclass(klass = ImageWithThumbsClassFileAttachment)
153
- attachment_model klass
154
- attachment = nil
155
- assert_difference ImageThumbnail, :count do
156
- attachment = upload_file :filename => '/files/rails.png'
157
- assert_valid attachment
158
- end
159
- assert_kind_of ImageThumbnail, attachment.thumbnails.first
160
- if attachment.thumbnails.first.respond_to?(:parent)
161
- assert_equal attachment.id, attachment.thumbnails.first.parent.id
162
- assert_kind_of FileAttachment, attachment.thumbnails.first.parent
163
- end
164
- assert_equal 'rails_thumb.png', attachment.thumbnails.first.filename
165
- assert_equal attachment.thumbnails.first.full_filename, attachment.full_filename(attachment.thumbnails.first.thumbnail),
166
- "#full_filename does not use thumbnail class' path."
167
- assert_equal attachment.destroy, attachment
168
- end
169
-
170
- test_against_subclass :test_should_use_thumbnail_subclass, ImageWithThumbsClassFileAttachment
171
-
172
- def test_should_remove_old_thumbnail_files_when_updating(klass = ImageWithThumbsFileAttachment)
173
- attachment_model klass
174
- attachment = nil
175
- assert_created 3 do
176
- attachment = upload_file :filename => '/files/rails.png'
177
- end
178
-
179
- old_filenames = [attachment.full_filename] + attachment.thumbnails.collect(&:full_filename)
180
-
181
- assert_not_created do
182
- use_temp_file "files/rails.png" do |file|
183
- attachment.filename = 'rails2.png'
184
- attachment.temp_path = File.join(fixture_path, file)
185
- attachment.save
186
- new_filenames = [attachment.reload.full_filename] + attachment.thumbnails.collect { |t| t.reload.full_filename }
187
- new_filenames.each { |f| assert File.exists?(f), "#{f} does not exist" }
188
- old_filenames.each { |f| assert !File.exists?(f), "#{f} still exists" }
189
- end
190
- end
191
- end
192
-
193
- test_against_subclass :test_should_remove_old_thumbnail_files_when_updating, ImageWithThumbsFileAttachment
194
-
195
- def test_should_delete_file_when_in_file_system_when_attachment_record_destroyed(klass = ImageWithThumbsFileAttachment)
196
- attachment_model klass
197
- attachment = upload_file :filename => '/files/rails.png'
198
- filenames = [attachment.full_filename] + attachment.thumbnails.collect(&:full_filename)
199
- filenames.each { |f| assert File.exists?(f), "#{f} never existed to delete on destroy" }
200
- attachment.destroy
201
- filenames.each { |f| assert !File.exists?(f), "#{f} still exists" }
202
- end
203
-
204
- test_against_subclass :test_should_delete_file_when_in_file_system_when_attachment_record_destroyed, ImageWithThumbsFileAttachment
205
-
206
- def test_should_have_full_filename_method(klass = FileAttachment)
207
- attachment_model klass
208
- attachment = upload_file :filename => '/files/rails.png'
209
- assert_respond_to attachment, :full_filename
210
- end
211
-
212
- test_against_subclass :test_should_have_full_filename_method, FileAttachment
213
-
214
- def test_should_overwrite_old_thumbnail_records_when_updating(klass = ImageWithThumbsAttachment)
215
- attachment_model klass
216
- attachment = nil
217
- assert_created 3 do
218
- attachment = upload_file :filename => '/files/rails.png'
219
- end
220
- assert_not_created do # no new db_file records
221
- use_temp_file "files/rails.png" do |file|
222
- attachment.filename = 'rails2.png'
223
- # The above test (#test_should_have_full_filename_method) to pass before be can set the temp_path below --
224
- # #temp_path calls #full_filename, which is not getting mixed into the attachment. Maybe we don't need to
225
- # set temp_path at all?
226
- #
227
- # attachment.temp_path = File.join(fixture_path, file)
228
- attachment.save!
229
- end
230
- end
231
- end
232
-
233
- test_against_subclass :test_should_overwrite_old_thumbnail_records_when_updating, ImageWithThumbsAttachment
234
-
235
- def test_should_overwrite_old_thumbnail_records_when_renaming(klass = ImageWithThumbsAttachment)
236
- attachment_model klass
237
- attachment = nil
238
- assert_created 3 do
239
- attachment = upload_file :class => klass, :filename => '/files/rails.png'
240
- end
241
- assert_not_created do # no new db_file records
242
- attachment.filename = 'rails2.png'
243
- attachment.save
244
- assert !attachment.reload.size.zero?
245
- assert_equal 'rails2.png', attachment.filename
246
- end
247
- end
248
-
249
- test_against_subclass :test_should_overwrite_old_thumbnail_records_when_renaming, ImageWithThumbsAttachment
250
- else
251
- def test_flunk
252
- puts "RMagick not installed, no tests running"
253
- end
254
- end
255
- end
@@ -1,108 +0,0 @@
1
- ActiveRecord::Schema.define(:version => 0) do
2
- create_table :attachments, :force => true do |t|
3
- t.column :db_file_id, :integer
4
- t.column :parent_id, :integer
5
- t.column :thumbnail, :string
6
- t.column :filename, :string, :limit => 255
7
- t.column :content_type, :string, :limit => 255
8
- t.column :size, :integer
9
- t.column :width, :integer
10
- t.column :height, :integer
11
- t.column :aspect_ratio, :float
12
- end
13
-
14
- create_table :file_attachments, :force => true do |t|
15
- t.column :parent_id, :integer
16
- t.column :thumbnail, :string
17
- t.column :filename, :string, :limit => 255
18
- t.column :content_type, :string, :limit => 255
19
- t.column :size, :integer
20
- t.column :width, :integer
21
- t.column :height, :integer
22
- t.column :type, :string
23
- t.column :aspect_ratio, :float
24
- end
25
-
26
- create_table :gd2_attachments, :force => true do |t|
27
- t.column :parent_id, :integer
28
- t.column :thumbnail, :string
29
- t.column :filename, :string, :limit => 255
30
- t.column :content_type, :string, :limit => 255
31
- t.column :size, :integer
32
- t.column :width, :integer
33
- t.column :height, :integer
34
- t.column :type, :string
35
- end
36
-
37
- create_table :image_science_attachments, :force => true do |t|
38
- t.column :parent_id, :integer
39
- t.column :thumbnail, :string
40
- t.column :filename, :string, :limit => 255
41
- t.column :content_type, :string, :limit => 255
42
- t.column :size, :integer
43
- t.column :width, :integer
44
- t.column :height, :integer
45
- t.column :type, :string
46
- end
47
-
48
- create_table :core_image_attachments, :force => true do |t|
49
- t.column :parent_id, :integer
50
- t.column :thumbnail, :string
51
- t.column :filename, :string, :limit => 255
52
- t.column :content_type, :string, :limit => 255
53
- t.column :size, :integer
54
- t.column :width, :integer
55
- t.column :height, :integer
56
- t.column :type, :string
57
- end
58
-
59
- create_table :mini_magick_attachments, :force => true do |t|
60
- t.column :parent_id, :integer
61
- t.column :thumbnail, :string
62
- t.column :filename, :string, :limit => 255
63
- t.column :content_type, :string, :limit => 255
64
- t.column :size, :integer
65
- t.column :width, :integer
66
- t.column :height, :integer
67
- t.column :type, :string
68
- end
69
-
70
- create_table :mini_magick_attachments, :force => true do |t|
71
- t.column :parent_id, :integer
72
- t.column :thumbnail, :string
73
- t.column :filename, :string, :limit => 255
74
- t.column :content_type, :string, :limit => 255
75
- t.column :size, :integer
76
- t.column :width, :integer
77
- t.column :height, :integer
78
- t.column :type, :string
79
- end
80
-
81
- create_table :orphan_attachments, :force => true do |t|
82
- t.column :db_file_id, :integer
83
- t.column :filename, :string, :limit => 255
84
- t.column :content_type, :string, :limit => 255
85
- t.column :size, :integer
86
- end
87
-
88
- create_table :minimal_attachments, :force => true do |t|
89
- t.column :size, :integer
90
- t.column :content_type, :string, :limit => 255
91
- end
92
-
93
- create_table :db_files, :force => true do |t|
94
- t.column :data, :binary
95
- end
96
-
97
- create_table :s3_attachments, :force => true do |t|
98
- t.column :parent_id, :integer
99
- t.column :thumbnail, :string
100
- t.column :filename, :string, :limit => 255
101
- t.column :content_type, :string, :limit => 255
102
- t.column :size, :integer
103
- t.column :width, :integer
104
- t.column :height, :integer
105
- t.column :type, :string
106
- t.column :aspect_ratio, :float
107
- end
108
- end