rmagick 3.2.0 → 4.3.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 (420) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.devcontainer/Dockerfile +14 -0
  4. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  5. data/.devcontainer/devcontainer.json +11 -0
  6. data/.devcontainer/setup-repo.sh +10 -0
  7. data/.devcontainer/setup-user.sh +45 -0
  8. data/.editorconfig +3 -0
  9. data/.github/ISSUE_TEMPLATE.md +17 -0
  10. data/.github/workflows/ci.yml +79 -0
  11. data/.gitignore +3 -1
  12. data/.rspec +1 -0
  13. data/.rubocop.yml +24 -0
  14. data/.rubocop_todo.yml +151 -297
  15. data/.yardopts +5 -0
  16. data/CHANGELOG.md +233 -0
  17. data/CODE_OF_CONDUCT.md +122 -7
  18. data/CONTRIBUTING.md +14 -10
  19. data/README.md +326 -0
  20. data/Rakefile +16 -22
  21. data/before_install_linux.sh +22 -28
  22. data/before_install_osx.sh +57 -2
  23. data/ext/RMagick/extconf.rb +149 -105
  24. data/ext/RMagick/rmagick.c +77 -104
  25. data/ext/RMagick/rmagick.h +121 -103
  26. data/ext/RMagick/rmdraw.c +364 -436
  27. data/ext/RMagick/rmenum.c +106 -114
  28. data/ext/RMagick/rmfill.c +149 -70
  29. data/ext/RMagick/rmilist.c +225 -367
  30. data/ext/RMagick/rmimage.c +4751 -4405
  31. data/ext/RMagick/rminfo.c +574 -787
  32. data/ext/RMagick/rmkinfo.c +51 -121
  33. data/ext/RMagick/rmmain.c +454 -286
  34. data/ext/RMagick/rmmontage.c +64 -130
  35. data/ext/RMagick/rmpixel.c +488 -437
  36. data/ext/RMagick/rmstruct.c +83 -96
  37. data/ext/RMagick/rmutil.c +302 -214
  38. data/lib/rmagick/version.rb +1 -1
  39. data/lib/rmagick_internal.rb +138 -93
  40. data/lib/rvg/clippath.rb +2 -1
  41. data/lib/rvg/container.rb +10 -5
  42. data/lib/rvg/describable.rb +1 -1
  43. data/lib/rvg/embellishable.rb +5 -4
  44. data/lib/rvg/misc.rb +15 -12
  45. data/lib/rvg/paint.rb +2 -1
  46. data/lib/rvg/pathdata.rb +12 -11
  47. data/lib/rvg/rvg.rb +12 -8
  48. data/lib/rvg/stylable.rb +9 -7
  49. data/lib/rvg/text.rb +11 -6
  50. data/lib/rvg/transformable.rb +3 -2
  51. data/lib/rvg/units.rb +1 -1
  52. data/rmagick.gemspec +10 -11
  53. metadata +52 -423
  54. data/.appveyor.yml +0 -45
  55. data/.circleci/config.yml +0 -56
  56. data/.ruby-version +0 -1
  57. data/.simplecov +0 -27
  58. data/.travis.yml +0 -62
  59. data/Doxyfile +0 -1514
  60. data/README.textile +0 -259
  61. data/benchmarks/memory/README.md +0 -50
  62. data/benchmarks/memory/image_new.rb +0 -8
  63. data/benchmarks/memory/rmagick.gnuplot +0 -16
  64. data/doc/.cvsignore +0 -1
  65. data/doc/comtasks.html +0 -287
  66. data/doc/constants.html +0 -1581
  67. data/doc/css/doc.css +0 -299
  68. data/doc/css/popup.css +0 -34
  69. data/doc/css/ref.css +0 -67
  70. data/doc/draw.html +0 -3272
  71. data/doc/ex/InitialCoords.rb +0 -22
  72. data/doc/ex/NewCoordSys.rb +0 -30
  73. data/doc/ex/OrigCoordSys.rb +0 -16
  74. data/doc/ex/PreserveAspectRatio.rb +0 -204
  75. data/doc/ex/RotateScale.rb +0 -36
  76. data/doc/ex/Skew.rb +0 -38
  77. data/doc/ex/Use01.rb +0 -15
  78. data/doc/ex/Use02.rb +0 -20
  79. data/doc/ex/Use03.rb +0 -16
  80. data/doc/ex/ViewBox.rb +0 -31
  81. data/doc/ex/adaptive_threshold.rb +0 -9
  82. data/doc/ex/add_noise.rb +0 -16
  83. data/doc/ex/affine.rb +0 -48
  84. data/doc/ex/affine_transform.rb +0 -20
  85. data/doc/ex/arc.rb +0 -49
  86. data/doc/ex/arcpath.rb +0 -32
  87. data/doc/ex/arcs01.rb +0 -28
  88. data/doc/ex/arcs02.rb +0 -59
  89. data/doc/ex/average.rb +0 -15
  90. data/doc/ex/axes.rb +0 -64
  91. data/doc/ex/baseline_shift01.rb +0 -17
  92. data/doc/ex/bilevel_channel.rb +0 -8
  93. data/doc/ex/blur_image.rb +0 -12
  94. data/doc/ex/border.rb +0 -10
  95. data/doc/ex/bounding_box.rb +0 -42
  96. data/doc/ex/cbezier1.rb +0 -41
  97. data/doc/ex/cbezier2.rb +0 -41
  98. data/doc/ex/cbezier3.rb +0 -41
  99. data/doc/ex/cbezier4.rb +0 -42
  100. data/doc/ex/cbezier5.rb +0 -42
  101. data/doc/ex/cbezier6.rb +0 -53
  102. data/doc/ex/channel.rb +0 -25
  103. data/doc/ex/charcoal.rb +0 -12
  104. data/doc/ex/chop.rb +0 -29
  105. data/doc/ex/circle.rb +0 -33
  106. data/doc/ex/circle01.rb +0 -16
  107. data/doc/ex/clip_path.rb +0 -60
  108. data/doc/ex/coalesce.rb +0 -57
  109. data/doc/ex/color_fill_to_border.rb +0 -29
  110. data/doc/ex/color_floodfill.rb +0 -28
  111. data/doc/ex/color_histogram.rb +0 -47
  112. data/doc/ex/color_reset.rb +0 -11
  113. data/doc/ex/colorize.rb +0 -16
  114. data/doc/ex/colors.rb +0 -64
  115. data/doc/ex/compose_mask.rb +0 -22
  116. data/doc/ex/composite.rb +0 -133
  117. data/doc/ex/composite_layers.rb +0 -52
  118. data/doc/ex/composite_tiled.rb +0 -21
  119. data/doc/ex/contrast.rb +0 -36
  120. data/doc/ex/crop.rb +0 -31
  121. data/doc/ex/crop_with_gravity.rb +0 -42
  122. data/doc/ex/cubic01.rb +0 -43
  123. data/doc/ex/cubic02.rb +0 -91
  124. data/doc/ex/cycle_colormap.rb +0 -21
  125. data/doc/ex/dissolve.rb +0 -12
  126. data/doc/ex/drawcomp.rb +0 -41
  127. data/doc/ex/drop_shadow.rb +0 -60
  128. data/doc/ex/edge.rb +0 -11
  129. data/doc/ex/ellipse.rb +0 -45
  130. data/doc/ex/ellipse01.rb +0 -21
  131. data/doc/ex/emboss.rb +0 -11
  132. data/doc/ex/enhance.rb +0 -28
  133. data/doc/ex/equalize.rb +0 -11
  134. data/doc/ex/evenodd.rb +0 -42
  135. data/doc/ex/fill_pattern.rb +0 -23
  136. data/doc/ex/flatten_images.rb +0 -36
  137. data/doc/ex/flip.rb +0 -11
  138. data/doc/ex/flop.rb +0 -11
  139. data/doc/ex/font_styles.rb +0 -32
  140. data/doc/ex/fonts.rb +0 -16
  141. data/doc/ex/frame.rb +0 -12
  142. data/doc/ex/gaussian_blur.rb +0 -11
  143. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  144. data/doc/ex/get_pixels.rb +0 -45
  145. data/doc/ex/get_type_metrics.rb +0 -142
  146. data/doc/ex/gradientfill.rb +0 -27
  147. data/doc/ex/grav.rb +0 -45
  148. data/doc/ex/gravity.rb +0 -78
  149. data/doc/ex/group.rb +0 -26
  150. data/doc/ex/hatchfill.rb +0 -27
  151. data/doc/ex/image.rb +0 -44
  152. data/doc/ex/images/Apple.miff +0 -0
  153. data/doc/ex/images/Ballerina.jpg +0 -0
  154. data/doc/ex/images/Ballerina3.jpg +0 -0
  155. data/doc/ex/images/Button_0.gif +0 -0
  156. data/doc/ex/images/Button_1.gif +0 -0
  157. data/doc/ex/images/Button_2.gif +0 -0
  158. data/doc/ex/images/Button_3.gif +0 -0
  159. data/doc/ex/images/Button_4.gif +0 -0
  160. data/doc/ex/images/Button_5.gif +0 -0
  161. data/doc/ex/images/Button_6.gif +0 -0
  162. data/doc/ex/images/Button_7.gif +0 -0
  163. data/doc/ex/images/Button_8.gif +0 -0
  164. data/doc/ex/images/Button_9.gif +0 -0
  165. data/doc/ex/images/Button_A.gif +0 -0
  166. data/doc/ex/images/Button_B.gif +0 -0
  167. data/doc/ex/images/Button_C.gif +0 -0
  168. data/doc/ex/images/Button_D.gif +0 -0
  169. data/doc/ex/images/Button_E.gif +0 -0
  170. data/doc/ex/images/Button_F.gif +0 -0
  171. data/doc/ex/images/Button_G.gif +0 -0
  172. data/doc/ex/images/Button_H.gif +0 -0
  173. data/doc/ex/images/Button_I.gif +0 -0
  174. data/doc/ex/images/Button_J.gif +0 -0
  175. data/doc/ex/images/Button_K.gif +0 -0
  176. data/doc/ex/images/Button_L.gif +0 -0
  177. data/doc/ex/images/Button_M.gif +0 -0
  178. data/doc/ex/images/Button_N.gif +0 -0
  179. data/doc/ex/images/Button_O.gif +0 -0
  180. data/doc/ex/images/Button_P.gif +0 -0
  181. data/doc/ex/images/Button_Q.gif +0 -0
  182. data/doc/ex/images/Button_R.gif +0 -0
  183. data/doc/ex/images/Button_S.gif +0 -0
  184. data/doc/ex/images/Button_T.gif +0 -0
  185. data/doc/ex/images/Button_U.gif +0 -0
  186. data/doc/ex/images/Button_V.gif +0 -0
  187. data/doc/ex/images/Button_W.gif +0 -0
  188. data/doc/ex/images/Button_X.gif +0 -0
  189. data/doc/ex/images/Button_Y.gif +0 -0
  190. data/doc/ex/images/Button_Z.gif +0 -0
  191. data/doc/ex/images/Cheetah.jpg +0 -0
  192. data/doc/ex/images/Coffee.png +0 -0
  193. data/doc/ex/images/Flower_Hat.jpg +0 -0
  194. data/doc/ex/images/Gold_Statue.jpg +0 -0
  195. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  196. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  197. data/doc/ex/images/Leaf.miff +0 -0
  198. data/doc/ex/images/No.png +0 -0
  199. data/doc/ex/images/Polynesia.jpg +0 -0
  200. data/doc/ex/images/Red_Rocks.jpg +0 -0
  201. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  202. data/doc/ex/images/Shorts.jpg +0 -0
  203. data/doc/ex/images/Snake.png +0 -0
  204. data/doc/ex/images/Violin.jpg +0 -0
  205. data/doc/ex/images/Yellow_Rose.miff +0 -0
  206. data/doc/ex/images/big-duck.gif +0 -0
  207. data/doc/ex/images/duck.gif +0 -0
  208. data/doc/ex/images/duck0.gif +0 -0
  209. data/doc/ex/images/duck1.gif +0 -0
  210. data/doc/ex/images/duck10.gif +0 -0
  211. data/doc/ex/images/duck11.gif +0 -0
  212. data/doc/ex/images/duck12.gif +0 -0
  213. data/doc/ex/images/duck13.gif +0 -0
  214. data/doc/ex/images/duck14.gif +0 -0
  215. data/doc/ex/images/duck15.gif +0 -0
  216. data/doc/ex/images/duck2.gif +0 -0
  217. data/doc/ex/images/duck3.gif +0 -0
  218. data/doc/ex/images/duck4.gif +0 -0
  219. data/doc/ex/images/duck5.gif +0 -0
  220. data/doc/ex/images/duck6.gif +0 -0
  221. data/doc/ex/images/duck7.gif +0 -0
  222. data/doc/ex/images/duck8.gif +0 -0
  223. data/doc/ex/images/duck9.gif +0 -0
  224. data/doc/ex/images/graydient230x6.gif +0 -0
  225. data/doc/ex/images/image_with_profile.jpg +0 -0
  226. data/doc/ex/images/logo400x83.gif +0 -0
  227. data/doc/ex/images/model.miff +0 -0
  228. data/doc/ex/images/notimplemented.gif +0 -0
  229. data/doc/ex/images/smile.miff +0 -0
  230. data/doc/ex/images/spin.gif +0 -0
  231. data/doc/ex/implode.rb +0 -34
  232. data/doc/ex/level.rb +0 -11
  233. data/doc/ex/level_colors.rb +0 -11
  234. data/doc/ex/line.rb +0 -41
  235. data/doc/ex/line01.rb +0 -21
  236. data/doc/ex/mask.rb +0 -35
  237. data/doc/ex/matte_fill_to_border.rb +0 -39
  238. data/doc/ex/matte_floodfill.rb +0 -32
  239. data/doc/ex/matte_replace.rb +0 -39
  240. data/doc/ex/median_filter.rb +0 -28
  241. data/doc/ex/modulate.rb +0 -11
  242. data/doc/ex/mono.rb +0 -23
  243. data/doc/ex/morph.rb +0 -25
  244. data/doc/ex/mosaic.rb +0 -37
  245. data/doc/ex/motion_blur.rb +0 -11
  246. data/doc/ex/negate.rb +0 -11
  247. data/doc/ex/negate_channel.rb +0 -9
  248. data/doc/ex/nested_rvg.rb +0 -21
  249. data/doc/ex/nonzero.rb +0 -42
  250. data/doc/ex/normalize.rb +0 -11
  251. data/doc/ex/oil_paint.rb +0 -11
  252. data/doc/ex/opacity.rb +0 -37
  253. data/doc/ex/ordered_dither.rb +0 -11
  254. data/doc/ex/path.rb +0 -63
  255. data/doc/ex/pattern1.rb +0 -25
  256. data/doc/ex/pattern2.rb +0 -26
  257. data/doc/ex/polaroid.rb +0 -26
  258. data/doc/ex/polygon.rb +0 -23
  259. data/doc/ex/polygon01.rb +0 -21
  260. data/doc/ex/polyline.rb +0 -22
  261. data/doc/ex/polyline01.rb +0 -21
  262. data/doc/ex/posterize.rb +0 -8
  263. data/doc/ex/preview.rb +0 -8
  264. data/doc/ex/qbezierpath.rb +0 -52
  265. data/doc/ex/quad01.rb +0 -34
  266. data/doc/ex/quantize-m.rb +0 -25
  267. data/doc/ex/radial_blur.rb +0 -9
  268. data/doc/ex/raise.rb +0 -8
  269. data/doc/ex/random_threshold_channel.rb +0 -13
  270. data/doc/ex/rect01.rb +0 -14
  271. data/doc/ex/rect02.rb +0 -20
  272. data/doc/ex/rectangle.rb +0 -34
  273. data/doc/ex/reduce_noise.rb +0 -28
  274. data/doc/ex/remap.rb +0 -11
  275. data/doc/ex/remap_images.rb +0 -19
  276. data/doc/ex/resize_to_fill.rb +0 -8
  277. data/doc/ex/resize_to_fit.rb +0 -8
  278. data/doc/ex/roll.rb +0 -9
  279. data/doc/ex/rotate.rb +0 -44
  280. data/doc/ex/rotate_f.rb +0 -14
  281. data/doc/ex/roundrect.rb +0 -33
  282. data/doc/ex/rubyname.rb +0 -30
  283. data/doc/ex/rvg_clippath.rb +0 -12
  284. data/doc/ex/rvg_linecap.rb +0 -42
  285. data/doc/ex/rvg_linejoin.rb +0 -40
  286. data/doc/ex/rvg_opacity.rb +0 -18
  287. data/doc/ex/rvg_pattern.rb +0 -26
  288. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  289. data/doc/ex/segment.rb +0 -11
  290. data/doc/ex/sepiatone.rb +0 -7
  291. data/doc/ex/shade.rb +0 -11
  292. data/doc/ex/shadow.rb +0 -30
  293. data/doc/ex/shave.rb +0 -15
  294. data/doc/ex/shear.rb +0 -10
  295. data/doc/ex/sketch.rb +0 -17
  296. data/doc/ex/skewx.rb +0 -51
  297. data/doc/ex/skewy.rb +0 -47
  298. data/doc/ex/smile.rb +0 -126
  299. data/doc/ex/solarize.rb +0 -11
  300. data/doc/ex/sparse_color.rb +0 -55
  301. data/doc/ex/splice.rb +0 -8
  302. data/doc/ex/spread.rb +0 -11
  303. data/doc/ex/stegano.rb +0 -54
  304. data/doc/ex/stroke_dasharray.rb +0 -42
  305. data/doc/ex/stroke_fill.rb +0 -10
  306. data/doc/ex/stroke_linecap.rb +0 -44
  307. data/doc/ex/stroke_linejoin.rb +0 -48
  308. data/doc/ex/stroke_width.rb +0 -49
  309. data/doc/ex/swirl.rb +0 -17
  310. data/doc/ex/text.rb +0 -37
  311. data/doc/ex/text01.rb +0 -16
  312. data/doc/ex/text_align.rb +0 -36
  313. data/doc/ex/text_antialias.rb +0 -37
  314. data/doc/ex/text_styles.rb +0 -19
  315. data/doc/ex/text_undercolor.rb +0 -28
  316. data/doc/ex/texture_fill_to_border.rb +0 -34
  317. data/doc/ex/texture_floodfill.rb +0 -32
  318. data/doc/ex/texturefill.rb +0 -24
  319. data/doc/ex/threshold.rb +0 -13
  320. data/doc/ex/to_blob.rb +0 -13
  321. data/doc/ex/translate.rb +0 -39
  322. data/doc/ex/transparent.rb +0 -38
  323. data/doc/ex/transpose.rb +0 -9
  324. data/doc/ex/transverse.rb +0 -9
  325. data/doc/ex/tref01.rb +0 -24
  326. data/doc/ex/triangle01.rb +0 -15
  327. data/doc/ex/trim.rb +0 -23
  328. data/doc/ex/tspan01.rb +0 -17
  329. data/doc/ex/tspan02.rb +0 -17
  330. data/doc/ex/tspan03.rb +0 -19
  331. data/doc/ex/unsharp_mask.rb +0 -28
  332. data/doc/ex/viewex.rb +0 -33
  333. data/doc/ex/vignette.rb +0 -12
  334. data/doc/ex/watermark.rb +0 -27
  335. data/doc/ex/wave.rb +0 -9
  336. data/doc/ex/wet_floor.rb +0 -58
  337. data/doc/ex/writing_mode01.rb +0 -26
  338. data/doc/ex/writing_mode02.rb +0 -26
  339. data/doc/ilist.html +0 -2056
  340. data/doc/image1.html +0 -4680
  341. data/doc/image2.html +0 -3665
  342. data/doc/image3.html +0 -4522
  343. data/doc/imageattrs.html +0 -1638
  344. data/doc/imusage.html +0 -514
  345. data/doc/index.html +0 -416
  346. data/doc/info.html +0 -1499
  347. data/doc/magick.html +0 -570
  348. data/doc/optequiv.html +0 -2435
  349. data/doc/rvg.html +0 -975
  350. data/doc/rvgclip.html +0 -248
  351. data/doc/rvggroup.html +0 -305
  352. data/doc/rvgimage.html +0 -289
  353. data/doc/rvgpattern.html +0 -475
  354. data/doc/rvgshape.html +0 -406
  355. data/doc/rvgstyle.html +0 -270
  356. data/doc/rvgtext.html +0 -465
  357. data/doc/rvgtspan.html +0 -238
  358. data/doc/rvgtut.html +0 -530
  359. data/doc/rvguse.html +0 -145
  360. data/doc/rvgxform.html +0 -294
  361. data/doc/scripts/doc.js +0 -22
  362. data/doc/scripts/stripeTables.js +0 -23
  363. data/doc/struct.html +0 -1339
  364. data/doc/usage.html +0 -1621
  365. data/examples/constitute.rb +0 -7
  366. data/examples/crop_with_gravity.rb +0 -42
  367. data/examples/demo.rb +0 -323
  368. data/examples/describe.rb +0 -41
  369. data/examples/find_similar_region.rb +0 -34
  370. data/examples/histogram.rb +0 -312
  371. data/examples/identify.rb +0 -174
  372. data/examples/image_opacity.rb +0 -28
  373. data/examples/import_export.rb +0 -31
  374. data/examples/pattern_fill.rb +0 -37
  375. data/examples/rotating_text.rb +0 -45
  376. data/examples/spinner.rb +0 -49
  377. data/examples/thumbnail.rb +0 -64
  378. data/examples/vignette.rb +0 -78
  379. data/lib/obsolete.rb +0 -66
  380. data/spec/rmagick/ImageList1_spec.rb +0 -24
  381. data/spec/rmagick/draw_spec.rb +0 -155
  382. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  383. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  384. data/spec/rmagick/image/composite_spec.rb +0 -72
  385. data/spec/rmagick/image/constitute_spec.rb +0 -13
  386. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  387. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  388. data/spec/rmagick/image/ping_spec.rb +0 -12
  389. data/spec/rmagick/image/properties_spec.rb +0 -27
  390. data/spec/rmagick/image/read_spec.rb +0 -28
  391. data/spec/spec_helper.rb +0 -10
  392. data/spec/support/issue_200/app.rb +0 -8
  393. data/test/Draw.rb +0 -351
  394. data/test/Enum.rb +0 -228
  395. data/test/Fill.rb +0 -93
  396. data/test/Image1.rb +0 -627
  397. data/test/Image2.rb +0 -1426
  398. data/test/Image3.rb +0 -1091
  399. data/test/ImageList1.rb +0 -858
  400. data/test/ImageList2.rb +0 -406
  401. data/test/Image_attributes.rb +0 -666
  402. data/test/Import_Export.rb +0 -115
  403. data/test/Info.rb +0 -444
  404. data/test/KernelInfo.rb +0 -67
  405. data/test/Magick.rb +0 -311
  406. data/test/Pixel.rb +0 -285
  407. data/test/PolaroidOptions.rb +0 -23
  408. data/test/Preview.rb +0 -26
  409. data/test/Struct.rb +0 -45
  410. data/test/appearance/Montage.rb +0 -26
  411. data/test/appearance/appearance_assertion.rb +0 -13
  412. data/test/appearance/expected/montage_border_color.jpg +0 -0
  413. data/test/cmyk.icm +0 -0
  414. data/test/lib/Obsolete.rb +0 -30
  415. data/test/lib/internal/Draw.rb +0 -823
  416. data/test/lib/internal/Geometry.rb +0 -98
  417. data/test/lib/internal/Magick.rb +0 -40
  418. data/test/srgb.icm +0 -0
  419. data/test/test_all_basic.rb +0 -49
  420. data/test/tmpnam_test.rb +0 -50
