rmagick 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.appveyor.yml +4 -4
  3. data/.circleci/config.yml +1 -1
  4. data/.gitignore +1 -0
  5. data/.rubocop_todo.yml +6 -0
  6. data/.travis.yml +26 -8
  7. data/CHANGELOG.md +104 -0
  8. data/before_install_linux.sh +19 -10
  9. data/benchmarks/memory/README.md +50 -0
  10. data/benchmarks/memory/image_new.rb +8 -0
  11. data/benchmarks/memory/rmagick.gnuplot +16 -0
  12. data/doc/ex/coalesce.rb +2 -2
  13. data/doc/ex/drawcomp.rb +3 -3
  14. data/doc/ex/get_pixels.rb +1 -1
  15. data/doc/ex/images/Coffee.png +0 -0
  16. data/doc/ex/images/No.png +0 -0
  17. data/doc/ex/images/Snake.png +0 -0
  18. data/doc/ex/implode.rb +2 -2
  19. data/doc/ex/mask.rb +1 -1
  20. data/doc/ex/matte_fill_to_border.rb +1 -1
  21. data/doc/ex/matte_floodfill.rb +1 -1
  22. data/doc/ex/matte_replace.rb +1 -1
  23. data/doc/ex/stegano.rb +1 -1
  24. data/examples/constitute.rb +1 -1
  25. data/examples/crop_with_gravity.rb +1 -1
  26. data/examples/demo.rb +4 -4
  27. data/examples/find_similar_region.rb +1 -1
  28. data/examples/histogram.rb +3 -3
  29. data/examples/identify.rb +46 -46
  30. data/examples/image_opacity.rb +2 -2
  31. data/examples/vignette.rb +3 -3
  32. data/ext/RMagick/extconf.rb +19 -15
  33. data/ext/RMagick/rmagick.c +1 -2
  34. data/ext/RMagick/rmagick.h +59 -30
  35. data/ext/RMagick/rmdraw.c +62 -274
  36. data/ext/RMagick/rmenum.c +121 -665
  37. data/ext/RMagick/rmfill.c +7 -7
  38. data/ext/RMagick/rmilist.c +91 -7
  39. data/ext/RMagick/rmimage.c +568 -379
  40. data/ext/RMagick/rminfo.c +152 -110
  41. data/ext/RMagick/rmkinfo.c +17 -1
  42. data/ext/RMagick/rmmain.c +75 -74
  43. data/ext/RMagick/rmmontage.c +33 -33
  44. data/ext/RMagick/rmpixel.c +75 -14
  45. data/ext/RMagick/rmstruct.c +5 -5
  46. data/ext/RMagick/rmutil.c +3 -13
  47. data/lib/obsolete.rb +66 -0
  48. data/lib/rmagick/version.rb +1 -1
  49. data/lib/rmagick_internal.rb +54 -41
  50. data/spec/rmagick/image/composite_spec.rb +5 -76
  51. data/spec/rmagick/image/properties_spec.rb +1 -1
  52. data/test/Draw.rb +52 -115
  53. data/test/Enum.rb +153 -1
  54. data/test/Fill.rb +1 -1
  55. data/test/Image1.rb +97 -43
  56. data/test/Image2.rb +140 -36
  57. data/test/Image3.rb +110 -120
  58. data/test/ImageList1.rb +46 -11
  59. data/test/ImageList2.rb +11 -21
  60. data/test/Image_attributes.rb +81 -127
  61. data/test/Import_Export.rb +2 -2
  62. data/test/Info.rb +5 -1
  63. data/test/KernelInfo.rb +67 -0
  64. data/test/Magick.rb +17 -35
  65. data/test/Pixel.rb +193 -24
  66. data/test/PolaroidOptions.rb +1 -1
  67. data/test/Preview.rb +3 -35
  68. data/test/Struct.rb +45 -0
  69. data/test/appearance/Montage.rb +26 -0
  70. data/test/appearance/appearance_assertion.rb +13 -0
  71. data/test/appearance/expected/montage_border_color.jpg +0 -0
  72. data/test/lib/Obsolete.rb +30 -0
  73. data/test/lib/internal/Draw.rb +823 -0
  74. data/test/lib/internal/Geometry.rb +98 -0
  75. data/test/lib/internal/Magick.rb +40 -0
  76. data/test/test_all_basic.rb +16 -17
  77. metadata +27 -5
  78. data/doc/ex/images/Coffee.wmf +0 -0
  79. data/doc/ex/images/No.wmf +0 -0
  80. data/doc/ex/images/Snake.wmf +0 -0
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require 'rmagick'
4
+ require 'test/unit'
5
+ require 'test/unit/ui/console/testrunner'
6
+
7
+ class LibGeometryUT < Test::Unit::TestCase
8
+ def test_constants
9
+ assert_kind_of(Magick::GeometryValue, Magick::PercentGeometry)
10
+ assert_equal('PercentGeometry', Magick::PercentGeometry.to_s)
11
+ assert_equal(1, Magick::PercentGeometry.to_i)
12
+
13
+ assert_kind_of(Magick::GeometryValue, Magick::AspectGeometry)
14
+ assert_equal('AspectGeometry', Magick::AspectGeometry.to_s)
15
+ assert_equal(2, Magick::AspectGeometry.to_i)
16
+
17
+ assert_kind_of(Magick::GeometryValue, Magick::LessGeometry)
18
+ assert_equal('LessGeometry', Magick::LessGeometry.to_s)
19
+ assert_equal(3, Magick::LessGeometry.to_i)
20
+
21
+ assert_kind_of(Magick::GeometryValue, Magick::GreaterGeometry)
22
+ assert_equal('GreaterGeometry', Magick::GreaterGeometry.to_s)
23
+ assert_equal(4, Magick::GreaterGeometry.to_i)
24
+
25
+ assert_kind_of(Magick::GeometryValue, Magick::AreaGeometry)
26
+ assert_equal('AreaGeometry', Magick::AreaGeometry.to_s)
27
+ assert_equal(5, Magick::AreaGeometry.to_i)
28
+
29
+ assert_kind_of(Magick::GeometryValue, Magick::MinimumGeometry)
30
+ assert_equal('MinimumGeometry', Magick::MinimumGeometry.to_s)
31
+ assert_equal(6, Magick::MinimumGeometry.to_i)
32
+ end
33
+
34
+ def test_initialize
35
+ assert_raise(ArgumentError) { Magick::Geometry.new(Magick::PercentGeometry) }
36
+ assert_raise(ArgumentError) { Magick::Geometry.new(0, Magick::PercentGeometry) }
37
+ assert_raise(ArgumentError) { Magick::Geometry.new(0, 0, Magick::PercentGeometry) }
38
+ assert_raise(ArgumentError) { Magick::Geometry.new(0, 0, 0, Magick::PercentGeometry) }
39
+
40
+ assert_raise(ArgumentError) { Magick::Geometry.new(-1) }
41
+ assert_raise(ArgumentError) { Magick::Geometry.new(0, -1) }
42
+
43
+ geometry = Magick::Geometry.new
44
+ assert_equal(0, geometry.width)
45
+ assert_equal(0, geometry.height)
46
+ assert_equal(0, geometry.x)
47
+ assert_equal(0, geometry.y)
48
+ assert_nil(geometry.flag)
49
+
50
+ geometry = Magick::Geometry.new(10, 20, 30, 40)
51
+ assert_equal(10, geometry.width)
52
+ assert_equal(20, geometry.height)
53
+ assert_equal(30, geometry.x)
54
+ assert_equal(40, geometry.y)
55
+ end
56
+
57
+ def test_to_s
58
+ assert_equal('', Magick::Geometry.new.to_s)
59
+ assert_equal('10x', Magick::Geometry.new(10).to_s)
60
+ assert_equal('10x20', Magick::Geometry.new(10, 20).to_s)
61
+ assert_equal('10x20+30+0', Magick::Geometry.new(10, 20, 30).to_s)
62
+ assert_equal('10x20+30+40', Magick::Geometry.new(10, 20, 30, 40).to_s)
63
+ assert_equal('x20+30+40', Magick::Geometry.new(0, 20, 30, 40).to_s)
64
+ assert_equal('+30+40', Magick::Geometry.new(0, 0, 30, 40).to_s)
65
+ assert_equal('+0+40', Magick::Geometry.new(0, 0, 0, 40).to_s)
66
+
67
+ assert_equal('10%x20%+30+40', Magick::Geometry.new(10, 20, 30, 40, Magick::PercentGeometry).to_s)
68
+ assert_equal('x20%+30+40', Magick::Geometry.new(0, 20, 30, 40, Magick::PercentGeometry).to_s)
69
+
70
+ assert_equal('10.20x20.50+30+40', Magick::Geometry.new(10.2, 20.5, 30, 40).to_s)
71
+ assert_equal('10.20%x20.50%+30+40', Magick::Geometry.new(10.2, 20.5, 30, 40, Magick::PercentGeometry).to_s)
72
+ end
73
+
74
+ def test_from_s
75
+ assert_equal('', Magick::Geometry.from_s('').to_s)
76
+ assert_equal('', Magick::Geometry.from_s('x').to_s)
77
+ assert_equal('10x', Magick::Geometry.from_s('10').to_s)
78
+ assert_equal('10x', Magick::Geometry.from_s('10x').to_s)
79
+ assert_equal('10x20', Magick::Geometry.from_s('10x20').to_s)
80
+ assert_equal('10x20+30+40', Magick::Geometry.from_s('10x20+30+40').to_s)
81
+ assert_equal('x20+30+40', Magick::Geometry.from_s('x20+30+40').to_s)
82
+ assert_equal('+30+40', Magick::Geometry.from_s('+30+40').to_s)
83
+ assert_equal('+0+40', Magick::Geometry.from_s('+0+40').to_s)
84
+ assert_equal('+30+0', Magick::Geometry.from_s('+30').to_s)
85
+
86
+ assert_equal('10%x20%+30+40', Magick::Geometry.from_s('10%x20%+30+40').to_s)
87
+ assert_equal('x20%+30+40', Magick::Geometry.from_s('x20%+30+40').to_s)
88
+
89
+ assert_equal('10.20x20.50+30+40', Magick::Geometry.from_s('10.2x20.5+30+40').to_s)
90
+ assert_equal('10.20%x20.50%+30+40', Magick::Geometry.from_s('10.2%x20.500%+30+40').to_s)
91
+
92
+ assert_raise(ArgumentError) { Magick::Geometry.from_s('10x20+') }
93
+ assert_raise(ArgumentError) { Magick::Geometry.from_s('+30.000+40') }
94
+ assert_raise(ArgumentError) { Magick::Geometry.from_s('+30.000+40.000') }
95
+ assert_raise(ArgumentError) { Magick::Geometry.from_s('10x20+30.000+40') }
96
+ assert_raise(ArgumentError) { Magick::Geometry.from_s('10x20+30.000+40.000') }
97
+ end
98
+ end
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require 'rmagick'
4
+ require 'test/unit'
5
+ require 'test/unit/ui/console/testrunner'
6
+
7
+ class LibMagickUT < Test::Unit::TestCase
8
+ def test_formats
9
+ assert_instance_of(Hash, Magick.formats)
10
+ Magick.formats.each do |f, v|
11
+ assert_instance_of(String, f)
12
+ assert_match(/[\*\+\srw]+/, v)
13
+ end
14
+
15
+ Magick.formats do |f, v|
16
+ assert_instance_of(String, f)
17
+ assert_match(/[\*\+\srw]+/, v)
18
+ end
19
+ end
20
+
21
+ def test_trace_proc
22
+ Magick.trace_proc = proc do |which, description, id, method|
23
+ assert(which == :c)
24
+ assert_instance_of(String, description)
25
+ assert_instance_of(String, id)
26
+ assert_equal(:initialize, method)
27
+ end
28
+ img = Magick::Image.new(20, 20)
29
+
30
+ Magick.trace_proc = proc do |which, description, id, method|
31
+ assert(which == :d)
32
+ assert_instance_of(String, description)
33
+ assert_instance_of(String, id)
34
+ assert_equal(:"destroy!", method)
35
+ end
36
+ img.destroy!
37
+ ensure
38
+ Magick.trace_proc = nil
39
+ end
40
+ end
@@ -7,15 +7,10 @@ FILES = Dir[IMAGES_DIR + '/Button_*.gif'].sort
7
7
  FLOWER_HAT = IMAGES_DIR + '/Flower_Hat.jpg'
