chunky_png 1.0.0.beta2 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.infinity_test +1 -1
  2. data/README.rdoc +2 -2
  3. data/chunky_png.gemspec +4 -4
  4. data/lib/chunky_png.rb +14 -8
  5. data/lib/chunky_png/canvas.rb +110 -38
  6. data/lib/chunky_png/canvas/drawing.rb +175 -34
  7. data/lib/chunky_png/canvas/masking.rb +91 -0
  8. data/lib/chunky_png/canvas/operations.rb +141 -112
  9. data/lib/chunky_png/canvas/png_decoding.rb +13 -13
  10. data/lib/chunky_png/canvas/resampling.rb +42 -0
  11. data/lib/chunky_png/color.rb +252 -11
  12. data/lib/chunky_png/compatibility.rb +5 -5
  13. data/lib/chunky_png/dimension.rb +106 -0
  14. data/lib/chunky_png/point.rb +110 -0
  15. data/lib/chunky_png/vector.rb +92 -0
  16. data/spec/chunky_png/canvas/drawing_spec.rb +107 -14
  17. data/spec/chunky_png/canvas/masking_spec.rb +51 -0
  18. data/spec/chunky_png/canvas/operations_spec.rb +142 -75
  19. data/spec/chunky_png/canvas/resampling_spec.rb +31 -0
  20. data/spec/chunky_png/canvas/stream_exporting_spec.rb +20 -0
  21. data/spec/chunky_png/canvas/stream_importing_spec.rb +22 -0
  22. data/spec/chunky_png/canvas_spec.rb +151 -22
  23. data/spec/chunky_png/color_spec.rb +53 -0
  24. data/spec/chunky_png/dimension_spec.rb +43 -0
  25. data/spec/chunky_png/point_spec.rb +71 -0
  26. data/spec/chunky_png/vector_spec.rb +58 -0
  27. data/spec/resources/circles.png +0 -0
  28. data/spec/resources/clock_nn_xdown_ydown.png +0 -0
  29. data/spec/resources/clock_nn_xdown_yup.png +0 -0
  30. data/spec/resources/clock_nn_xup_yup.png +0 -0
  31. data/spec/resources/lines.png +0 -0
  32. data/spec/resources/partial_circles.png +0 -0
  33. data/spec/resources/polygon_filled_horizontal.png +0 -0
  34. data/spec/resources/polygon_filled_vertical.png +0 -0
  35. data/spec/resources/polygon_triangle_filled.png +0 -0
  36. data/spec/resources/polygon_unfilled.png +0 -0
  37. data/spec/resources/rect.png +0 -0
  38. metadata +31 -9
  39. data/spec/resources/clock_flip_horizontally.png +0 -0
  40. data/spec/resources/clock_flip_vertically.png +0 -0
  41. data/spec/resources/clock_rotate_180.png +0 -0
  42. data/spec/resources/clock_rotate_left.png +0 -0
  43. data/spec/resources/clock_rotate_right.png +0 -0
  44. data/spec/resources/clock_stubbed.png +0 -0
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe ChunkyPNG::Vector do
4
+ subject { ChunkyPNG::Vector.new([ChunkyPNG::Point.new(2, 4), ChunkyPNG::Point.new(1, 2), ChunkyPNG::Point.new(3, 6)]) }
5
+
6
+ it { should respond_to(:points) }
7
+ it { should have(3).items }
8
+
9
+ describe '#x_range' do
10
+ it "should get the right range of x values" do
11
+ subject.x_range.should == (1..3)
12
+ end
13
+ end
14
+
15
+ describe '#y_range' do
16
+ it "should get the right range of y values" do
17
+ subject.y_range.should == (2..6)
18
+ end
19
+ end
20
+
21
+ describe '#edges' do
22
+ it "should get three edges when closing the path" do
23
+ subject.edges(true).to_a.should == [[ChunkyPNG::Point.new(2, 4), ChunkyPNG::Point.new(1, 2)],
24
+ [ChunkyPNG::Point.new(1, 2), ChunkyPNG::Point.new(3, 6)],
25
+ [ChunkyPNG::Point.new(3, 6), ChunkyPNG::Point.new(2, 4)]]
26
+ end
27
+
28
+ it "should get two edges when not closing the path" do
29
+ subject.edges(false).to_a.should == [[ChunkyPNG::Point.new(2, 4), ChunkyPNG::Point.new(1, 2)],
30
+ [ChunkyPNG::Point.new(1, 2), ChunkyPNG::Point.new(3, 6)]]
31
+ end
32
+ end
33
+ end
34
+
35
+ describe 'ChunkyPNG.Vector' do
36
+ subject { ChunkyPNG::Vector.new([ChunkyPNG::Point.new(2, 4), ChunkyPNG::Point.new(1, 2), ChunkyPNG::Point.new(3, 6)]) }
37
+
38
+ it "should return an empty vector when given an empty array" do
39
+ ChunkyPNG::Vector().should == ChunkyPNG::Vector.new([])
40
+ ChunkyPNG::Vector(*[]).should == ChunkyPNG::Vector.new([])
41
+ end
42
+
43
+ it "should raise an error when an odd number of numerics is given" do
44
+ lambda { ChunkyPNG::Vector(1, 2, 3) }.should raise_error(ChunkyPNG::ExpectationFailed)
45
+ end
46
+
47
+ it "should create a vector from a string" do
48
+ ChunkyPNG::Vector('(2,4) (1,2) (3,6)').should == subject
49
+ end
50
+
51
+ it "should create a vector from a flat array" do
52
+ ChunkyPNG::Vector(2,4,1,2,3,6).should == subject
53
+ end
54
+
55
+ it "should create a vector from a nested array" do
56
+ ChunkyPNG::Vector('(2,4)', [1, 2], :x => 3, :y => 6).should == subject
57
+ end
58
+ end
Binary file
Binary file
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 1
7
7
  - 0