@@ -5,7 +5,8 @@
5
5
  module Magick
6
6
  class RVG
7
7
  # Parent class of Circle, Ellipse, Text, etc.
8
- class Shape #:nodoc:
8
+ # @private
9
+ class Shape
9
10
  include Stylable
10
11
  include Transformable
11
12
  include Duplicatable
@@ -30,7 +31,6 @@ module Magick
30
31
 
31
32
  @primitive = :circle
32
33
  @args = [cx, cy, cx + r, cy]
33
- self
34
34
  end
35
35
  end # class Circle
36
36
 
@@ -222,7 +222,8 @@ module Magick
222
222
  init_viewbox
223
223
  end
224
224
 
225
- def add_primitives(gc) #:nodoc:
225
+ # @private
226
+ def add_primitives(gc)
226
227
  # Do not render if width or height is 0
227
228
  return if @width.zero? || @height.zero?
228
229
 
@@ -332,7 +333,7 @@ module Magick
332
333
  y = Float(y)
333
334
  rescue ArgumentError
334
335
  args = [cols, rows, x, y]
335
- raise ArgumentError, "at least one argument is not convertable to Float (got #{args.collect(&:class).join(', ')})"
336
+ raise ArgumentError, "at least one argument is not convertable to Float (got #{args.map(&:class).join(', ')})"
336
337
  end
