avatar 0.0.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/History.txt +7 -0
  2. data/{README.txt → README.rdoc} +12 -4
  3. data/init.rb +5 -0
  4. data/lib/avatar.rb +3 -2
  5. data/lib/avatar/source/pavatar_source.rb +109 -0
  6. data/lib/avatar/source/wrapper/rails_asset_source_wrapper.rb +3 -1
  7. data/lib/avatar/version.rb +2 -2
  8. data/rails/init.rb +1 -0
  9. metadata +28 -125
  10. data/.gitignore +0 -8
  11. data/Manifest.txt +0 -104
  12. data/Rakefile +0 -10
  13. data/config/hoe.rb +0 -70
  14. data/config/requirements.rb +0 -17
  15. data/script/destroy +0 -14
  16. data/script/generate +0 -14
  17. data/script/txt2html +0 -74
  18. data/setup.rb +0 -1585
  19. data/tasks/deployment.rake +0 -34
  20. data/tasks/environment.rake +0 -7
  21. data/tasks/testing.rake +0 -37
  22. data/tasks/website.rake +0 -17
  23. data/test/.gitignore +0 -3
  24. data/test/lib/database.rb +0 -2
  25. data/test/lib/database.yml +0 -10
  26. data/test/lib/file_column/CHANGELOG +0 -69
  27. data/test/lib/file_column/README +0 -54
  28. data/test/lib/file_column/Rakefile +0 -36
  29. data/test/lib/file_column/TODO +0 -6
  30. data/test/lib/file_column/init.rb +0 -13
  31. data/test/lib/file_column/lib/file_column.rb +0 -720
  32. data/test/lib/file_column/lib/file_column_helper.rb +0 -150
  33. data/test/lib/file_column/lib/file_compat.rb +0 -28
  34. data/test/lib/file_column/lib/magick_file_column.rb +0 -260
  35. data/test/lib/file_column/lib/rails_file_column.rb +0 -19
  36. data/test/lib/file_column/lib/test_case.rb +0 -124
  37. data/test/lib/file_column/lib/validations.rb +0 -112
  38. data/test/lib/file_column/test/abstract_unit.rb +0 -63
  39. data/test/lib/file_column/test/connection.rb +0 -17
  40. data/test/lib/file_column/test/file_column_helper_test.rb +0 -97
  41. data/test/lib/file_column/test/file_column_test.rb +0 -650
  42. data/test/lib/file_column/test/fixtures/entry.rb +0 -32
  43. data/test/lib/file_column/test/fixtures/invalid-image.jpg +0 -1
  44. data/test/lib/file_column/test/fixtures/kerb.jpg +0 -0
  45. data/test/lib/file_column/test/fixtures/mysql.sql +0 -25
  46. data/test/lib/file_column/test/fixtures/schema.rb +0 -10
  47. data/test/lib/file_column/test/fixtures/skanthak.png +0 -0
  48. data/test/lib/file_column/test/magick_test.rb +0 -380
  49. data/test/lib/file_column/test/magick_view_only_test.rb +0 -21
  50. data/test/lib/paperclip/README +0 -32
  51. data/test/lib/paperclip/Rakefile +0 -41
  52. data/test/lib/paperclip/generators/paperclip/USAGE +0 -5
  53. data/test/lib/paperclip/generators/paperclip/paperclip_generator.rb +0 -27
  54. data/test/lib/paperclip/generators/paperclip/templates/paperclip_migration.rb +0 -17
  55. data/test/lib/paperclip/init.rb +0 -3
  56. data/test/lib/paperclip/lib/paperclip.rb +0 -197
  57. data/test/lib/paperclip/lib/paperclip/attachment.rb +0 -230
  58. data/test/lib/paperclip/lib/paperclip/geometry.rb +0 -109
  59. data/test/lib/paperclip/lib/paperclip/iostream.rb +0 -43
  60. data/test/lib/paperclip/lib/paperclip/thumbnail.rb +0 -80
  61. data/test/lib/paperclip/lib/paperclip/upfile.rb +0 -32
  62. data/test/lib/paperclip/tasks/paperclip_tasks.rake +0 -38
  63. data/test/lib/paperclip/test/database.yml +0 -5
  64. data/test/lib/paperclip/test/fixtures/12k.png +0 -0
  65. data/test/lib/paperclip/test/fixtures/5k.png +0 -0
  66. data/test/lib/paperclip/test/fixtures/bad.png +0 -1
  67. data/test/lib/paperclip/test/helper.rb +0 -38
  68. data/test/lib/paperclip/test/test_attachment.rb +0 -99
  69. data/test/lib/paperclip/test/test_geometry.rb +0 -142
  70. data/test/lib/paperclip/test/test_integration.rb +0 -76
  71. data/test/lib/paperclip/test/test_iostream.rb +0 -60
  72. data/test/lib/paperclip/test/test_paperclip.rb +0 -83
  73. data/test/lib/paperclip/test/test_thumbnail.rb +0 -76
  74. data/test/lib/schema.rb +0 -20
  75. data/test/lib/user_suit.png +0 -0
  76. data/test/test_abstract_view_support.rb +0 -22
  77. data/test/test_action_view_support.rb +0 -30
  78. data/test/test_avatar.rb +0 -12
  79. data/test/test_file_column_source.rb +0 -38
  80. data/test/test_gravatar_source.rb +0 -79
  81. data/test/test_helper.rb +0 -27
  82. data/test/test_nil_source.rb +0 -18
  83. data/test/test_paperclip_source.rb +0 -52
  84. data/test/test_rails_asset_source_wrapper.rb +0 -37
  85. data/test/test_source_chain.rb +0 -44
  86. data/test/test_static_url_source.rb +0 -18
  87. data/test/test_string_substitution_source_wrapper.rb +0 -25
  88. data/website/index.html +0 -105
  89. data/website/index.txt +0 -48
  90. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  91. data/website/stylesheets/screen.css +0 -138
  92. data/website/template.rhtml +0 -48