8
8
  IMAGE_WITH_PROFILE = IMAGES_DIR + '/image_with_profile.jpg'
9
9
 
10
+ require 'simplecov'
10
11
  require 'test/unit'
11
- if RUBY_VERSION < '1.9'
12
- require 'test/unit/ui/console/testrunner'
13
- $LOAD_PATH.push(root_dir)
14
- else
15
- require 'simplecov'
16
- $LOAD_PATH.unshift(File.join(root_dir, 'lib'))
17
- $LOAD_PATH.unshift(File.join(root_dir, 'test'))
18
- end
12
+ $LOAD_PATH.unshift(File.join(root_dir, 'lib'))
13
+ $LOAD_PATH.unshift(File.join(root_dir, 'test'))
19
14
 
20
15
  require 'rmagick'
21
16
 
@@ -25,13 +20,15 @@ abort 'Unable to get ImageMagick version' unless Regexp.last_match(1) && Regexp.
25
20
  IM_VERSION = Gem::Version.new(Regexp.last_match(1))
26
21
  IM_REVISION = Gem::Version.new(Regexp.last_match(2))
27
22
 
28
- FreezeError = if RUBY_VERSION > '2.5'
29
- FrozenError
30
- elsif RUBY_VERSION > '1.9'
31
- RuntimeError
32
- else
33
- TypeError
34
- end
23
+ FreezeError = RUBY_VERSION > '2.5' ? FrozenError : RuntimeError
24
+
25
+ Dir.glob(File.join(__dir__, 'lib/**/*.rb')) do |file|
26
+ require file
27
+ end
28
+
29
+ Dir.glob(File.join(__dir__, 'appearance/**/*.rb')) do |file|
30
+ require file
31
+ end
35
32
 