337
338
  rvg.corner(x, y)
338
339
  @content << rvg
data/lib/rvg/misc.rb CHANGED
@@ -34,7 +34,7 @@ module Magick
34
34
  # Convert an array of method arguments to Float objects. If any
35
35
  # cannot be converted, raise ArgumentError and issue a message.
36
36
  def self.fmsg(*args)
37
- "at least one argument cannot be converted to Float (got #{args.collect(&:class).join(', ')})"
37
+ "at least one argument cannot be converted to Float (got #{args.map(&:class).join(', ')})"
38
38
  end
39
39
 
40
40
  def self.convert_to_float(*args)
@@ -44,7 +44,7 @@ module Magick
44
44
  args.pop
45
45
  end
46
46
  begin
47
- fargs = args.collect { |a| allow_nil && a.nil? ? a : Float(a) }
47
+ fargs = args.map { |a| allow_nil && a.nil? ? a : Float(a) }
48
48
  rescue ArgumentError, TypeError
49
49
  raise ArgumentError, fmsg(*args)
50
50
  end
@@ -173,7 +173,7 @@ module Magick
173
173
 
174
174
  def render(x, y, text)
175
175
  x_rel_coords, y_rel_coords = text_rel_coords(text)
176
- dx = x_rel_coords.inject(0) { |sum, a| sum + a }
176
+ dx = x_rel_coords.reduce(0) { |sum, a| sum + a }
177
177
  dy = y_rel_coords.max