8
8
  - 0
9
- - beta2
10
- version: 1.0.0.beta2
9
+ - rc1
10
+ version: 1.0.0.rc1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Willem van Bergen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-28 00:00:00 -05:00
18
+ date: 2011-02-24 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -72,28 +72,40 @@ files:
72
72
  - lib/chunky_png/canvas.rb
73
73
  - lib/chunky_png/canvas/adam7_interlacing.rb
74
74
  - lib/chunky_png/canvas/drawing.rb
75
+ - lib/chunky_png/canvas/masking.rb
75
76
  - lib/chunky_png/canvas/operations.rb
76
77
  - lib/chunky_png/canvas/png_decoding.rb
77
78
  - lib/chunky_png/canvas/png_encoding.rb
79
+ - lib/chunky_png/canvas/resampling.rb
78
80
  - lib/chunky_png/canvas/stream_exporting.rb
79
81
  - lib/chunky_png/canvas/stream_importing.rb
80
82
  - lib/chunky_png/chunk.rb
81
83
  - lib/chunky_png/color.rb
82
84
  - lib/chunky_png/compatibility.rb
83
85
  - lib/chunky_png/datastream.rb
86
+ - lib/chunky_png/dimension.rb
84
87
  - lib/chunky_png/image.rb
85
88
  - lib/chunky_png/palette.rb
89
+ - lib/chunky_png/point.rb
86
90
  - lib/chunky_png/rmagick.rb
91
+ - lib/chunky_png/vector.rb
87
92
  - spec/chunky_png/canvas/adam7_interlacing_spec.rb
88
93
  - spec/chunky_png/canvas/drawing_spec.rb
94
+ - spec/chunky_png/canvas/masking_spec.rb
89
95
  - spec/chunky_png/canvas/operations_spec.rb
90
96
  - spec/chunky_png/canvas/png_decoding_spec.rb
91
97
  - spec/chunky_png/canvas/png_encoding_spec.rb
98
+ - spec/chunky_png/canvas/resampling_spec.rb
99
+ - spec/chunky_png/canvas/stream_exporting_spec.rb
100
+ - spec/chunky_png/canvas/stream_importing_spec.rb
92
101
  - spec/chunky_png/canvas_spec.rb