36
33
  require 'Draw.rb'
37
34
  require 'Enum.rb'
@@ -43,8 +40,10 @@ require 'ImageList1.rb'
43
40
  require 'ImageList2.rb'
44
41
  require 'Image_attributes.rb'
45
42
  require 'Import_Export.rb'
43
+ require 'Info.rb'
44
+ require 'KernelInfo.rb'
45
+ require 'Magick.rb'
46
46
  require 'Pixel.rb'
47
47
  require 'PolaroidOptions.rb'
48
48
  require 'Preview.rb'
49
- require 'Info.rb'
50
- require 'Magick.rb'
49
+ require 'Struct.rb'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmagick
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Hunter
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-04-14 00:00:00.000000000 Z
14
+ date: 2019-06-16 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake-compiler
@@ -138,6 +138,9 @@ files:
138
138
  - Rakefile
139
139
  - before_install_linux.sh
140
140
  - before_install_osx.sh
141
+ - benchmarks/memory/README.md
142
+ - benchmarks/memory/image_new.rb
143
+ - benchmarks/memory/rmagick.gnuplot
141
144
  - deprecated/RMagick.rb
142
145
  - doc/.cvsignore
143
146
  - doc/comtasks.html
@@ -267,18 +270,18 @@ files:
267
270
  - doc/ex/images/Button_Y.gif