178
178
 
179
179
  # We're handling the anchoring.
@@ -234,7 +234,7 @@ module Magick
234
234
  def render(x, y, text)
235
235
  x_rel_coords, y_rel_coords = text_rel_coords(text)
236
236
  dx = x_rel_coords.max
237
- dy = y_rel_coords.inject(0) { |sum, a| sum + a }
237
+ dy = y_rel_coords.reduce(0) { |sum, a| sum + a }
238
238
 
239
239
  # We're handling the anchoring.
240
240
  @ctx.gc.push
@@ -478,9 +478,12 @@ module Magick
478
478
  }
479
479
 
480
480
  TEXT_STRATEGIES = {
481
- 'lr-tb' => LRTextStrategy, 'lr' => LRTextStrategy,
482
- 'rt-tb' => RLTextStrategy, 'rl' => RLTextStrategy,
483
- 'tb-rl' => TBTextStrategy, 'tb' => TBTextStrategy
481
+ 'lr-tb' => LRTextStrategy,
482
+ 'lr' => LRTextStrategy,
483
+ 'rt-tb' => RLTextStrategy,
484
+ 'rl' => RLTextStrategy,
485
+ 'tb-rl' => TBTextStrategy,
486
+ 'tb' => TBTextStrategy
484
487
  }