@@ -1,32 +0,0 @@
1
- class Entry < ActiveRecord::Base
2
- attr_accessor :validation_should_fail
3
-
4
- def validate
5
- errors.add("image","some stupid error") if @validation_should_fail
6
- end
7
-
8
- def after_assign
9
- @after_assign_called = true
10
- end
11
-
12
- def after_assign_called?
13
- @after_assign_called
14
- end
15
-
16
- def after_save
17
- @after_save_called = true
18
- end
19
-
20
- def after_save_called?
21
- @after_save_called
22
- end
23
-
24
- def my_store_dir
25
- # not really dynamic but at least it could be...
26
- "my_store_dir"
27
- end
28
-
29
- def load_image_with_rmagick(path)
30
- Magick::Image::read(path).first
31
- end
32
- end
@@ -1 +0,0 @@
1
- this is certainly not a JPEG image
@@ -1,25 +0,0 @@
1
- -- MySQL dump 9.11
2
- --
3
- -- Host: localhost Database: file_column_test
4
- -- ------------------------------------------------------
5
- -- Server version 4.0.24
6
-
7
- --
8
- -- Table structure for table `entries`
9
- --
10
-
11
- DROP TABLE IF EXISTS entries;
12
- CREATE TABLE entries (
13
- id int(11) NOT NULL auto_increment,
14
- image varchar(200) default NULL,
15
- file varchar(200) NOT NULL,
16
- PRIMARY KEY (id)
17
- ) TYPE=MyISAM;
18
-
19
- DROP TABLE IF EXISTS movies;
20
- CREATE TABLE movies (
21
- id int(11) NOT NULL auto_increment,
22
- movie varchar(200) default NULL,
23
- PRIMARY KEY (id)
24
- ) TYPE=MyISAM;
25
-
@@ -1,10 +0,0 @@
1
- ActiveRecord::Schema.define do
2
- create_table :entries, :force => true do |t|
3
- t.column :image, :string, :null => true
4
- t.column :file, :string, :null => false
5
- end
6
-
7
- create_table :movies, :force => true do |t|
8
- t.column :movie, :string
9
- end
10
- end
@@ -1,380 +0,0 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
- require 'RMagick'
3
- require File.dirname(__FILE__) + '/fixtures/entry'
4
-
5
-
6
- class AbstractRMagickTest < Test::Unit::TestCase
7
- def teardown
8
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
9
- end
10
-
11
- def test_truth
12
- assert true
13
- end
14
-
15
- private
16
-
17
- def read_image(path)
18
- Magick::Image::read(path).first
19
- end
20
-
21
- def assert_max_image_size(img, s)
22
- assert img.columns <= s, "img has #{img.columns} columns, expected: #{s}"
23
- assert img.rows <= s, "img has #{img.rows} rows, expected: #{s}"
24
- assert_equal s, [img.columns, img.rows].max
25
- end
26
- end
27
-
28
- class RMagickSimpleTest < AbstractRMagickTest
29
- def setup
30
- Entry.file_column :image, :magick => { :geometry => "100x100" }
31
- end
32
-
33
- def test_simple_resize_without_save
34
- e = Entry.new
35
- e.image = upload(f("kerb.jpg"))
36
-
37
- img = read_image(e.image)
38
- assert_max_image_size img, 100
39
- end
40
-
41
- def test_simple_resize_with_save
42
- e = Entry.new
43
- e.image = upload(f("kerb.jpg"))
44
- assert e.save
45
- e.reload
46
-
47
- img = read_image(e.image)
48
- assert_max_image_size img, 100
49
- end
50
-
51
- def test_resize_on_saved_image
52
- Entry.file_column :image, :magick => { :geometry => "100x100" }
53
-
54
- e = Entry.new
55
- e.image = upload(f("skanthak.png"))
56
- assert e.save
57
- e.reload
58
- old_path = e.image
59
-
60
- e.image = upload(f("kerb.jpg"))
61
- assert e.save
62
- assert "kerb.jpg", File.basename(e.image)
63
- assert !File.exists?(old_path), "old image '#{old_path}' still exists"
64
-
65
- img = read_image(e.image)
66
- assert_max_image_size img, 100
67
- end
68
-
69
- def test_invalid_image
70
- e = Entry.new
71
- assert_nothing_raised { e.image = upload(f("invalid-image.jpg")) }
72
- assert !e.valid?
73
- end
74
-
75
- def test_serializable
76
- e = Entry.new
77
- e.image = upload(f("skanthak.png"))
78
- assert_nothing_raised {
79
- flash = Marshal.dump(e)
80
- e = Marshal.load(flash)
81
- }
82
- assert File.exists?(e.image)
83
- end
84
-
85
- def test_imagemagick_still_usable
86
- e = Entry.new
87
- assert_nothing_raised {
88
- img = e.load_image_with_rmagick(file_path("skanthak.png"))
89
- assert img.kind_of?(Magick::Image)
90
- }
91
- end
92
- end
93
-
94
- class RMagickRequiresImageTest < AbstractRMagickTest
95
- def setup
96
- Entry.file_column :image, :magick => {
97
- :size => "100x100>",
98
- :image_required => false,
99
- :versions => {
100
- :thumb => "80x80>",
101
- :large => {:size => "200x200>", :lazy => true}
102
- }
103
- }
104
- end
105
-
106
- def test_image_required_with_image
107
- e = Entry.new(:image => upload(f("skanthak.png")))
108
- assert_max_image_size read_image(e.image), 100
109
- assert e.valid?
110
- end
111
-
112
- def test_image_required_with_invalid_image
113
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
114
- assert e.valid?, "did not ignore invalid image"
115
- assert FileUtils.identical?(e.image, f("invalid-image.jpg")), "uploaded file has not been left alone"
116
- end
117
-
118
- def test_versions_with_invalid_image
119
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
120
- assert e.valid?
121
-
122
- image_state = e.send(:image_state)
123
- assert_nil image_state.create_magick_version_if_needed(:thumb)
124
- assert_nil image_state.create_magick_version_if_needed(:large)
125
- assert_nil image_state.create_magick_version_if_needed("300x300>")
126
- end
127
- end
128
-
129
- class RMagickCustomAttributesTest < AbstractRMagickTest
130
- def assert_image_property(img, property, value, text = nil)
131
- assert File.exists?(img), "the image does not exist"
132
- assert_equal value, read_image(img).send(property), text
133
- end
134
-
135
- def test_simple_attributes
136
- Entry.file_column :image, :magick => { :attributes => { :quality => 20 } }
137
- e = Entry.new("image" => upload(f("kerb.jpg")))
138
- assert_image_property e.image, :quality, 20, "the quality was not set"
139
- end
140
-
141
- def test_version_attributes
142
- Entry.file_column :image, :magick => {
143
- :versions => {
144
- :thumb => { :attributes => { :quality => 20 } }
145
- }
146
- }
147
- e = Entry.new("image" => upload(f("kerb.jpg")))
148
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
149
- end
150
-
151
- def test_lazy_attributes
152
- Entry.file_column :image, :magick => {
153
- :versions => {
154
- :thumb => { :attributes => { :quality => 20 }, :lazy => true }
155
- }
156
- }
157
- e = Entry.new("image" => upload(f("kerb.jpg")))
158
- e.send(:image_state).create_magick_version_if_needed(:thumb)
159
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
160
- end
161
- end
162
-
163
- class RMagickVersionsTest < AbstractRMagickTest
164
- def setup
165
- Entry.file_column :image, :magick => {:geometry => "200x200",
166
- :versions => {
167
- :thumb => "50x50",
168
- :medium => {:geometry => "100x100", :name => "100_100"},
169
- :large => {:geometry => "150x150", :lazy => true}
170
- }
171
- }
172
- end
173
-
174
-
175
- def test_should_create_thumb
176
- e = Entry.new("image" => upload(f("skanthak.png")))
177
-
178
- assert File.exists?(e.image("thumb")), "thumb-nail not created"
179
-
180
- assert_max_image_size read_image(e.image("thumb")), 50
181
- end
182
-
183
- def test_version_name_can_be_different_from_key
184
- e = Entry.new("image" => upload(f("skanthak.png")))
185
-
186
- assert File.exists?(e.image("100_100"))
187
- assert !File.exists?(e.image("medium"))
188
- end
189
-
190
- def test_should_not_create_lazy_versions
191
- e = Entry.new("image" => upload(f("skanthak.png")))
192
- assert !File.exists?(e.image("large")), "lazy versions should not be created unless needed"
193
- end
194
-
195
- def test_should_create_lazy_version_on_demand
196
- e = Entry.new("image" => upload(f("skanthak.png")))
197
-
198
- e.send(:image_state).create_magick_version_if_needed(:large)
199
-
200
- assert File.exists?(e.image("large")), "lazy version should be created on demand"
201
-
202
- assert_max_image_size read_image(e.image("large")), 150
203
- end
204
-
205
- def test_generated_name_should_not_change
206
- e = Entry.new("image" => upload(f("skanthak.png")))
207
-
208
- name1 = e.send(:image_state).create_magick_version_if_needed("50x50")
209
- name2 = e.send(:image_state).create_magick_version_if_needed("50x50")
210
- name3 = e.send(:image_state).create_magick_version_if_needed(:geometry => "50x50")
211
- assert_equal name1, name2, "hash value has changed"
212
- assert_equal name1, name3, "hash value has changed"
213
- end
214
-
215
- def test_should_create_version_with_string
216
- e = Entry.new("image" => upload(f("skanthak.png")))
217
-
218
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
219
-
220
- assert File.exists?(e.image(name))
221
-
222
- assert_max_image_size read_image(e.image(name)), 32
223
- end
224
-
225
- def test_should_create_safe_auto_id
226
- e = Entry.new("image" => upload(f("skanthak.png")))
227
-
228
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
229
-
230
- assert_match /^[a-zA-Z0-9]+$/, name
231
- end
232
- end
233
-
234
- class RMagickCroppingTest < AbstractRMagickTest
235
- def setup
236
- Entry.file_column :image, :magick => {:geometry => "200x200",
237
- :versions => {
238
- :thumb => {:crop => "1:1", :geometry => "50x50"}
239
- }
240
- }
241
- end
242
-
243
- def test_should_crop_image_on_upload
244
- e = Entry.new("image" => upload(f("skanthak.png")))
245
-
246
- img = read_image(e.image("thumb"))
247
-
248
- assert_equal 50, img.rows
249
- assert_equal 50, img.columns
250
- end
251
-
252
- end
253
-
254
- class UrlForImageColumnTest < AbstractRMagickTest
255
- include FileColumnHelper
256
-
257
- def setup
258
- Entry.file_column :image, :magick => {
259
- :versions => {:thumb => "50x50"}
260
- }
261
- @request = RequestMock.new
262
- end
263
-
264
- def test_should_use_version_on_symbol_option
265
- e = Entry.new(:image => upload(f("skanthak.png")))
266
-
267
- url = url_for_image_column(e, "image", :thumb)
268
- assert_match %r{^/entry/image/tmp/.+/thumb/skanthak.png$}, url
269
- end
270
-
271
- def test_should_use_string_as_size
272
- e = Entry.new(:image => upload(f("skanthak.png")))
273
-
274
- url = url_for_image_column(e, "image", "50x50")
275
-
276
- assert_match %r{^/entry/image/tmp/.+/.+/skanthak.png$}, url
277
-
278
- url =~ /\/([^\/]+)\/skanthak.png$/
279
- dirname = $1
280
-
281
- assert_max_image_size read_image(e.image(dirname)), 50
282
- end
283
-
284
- def test_should_accept_version_hash
285
- e = Entry.new(:image => upload(f("skanthak.png")))
286
-
287
- url = url_for_image_column(e, "image", :size => "50x50", :crop => "1:1", :name => "small")
288
-
289
- assert_match %r{^/entry/image/tmp/.+/small/skanthak.png$}, url
290
-
291
- img = read_image(e.image("small"))
292
- assert_equal 50, img.rows
293
- assert_equal 50, img.columns
294
- end
295
- end
296
-
297
- class RMagickPermissionsTest < AbstractRMagickTest
298
- def setup
299
- Entry.file_column :image, :magick => {:geometry => "200x200",
300
- :versions => {
301
- :thumb => {:crop => "1:1", :geometry => "50x50"}
302
- }
303
- }, :permissions => 0616
304
- end
305
-
306
- def check_permissions(e)
307
- assert_equal 0616, (File.stat(e.image).mode & 0777)
308
- assert_equal 0616, (File.stat(e.image("thumb")).mode & 0777)
309
- end
310
-
311
- def test_permissions_with_rmagick
312
- e = Entry.new(:image => upload(f("skanthak.png")))
313
-
314
- check_permissions e
315
-
316
- assert e.save
317
-
318
- check_permissions e
319
- end
320
- end
321
-
322
- class Entry
323
- def transform_grey(img)
324
- img.quantize(256, Magick::GRAYColorspace)
325
- end
326
- end
327
-
328
- class RMagickTransformationTest < AbstractRMagickTest
329
- def assert_transformed(image)
330
- assert File.exists?(image), "the image does not exist"
331
- assert 256 > read_image(image).number_colors, "the number of colors was not changed"
332
- end
333
-
334
- def test_simple_transformation
335
- Entry.file_column :image, :magick => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
336
- e = Entry.new("image" => upload(f("skanthak.png")))
337
- assert_transformed(e.image)
338
- end
339
-
340
- def test_simple_version_transformation
341
- Entry.file_column :image, :magick => {
342
- :versions => { :thumb => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
343
- }
344
- e = Entry.new("image" => upload(f("skanthak.png")))
345
- assert_transformed(e.image("thumb"))
346
- end
347
-
348
- def test_complex_version_transformation
349
- Entry.file_column :image, :magick => {
350
- :versions => {
351
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
352
- }
353
- }
354
- e = Entry.new("image" => upload(f("skanthak.png")))
355
- assert_transformed(e.image("thumb"))
356
- end
357
-
358
- def test_lazy_transformation
359
- Entry.file_column :image, :magick => {
360
- :versions => {
361
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) }, :lazy => true }
362
- }
363
- }
364
- e = Entry.new("image" => upload(f("skanthak.png")))
365
- e.send(:image_state).create_magick_version_if_needed(:thumb)
366
- assert_transformed(e.image("thumb"))
367
- end
368
-
369
- def test_simple_callback_transformation
370
- Entry.file_column :image, :magick => :transform_grey
371
- e = Entry.new(:image => upload(f("skanthak.png")))
372
- assert_transformed(e.image)
373
- end
374
-
375
- def test_complex_callback_transformation
376
- Entry.file_column :image, :magick => { :transformation => :transform_grey }
377
- e = Entry.new(:image => upload(f("skanthak.png")))
378
- assert_transformed(e.image)
379
- end
380
- end