93
102
  - spec/chunky_png/color_spec.rb
94
103
  - spec/chunky_png/datastream_spec.rb
104
+ - spec/chunky_png/dimension_spec.rb
95
105
  - spec/chunky_png/image_spec.rb
106
+ - spec/chunky_png/point_spec.rb
96
107
  - spec/chunky_png/rmagick_spec.rb
108
+ - spec/chunky_png/vector_spec.rb
97
109
  - spec/chunky_png_spec.rb
98
110
  - spec/png_suite/background_chunks/bgai4a08.png
99
111
  - spec/png_suite/background_chunks/bgai4a16.png
@@ -313,16 +325,14 @@ files:
313
325
  - spec/png_suite/transparency/tp1n3p08.png
314
326
  - spec/png_suite_spec.rb
315
327
  - spec/resources/adam7.png
328
+ - spec/resources/circles.png
316
329
  - spec/resources/clock.png
317
330
  - spec/resources/clock_base.png
318
- - spec/resources/clock_flip_horizontally.png
319
- - spec/resources/clock_flip_vertically.png
320
331
  - spec/resources/clock_mask.png
321
332
  - spec/resources/clock_mask_updated.png
322
- - spec/resources/clock_rotate_180.png
323
- - spec/resources/clock_rotate_left.png
324
- - spec/resources/clock_rotate_right.png
325
- - spec/resources/clock_stubbed.png
333
+ - spec/resources/clock_nn_xdown_ydown.png
334
+ - spec/resources/clock_nn_xdown_yup.png
335
+ - spec/resources/clock_nn_xup_yup.png
326
336
  - spec/resources/clock_updated.png
327
337
  - spec/resources/composited.png
328
338
  - spec/resources/cropped.png
@@ -330,11 +340,16 @@ files:
330
340
  - spec/resources/damaged_signature.png
331
341
  - spec/resources/lines.png
332
342
  - spec/resources/operations.png
343
+ - spec/resources/partial_circles.png
333
344
  - spec/resources/pixelstream.rgb
334
345
  - spec/resources/pixelstream.rgba
335
346
  - spec/resources/pixelstream_best_compression.png
336
347
  - spec/resources/pixelstream_fast_rgba.png
337
348
  - spec/resources/pixelstream_reference.png
349
+ - spec/resources/polygon_filled_horizontal.png
350
+ - spec/resources/polygon_filled_vertical.png
351
+ - spec/resources/polygon_triangle_filled.png
352
+ - spec/resources/polygon_unfilled.png
338
353
  - spec/resources/rect.png
339
354
  - spec/resources/replaced.png
340
355
  - spec/resources/text_chunk.png
@@ -384,13 +399,20 @@ summary: Pure ruby library for read/write, chunk-level access to PNG files
384
399
  test_files:
385
400
  - spec/chunky_png/canvas/adam7_interlacing_spec.rb
386
401
  - spec/chunky_png/canvas/drawing_spec.rb
402
+ - spec/chunky_png/canvas/masking_spec.rb
387
403
  - spec/chunky_png/canvas/operations_spec.rb
388
404
  - spec/chunky_png/canvas/png_decoding_spec.rb
389
405
  - spec/chunky_png/canvas/png_encoding_spec.rb
406
+ - spec/chunky_png/canvas/resampling_spec.rb
407
+ - spec/chunky_png/canvas/stream_exporting_spec.rb
408
+ - spec/chunky_png/canvas/stream_importing_spec.rb
390
409
  - spec/chunky_png/canvas_spec.rb
391
410
  - spec/chunky_png/color_spec.rb
392
411
  - spec/chunky_png/datastream_spec.rb
412
+ - spec/chunky_png/dimension_spec.rb
393
413
  - spec/chunky_png/image_spec.rb
414
+ - spec/chunky_png/point_spec.rb
394
415
  - spec/chunky_png/rmagick_spec.rb
416
+ - spec/chunky_png/vector_spec.rb
395
417
  - spec/chunky_png_spec.rb
396
418
  - spec/png_suite_spec.rb