485
488
 
486
489
  def self.degrees_to_radians(deg)
@@ -533,7 +536,7 @@ module Magick
533
536
  def baseline_shift(value)
534
537
  @text_attrs.baseline_shift = case value
535
538
  when 'baseline', 'sub', 'super'
536
- value.intern
539
+ value.to_sym
537
540
  when /[-+]?\d+%/, Numeric
538
541
  value
539
542
  else
@@ -561,14 +564,14 @@ module Magick
561
564
  end
562
565
 
563
566
  def font_stretch(stretch)
564
- stretch = FONT_STRETCH.fetch(stretch.intern, Magick::NormalStretch)
567
+ stretch = FONT_STRETCH.fetch(stretch.to_sym, Magick::NormalStretch)
565
568
  @gc.font_stretch(stretch)
566
569
  @shadow[-1].font_stretch = stretch
567
570
  nil
568
571
  end
569
572
 
570
573
  def font_style(style)
571
- style = FONT_STYLE.fetch(style.intern, Magick::NormalStyle)
574
+ style = FONT_STYLE.fetch(style.to_sym, Magick::NormalStyle)
572
575
  @gc.font_style(style)
573
576
  @shadow[-1].font_style = style
574
577
  nil
@@ -677,7 +680,7 @@ module Magick
677
680
  end