268
271
  - doc/ex/images/Button_Z.gif
269
272
  - doc/ex/images/Cheetah.jpg
270
- - doc/ex/images/Coffee.wmf
273
+ - doc/ex/images/Coffee.png
271
274
  - doc/ex/images/Flower_Hat.jpg
272
275
  - doc/ex/images/Gold_Statue.jpg
273
276
  - doc/ex/images/Hot_Air_Balloons.jpg
274
277
  - doc/ex/images/Hot_Air_Balloons_H.jpg
275
278
  - doc/ex/images/Leaf.miff
276
- - doc/ex/images/No.wmf
279
+ - doc/ex/images/No.png
277
280
  - doc/ex/images/Polynesia.jpg
278
281
  - doc/ex/images/Red_Rocks.jpg
279
282
  - doc/ex/images/Rocks_On_Beach.miff
280
283
  - doc/ex/images/Shorts.jpg
281
- - doc/ex/images/Snake.wmf
284
+ - doc/ex/images/Snake.png
282
285
  - doc/ex/images/Violin.jpg
283
286
  - doc/ex/images/Yellow_Rose.miff
284
287
  - doc/ex/images/big-duck.gif
@@ -469,6 +472,7 @@ files:
469
472
  - ext/RMagick/rmpixel.c
470
473
  - ext/RMagick/rmstruct.c
471
474
  - ext/RMagick/rmutil.c
475
+ - lib/obsolete.rb
472
476
  - lib/rmagick.rb
473
477
  - lib/rmagick/version.rb
474
478
  - lib/rmagick_internal.rb
@@ -511,11 +515,20 @@ files:
511
515
  - test/Image_attributes.rb
512
516
  - test/Import_Export.rb
513
517
  - test/Info.rb
518
+ - test/KernelInfo.rb
514
519
  - test/Magick.rb
515
520
  - test/Pixel.rb
516
521
  - test/PolaroidOptions.rb
517
522
  - test/Preview.rb
523
+ - test/Struct.rb
524
+ - test/appearance/Montage.rb
525
+ - test/appearance/appearance_assertion.rb
526
+ - test/appearance/expected/montage_border_color.jpg
518
527
  - test/cmyk.icm
528
+ - test/lib/Obsolete.rb
529
+ - test/lib/internal/Draw.rb
530
+ - test/lib/internal/Geometry.rb
531
+ - test/lib/internal/Magick.rb
519
532
  - test/srgb.icm
520
533
  - test/test_all_basic.rb
521
534
  - test/tmpnam_test.rb
@@ -571,11 +584,20 @@ test_files:
571
584
  - test/Image_attributes.rb
572
585
  - test/Import_Export.rb
573
586
  - test/Info.rb
587
+ - test/KernelInfo.rb
574
588
  - test/Magick.rb
575
589
  - test/Pixel.rb
576
590
  - test/PolaroidOptions.rb
577
591
  - test/Preview.rb
592
+ - test/Struct.rb
593
+ - test/appearance/Montage.rb
594
+ - test/appearance/appearance_assertion.rb
595
+ - test/appearance/expected/montage_border_color.jpg
578
596
  - test/cmyk.icm
597
+ - test/lib/Obsolete.rb
598
+ - test/lib/internal/Draw.rb
599
+ - test/lib/internal/Geometry.rb
600
+ - test/lib/internal/Magick.rb
579
601
  - test/srgb.icm
580
602
  - test/test_all_basic.rb
581
603
  - test/tmpnam_test.rb
Binary file
Binary file
Binary file