678
681
 
679
682
  def text_anchor(anchor)
680
- anchor = anchor.intern
683
+ anchor = anchor.to_sym
681
684
  anchor_enum = TEXT_ANCHOR.fetch(anchor, Magick::StartAnchor)
682
685
  @gc.text_anchor(anchor_enum)
683
686
  align = ANCHOR_TO_ALIGN.fetch(anchor, Magick::LeftAlign)
@@ -687,7 +690,7 @@ module Magick
687
690
  end
688
691
 
689
692
  def text_decoration(decoration)
690
- decoration = TEXT_DECORATION.fetch(decoration.intern, Magick::NoDecoration)
693
+ decoration = TEXT_DECORATION.fetch(decoration.to_sym, Magick::NoDecoration)
691
694
  @gc.decorate(decoration)
692
695
  @shadow[-1].decorate = decoration
693
696
  nil
data/lib/rvg/paint.rb CHANGED
@@ -37,7 +37,8 @@ module Magick
37
37
  yield(self) if block_given?
38
38
  end
39
39
 
40
- def add_primitives(gc, style) #:nodoc:
40
+ # @private
41
+ def add_primitives(gc, style)
41
42
  name = __id__.to_s
42
43
  gc.pattern(name, @x, @y, @width, @height) do
43
44
  add_viewbox_primitives(@width, @height, gc)
data/lib/rvg/pathdata.rb CHANGED
@@ -15,7 +15,7 @@ module Magick
15
15
  return unless coords
16
16
  raise ArgumentError, "wrong number of coordinates specified. A multiple of #{req} required, #{req + coords.length} given." if coords.length % req != 0
17
17
 
18
- coords.each { |c| @path << format('%g', c) }
18
+ coords.each { |c| @path << sprintf('%g', c) }
19
19
  end
20
20
 
21
21
  public
@@ -30,7 +30,8 @@ module Magick
30
30
  @path
31
31
  end
32
32
 
33
- def deep_copy(_h = nil) #:nodoc:
33
+ # @private
34
+ def deep_copy(_h = nil)
34
35
  @path.dup
35
36
  end
36
37
 
@@ -38,7 +39,7 @@ module Magick
38
39
  # <tt>true</tt> the coordinates are absolute, otherwise
39
40
  # the coordinates are relative.
40
41
  def moveto(abs, x, y, *coords)
41
- @path << format('%s%g,%g ', (abs ? 'M' : 'm'), x, y)
42
+ @path << sprintf('%s%g,%g ', (abs ? 'M' : 'm'), x, y)
42
43
  # "subsequent pairs are treated as implicit lineto commands"
43
44
  add_points(2, *coords)
44
45
  end
@@ -54,7 +55,7 @@ module Magick
54
55
  # <tt>true</tt> the coordinates are absolute, otherwise
55
56
  # the coordinates are relative.
56
57
  def lineto(abs, x, y, *coords)
57
- @path << format('%s%g,%g ', (abs ? 'L' : 'l'), x, y)
58
+ @path << sprintf('%s%g,%g ', (abs ? 'L' : 'l'), x, y)
58
59
  # "a number of coordinate pairs may be specified to draw a polyline"
59
60
  add_points(2, *coords)
60
61
  end
@@ -63,14 +64,14 @@ module Magick
63
64
  # <tt>true</tt> the coordinates are absolute, otherwise
64
65
  # the coordinates are relative.
65
66
  def hlineto(abs, x)
66
- @path << format('%s%g ', (abs ? 'H' : 'h'), x)
67
+ @path << sprintf('%s%g ', (abs ? 'H' : 'h'), x)
67
68
  end
68
69
 
69
70
  # Add a <tt>vertical lineto</tt> command. If <tt>abs</tt> is
70
71
  # <tt>true</tt> the coordinates are absolute, otherwise
71
72
  # the coordinates are relative.
72
73
  def vlineto(abs, y)
73
- @path << format('%s%g ', (abs ? 'V' : 'v'), y)
74
+ @path << sprintf('%s%g ', (abs ? 'V' : 'v'), y)
74
75
  end
75
76
 
76
77
  # Add a <tt>curveto</tt> (<em>cubic Bezier</em>) command.
@@ -78,7 +79,7 @@ module Magick
78
79
  # <tt>true</tt> the coordinates are absolute, otherwise
79
80
  # the coordinates are relative.
80
81
  def curveto(abs, x1, y1, x2, y2, x, y, *coords)
81
- @path << format('%s%g,%g %g,%g %g,%g ', (abs ? 'C' : 'c'), x1, y1, x2, y2, x, y)
82
+ @path << sprintf('%s%g,%g %g,%g %g,%g ', (abs ? 'C' : 'c'), x1, y1, x2, y2, x, y)
82
83
  # "multiple sets of coordinates may be specified to draw a polybezier"
83
84
  add_points(6, *coords)
84
85
  end
@@ -88,7 +89,7 @@ module Magick
88
89
  # <tt>true</tt> the coordinates are absolute, otherwise
89
90
  # the coordinates are relative.
90
91
  def smooth_curveto(abs, x2, y2, x, y, *coords)
91
- @path << format('%s%g,%g %g,%g ', (abs ? 'S' : 's'), x2, y2, x, y)
92
+ @path << sprintf('%s%g,%g %g,%g ', (abs ? 'S' : 's'), x2, y2, x, y)
92
93
  # "multiple sets of coordinates may be specified to draw a polybezier"
93
94
  add_points(4, *coords)
94
95
  end
@@ -98,7 +99,7 @@ module Magick
98
99
  # <tt>true</tt> the coordinates are absolute, otherwise
99
100
  # the coordinates are relative.
100
101
  def quadratic_curveto(abs, x1, y1, x, y, *coords)
101
- @path << format('%s%g,%g %g,%g ', (abs ? 'Q' : 'q'), x1, y1, x, y)
102
+ @path << sprintf('%s%g,%g %g,%g ', (abs ? 'Q' : 'q'), x1, y1, x, y)
102
103
  add_points(4, *coords)
103
104
  end
104
105
 
@@ -107,7 +108,7 @@ module Magick
107
108
  # <tt>true</tt> the coordinates are absolute, otherwise
108
109
  # the coordinates are relative.
109
110
  def smooth_quadratic_curveto(abs, x, y, *coords)
110
- @path << format('%s%g,%g ', (abs ? 'T' : 't'), x, y)
111
+ @path << sprintf('%s%g,%g ', (abs ? 'T' : 't'), x, y)
111
112
  add_points(2, *coords)
112
113
  end
113
114
 
@@ -117,7 +118,7 @@ module Magick
117
118
  # the coordinates are relative.
118
119
 
119
120
  def arc(abs, rx, ry, x_axis_rotation, large_arc_flag, sweep_flag, x, y)
120
- @path << format('%s%g,%g %g %d %d %g,%g ', (abs ? 'A' : 'a'), rx, ry, x_axis_rotation, large_arc_flag, sweep_flag, x, y)
121
+ @path << sprintf('%s%g,%g %g %d %d %g,%g ', (abs ? 'A' : 'a'), rx, ry, x_axis_rotation, large_arc_flag, sweep_flag, x, y)
121
122
  end
122
123
  end # class PathData
123
124
  end # class RVG
data/lib/rvg/rvg.rb CHANGED
@@ -60,10 +60,10 @@ module Magick
60
60
  # else, combine it with the background_fill_opacity.
61
61
  def bgfill
62
62
  if @background_fill.nil?
63
- color = Magick::Pixel.new(0, 0, 0, Magick::TransparentOpacity)
63
+ color = Magick::Pixel.new(0, 0, 0, Magick::OpaqueAlpha)
64
64
  else
65
65
  color = @background_fill
66
- color.opacity = (1.0 - @background_fill_opacity) * Magick::TransparentOpacity
66
+ color.alpha = @background_fill_opacity * Magick::OpaqueAlpha
67
67
  end
68
68
  color
69
69
  end
@@ -85,7 +85,7 @@ module Magick
85
85
  @background_image.change_geometry(Magick::Geometry.new(width, height)) do |new_cols, new_rows|
86
86
  bg_image = @background_image.resize(new_cols, new_rows)
87
87
  if bg_image.columns != width || bg_image.rows != height
88
- bg = Magick::Image.new(width, height) { self.background_color = bgcolor }
88
+ bg = Magick::Image.new(width, height) { |options| options.background_color = bgcolor }
89
89
  bg_image = bg.composite!(bg_image, Magick::CenterGravity, Magick::OverCompositeOp)
90
90
  end
91
91
  bg_image
@@ -96,7 +96,7 @@ module Magick
96
96
  end
97
97
  else
98
98
  bgcolor = bgfill
99
- canvas = Magick::Image.new(Integer(@width), Integer(@height)) { self.background_color = bgcolor }
99
+ canvas = Magick::Image.new(Integer(@width), Integer(@height)) { |options| options.background_color = bgcolor }
100
100
  end
101
101
  canvas[:desc] = @desc if @desc
102
102
  canvas[:title] = @title if @title
@@ -242,14 +242,16 @@ module Magick
242
242
 
243
243
  # Accept #use arguments. Use (x,y) to generate an additional translate.
244
244
  # Override @width and @height if new values are supplied.
245
- def ref(x, y, rw, rh) #:nodoc:
245
+ # @private
246
+ def ref(x, y, rw, rh)
246
247
  translate(x, y) if x != 0 || y != 0
247
248
  @width = rw if rw
248
249
  @height = rh if rh
249
250
  end
250
251
 
251
252
  # Used by Magick::Embellishable.rvg to set non-0 x- and y-coordinates
252
- def corner(x, y) #:nodoc:
253
+ # @private
254
+ def corner(x, y)
253
255
  @nested = true
254
256
  @x = Float(x)
255
257
  @y = Float(y)
@@ -257,7 +259,8 @@ module Magick
257
259
  end
258
260
 
259
261
  # Primitives for the outermost RVG object
260
- def add_outermost_primitives(gc) #:nodoc:
262
+ # @private
263
+ def add_outermost_primitives(gc)
261
264
  add_transform_primitives(gc)
262
265
  gc.push
263
266
  add_viewbox_primitives(@width, @height, gc)
@@ -268,7 +271,8 @@ module Magick
268
271
  end
269
272
 
270
273
  # Primitives for nested RVG objects
271
- def add_primitives(gc) #:nodoc:
274
+ # @private
275
+ def add_primitives(gc)
272
276
  raise ArgumentError, 'RVG width or height undefined' if @width.nil? || @height.nil?
273
277
  return self if @width.zero? || @height.zero?
274
278
 
data/lib/rvg/stylable.rb CHANGED
@@ -5,13 +5,15 @@
5
5
  module Magick
6
6
  class RVG
7
7
  #:stopdoc:
8
- STYLES = %i[clip_path clip_rule fill fill_opacity fill_rule font
9
- font_family font_size font_stretch font_style font_weight
10
- opacity stroke stroke_dasharray stroke_dashoffset stroke_linecap
11
- stroke_linejoin stroke_miterlimit stroke_opacity stroke_width
12
- text_anchor text_decoration
13
- glyph_orientation_vertical glyph_orientation_horizontal
14
- letter_spacing word_spacing baseline_shift writing_mode]
8
+ STYLES = %i[
9
+ clip_path clip_rule fill fill_opacity fill_rule font
10
+ font_family font_size font_stretch font_style font_weight
11
+ opacity stroke stroke_dasharray stroke_dashoffset stroke_linecap
12
+ stroke_linejoin stroke_miterlimit stroke_opacity stroke_width
13
+ text_anchor text_decoration
14
+ glyph_orientation_vertical glyph_orientation_horizontal
15
+ letter_spacing word_spacing baseline_shift writing_mode
16
+ ]
15
17
 
16
18
  Styles = Struct.new(*STYLES)
17
19
 
data/lib/rvg/text.rb CHANGED
@@ -12,7 +12,7 @@ module Magick
12
12
 
13
13
  private
14
14
 
15
- def initialize(text) #:nodoc:
15
+ def initialize(text)
16
16
  super()
17
17
  @text = text.to_s if text
18
18
  @dx = @dy = 0
@@ -48,7 +48,8 @@ module Magick
48
48
  end
49
49
 
50
50
  # We do our own transformations.
51
- def add_primitives(gc) #:nodoc:
51
+ # @private
52
+ def add_primitives(gc)
52
53
  return if !@text && @tspans.empty?
53
54
 
54
55
  gc.push
@@ -73,7 +74,8 @@ module Magick
73
74
  end # class TextBase
74
75
 
75
76
  # Tspan and Tref shared methods - read/update @cx, @cy in parent Text object.
76
- module TextLink #:nodoc:
77
+ # @private
78
+ module TextLink
77
79
  def add_primitives(gc)
78
80
  @parent.cx = @x if @x
79
81
  @parent.cy = @y if @y
@@ -97,7 +99,8 @@ module Magick
97
99
  end
98
100
  end # module TextLink
99
101
 
100
- class Tref < TextBase #:nodoc:
102
+ # @private
103
+ class Tref < TextBase
101
104
  include TextLink
102
105
 
103
106
  def initialize(obj, x, y, parent)
@@ -108,7 +111,8 @@ module Magick
108
111
  end
109
112
  end # class Tref
110
113
 
111
- class Tspan < TextBase #:nodoc:
114
+ # @private
115
+ class Tspan < TextBase
112
116
  include TextLink
113
117
 
114
118
  attr_accessor :parent
@@ -125,7 +129,8 @@ module Magick
125
129
  end # class Tspan
126
130
 
127
131
  class Text < TextBase
128
- attr_accessor :cx, :cy #:nodoc:
132
+ # @private
133
+ attr_accessor :cx, :cy
129
134
 
130
135
  # Define a text string starting at [<tt>x</tt>, <tt>y</tt>].
131
136
  # Use the RVG::TextConstructors#text method to create Text objects in a container.
@@ -6,7 +6,8 @@ module Magick
6
6
  class RVG
7
7
  # Transforms is an Array with a deep_copy method.
8
8
  # During unit-testing it also has a deep_equal method.
9
- class Transforms < Array #:nodoc:
9
+ # @private
10
+ class Transforms < Array
10
11
  def deep_copy(_h = nil)
11
12
  copy = self.class.new
12
13
  each { |transform| copy << [transform[0], transform[1].dup] }
@@ -94,7 +95,7 @@ module Magick
94
95
  raise ArgumentError, "wrong number of arguments (#{args.length} for 1 or 3)"
95
96
  end
96
97
  rescue ArgumentError
97
- raise ArgumentError, "arguments must be convertable to float (got #{[angle, *args].collect(&:class).join(', ')})"
98
+ raise ArgumentError, "arguments must be convertable to float (got #{[angle, *args].map(&:class).join(', ')})"
98
99
  end
99
100
  yield(self) if block_given?
100
101
  self
data/lib/rvg/units.rb CHANGED
@@ -8,7 +8,7 @@ module Magick
8
8
  def dpi=(n)
9
9
  unless defined?(@dpi)
10
10
  [Float, Integer].each do |c|
11
- c.class_eval <<-END_DEFS
11
+ c.class_eval <<-END_DEFS, __FILE__, __LINE__ + 1
12
12
  # the default measurement - 1px is 1 pixel
13
13
  def px
14
14
  self
data/rmagick.gemspec CHANGED
@@ -14,26 +14,25 @@ Gem::Specification.new do |s|
14
14
  s.license = 'MIT'
15
15
 
16
16
  tracked_files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
17
- file_exclusion_regex = %r{(\Alib/rvg/to_c.rb)}
18
- files = tracked_files.reject { |file| file[file_exclusion_regex] }
19
- test_files = files.grep(%r{^(test|spec|features)/})
20
- executables = files.grep(%r{^bin/}).map { |f| File.basename(f) }
17
+ file_exclusion_regex = %r{\A(doc|benchmarks|examples|spec|lib/rvg/to_c.rb)}
18
+ files = tracked_files.reject { |file| file[file_exclusion_regex] }
21
19
 
22
- s.files = files
23
- s.test_files = test_files
24
- s.executables = executables
20
+ s.files = files
25
21
  s.require_paths << 'ext' << 'deprecated'
26
22
 
27
- s.rubyforge_project = 'rmagick'
28
23
  s.extensions = %w[ext/RMagick/extconf.rb]
29
24
  s.required_ruby_version = ">= #{Magick::MIN_RUBY_VERSION}"
30
25
  s.requirements << "ImageMagick #{Magick::MIN_IM_VERSION} or later"
31
26
 
27
+ s.add_development_dependency 'pry', '~> 0.14'
32
28
  s.add_development_dependency 'rake-compiler', '~> 1.0'
33
29
  s.add_development_dependency 'rspec', '~> 3.8'
34
30
  s.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
35
- s.add_development_dependency 'rubocop', '~> 0.64.0'
36
- s.add_development_dependency 'rubocop-rspec', '~> 1.32.0'
31
+ if RUBY_PLATFORM !~ /mswin|mingw/
32
+ s.add_development_dependency 'rubocop', '~> 0.81.0'
33
+ s.add_development_dependency 'rubocop-rspec', '~> 1.38.1'
34
+ s.add_development_dependency 'rubocop-performance', '~> 1.5.2'
35
+ end
37
36
  s.add_development_dependency 'simplecov', '~> 0.16.1'
38
- s.add_development_dependency 'test-unit', '~> 2.5'
37
+ s.add_development_dependency 'yard', '~> 0.9.24'
39
38
  end