rmagick 2.13.2 → 4.2.2

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 (380) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +17 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +107 -0
  6. data/.gitignore +25 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +37 -0
  9. data/.rubocop_todo.yml +449 -0
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +1277 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +81 -0
  14. data/Gemfile +4 -0
  15. data/LICENSE +20 -0
  16. data/README.md +324 -0
  17. data/Rakefile +190 -0
  18. data/before_install_linux.sh +69 -0
  19. data/before_install_osx.sh +57 -0
  20. data/deprecated/RMagick.rb +6 -0
  21. data/ext/RMagick/extconf.rb +334 -333
  22. data/ext/RMagick/rmagick.c +129 -127
  23. data/ext/RMagick/rmagick.h +221 -320
  24. data/ext/RMagick/rmdraw.c +458 -767
  25. data/ext/RMagick/rmenum.c +305 -752
  26. data/ext/RMagick/rmfill.c +231 -199
  27. data/ext/RMagick/rmilist.c +437 -478
  28. data/ext/RMagick/rmimage.c +6130 -5342
  29. data/ext/RMagick/rminfo.c +695 -833
  30. data/ext/RMagick/rmkinfo.c +198 -0
  31. data/ext/RMagick/rmmain.c +752 -506
  32. data/ext/RMagick/rmmontage.c +94 -152
  33. data/ext/RMagick/rmpixel.c +619 -425
  34. data/ext/RMagick/rmstruct.c +206 -309
  35. data/ext/RMagick/rmutil.c +514 -344
  36. data/lib/rmagick/version.rb +5 -0
  37. data/lib/rmagick.rb +1 -0
  38. data/lib/rmagick_internal.rb +1922 -0
  39. data/lib/rvg/clippath.rb +35 -39
  40. data/lib/rvg/container.rb +123 -124
  41. data/lib/rvg/deep_equal.rb +45 -49
  42. data/lib/rvg/describable.rb +41 -47
  43. data/lib/rvg/embellishable.rb +380 -411
  44. data/lib/rvg/misc.rb +691 -711
  45. data/lib/rvg/paint.rb +43 -47
  46. data/lib/rvg/pathdata.rb +119 -125
  47. data/lib/rvg/rvg.rb +214 -213
  48. data/lib/rvg/stretchable.rb +153 -162
  49. data/lib/rvg/stylable.rb +111 -117
  50. data/lib/rvg/text.rb +169 -180
  51. data/lib/rvg/transformable.rb +121 -127
  52. data/lib/rvg/units.rb +58 -61
  53. data/rmagick.gemspec +36 -16
  54. metadata +188 -365
  55. data/ChangeLog +0 -773
  56. data/Doxyfile +0 -1514
  57. data/README-Mac-OSX.txt +0 -1
  58. data/README.html +0 -10
  59. data/build_tarball.rake +0 -215
  60. data/doc/comtasks.html +0 -287
  61. data/doc/constants.html +0 -1581
  62. data/doc/css/doc.css +0 -299
  63. data/doc/css/popup.css +0 -34
  64. data/doc/css/ref.css +0 -67
  65. data/doc/draw.html +0 -3269
  66. data/doc/ex/InitialCoords.rb +0 -23
  67. data/doc/ex/NewCoordSys.rb +0 -32
  68. data/doc/ex/OrigCoordSys.rb +0 -18
  69. data/doc/ex/PreserveAspectRatio.rb +0 -205
  70. data/doc/ex/RotateScale.rb +0 -37
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -16
  73. data/doc/ex/Use02.rb +0 -21
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -33
  76. data/doc/ex/adaptive_threshold.rb +0 -10
  77. data/doc/ex/add_noise.rb +0 -17
  78. data/doc/ex/affine.rb +0 -48
  79. data/doc/ex/affine_transform.rb +0 -20
  80. data/doc/ex/arc.rb +0 -49
  81. data/doc/ex/arcpath.rb +0 -33
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -61
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -18
  87. data/doc/ex/bilevel_channel.rb +0 -9
  88. data/doc/ex/blur_image.rb +0 -12
  89. data/doc/ex/border.rb +0 -10
  90. data/doc/ex/bounding_box.rb +0 -44
  91. data/doc/ex/cbezier1.rb +0 -42
  92. data/doc/ex/cbezier2.rb +0 -42
  93. data/doc/ex/cbezier3.rb +0 -42
  94. data/doc/ex/cbezier4.rb +0 -43
  95. data/doc/ex/cbezier5.rb +0 -43
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -26
  98. data/doc/ex/charcoal.rb +0 -12
  99. data/doc/ex/chop.rb +0 -29
  100. data/doc/ex/circle.rb +0 -33
  101. data/doc/ex/circle01.rb +0 -17
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -60
  104. data/doc/ex/color_fill_to_border.rb +0 -29
  105. data/doc/ex/color_floodfill.rb +0 -28
  106. data/doc/ex/color_histogram.rb +0 -48
  107. data/doc/ex/color_reset.rb +0 -11
  108. data/doc/ex/colorize.rb +0 -16
  109. data/doc/ex/colors.rb +0 -64
  110. data/doc/ex/compose_mask.rb +0 -23
  111. data/doc/ex/composite.rb +0 -135
  112. data/doc/ex/composite_layers.rb +0 -53
  113. data/doc/ex/composite_tiled.rb +0 -23
  114. data/doc/ex/contrast.rb +0 -36
  115. data/doc/ex/crop.rb +0 -31
  116. data/doc/ex/crop_with_gravity.rb +0 -46
  117. data/doc/ex/cubic01.rb +0 -45
  118. data/doc/ex/cubic02.rb +0 -94
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -13
  121. data/doc/ex/drawcomp.rb +0 -42
  122. data/doc/ex/drop_shadow.rb +0 -60
  123. data/doc/ex/edge.rb +0 -11
  124. data/doc/ex/ellipse.rb +0 -45
  125. data/doc/ex/ellipse01.rb +0 -22
  126. data/doc/ex/emboss.rb +0 -11
  127. data/doc/ex/enhance.rb +0 -28
  128. data/doc/ex/equalize.rb +0 -11
  129. data/doc/ex/evenodd.rb +0 -43
  130. data/doc/ex/fill_pattern.rb +0 -26
  131. data/doc/ex/flatten_images.rb +0 -36
  132. data/doc/ex/flip.rb +0 -11
  133. data/doc/ex/flop.rb +0 -11
  134. data/doc/ex/font_styles.rb +0 -34
  135. data/doc/ex/fonts.rb +0 -20
  136. data/doc/ex/frame.rb +0 -12
  137. data/doc/ex/gaussian_blur.rb +0 -11
  138. data/doc/ex/get_multiline_type_metrics.rb +0 -42
  139. data/doc/ex/get_pixels.rb +0 -48
  140. data/doc/ex/get_type_metrics.rb +0 -146
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -46
  143. data/doc/ex/gravity.rb +0 -79
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -46
  147. data/doc/ex/images/Apple.miff +0 -0
  148. data/doc/ex/images/Ballerina.jpg +0 -0
  149. data/doc/ex/images/Ballerina3.jpg +0 -0
  150. data/doc/ex/images/Button_0.gif +0 -0
  151. data/doc/ex/images/Button_1.gif +0 -0
  152. data/doc/ex/images/Button_2.gif +0 -0
  153. data/doc/ex/images/Button_3.gif +0 -0
  154. data/doc/ex/images/Button_4.gif +0 -0
  155. data/doc/ex/images/Button_5.gif +0 -0
  156. data/doc/ex/images/Button_6.gif +0 -0
  157. data/doc/ex/images/Button_7.gif +0 -0
  158. data/doc/ex/images/Button_8.gif +0 -0
  159. data/doc/ex/images/Button_9.gif +0 -0
  160. data/doc/ex/images/Button_A.gif +0 -0
  161. data/doc/ex/images/Button_B.gif +0 -0
  162. data/doc/ex/images/Button_C.gif +0 -0
  163. data/doc/ex/images/Button_D.gif +0 -0
  164. data/doc/ex/images/Button_E.gif +0 -0
  165. data/doc/ex/images/Button_F.gif +0 -0
  166. data/doc/ex/images/Button_G.gif +0 -0
  167. data/doc/ex/images/Button_H.gif +0 -0
  168. data/doc/ex/images/Button_I.gif +0 -0
  169. data/doc/ex/images/Button_J.gif +0 -0
  170. data/doc/ex/images/Button_K.gif +0 -0
  171. data/doc/ex/images/Button_L.gif +0 -0
  172. data/doc/ex/images/Button_M.gif +0 -0
  173. data/doc/ex/images/Button_N.gif +0 -0
  174. data/doc/ex/images/Button_O.gif +0 -0
  175. data/doc/ex/images/Button_P.gif +0 -0
  176. data/doc/ex/images/Button_Q.gif +0 -0
  177. data/doc/ex/images/Button_R.gif +0 -0
  178. data/doc/ex/images/Button_S.gif +0 -0
  179. data/doc/ex/images/Button_T.gif +0 -0
  180. data/doc/ex/images/Button_U.gif +0 -0
  181. data/doc/ex/images/Button_V.gif +0 -0
  182. data/doc/ex/images/Button_W.gif +0 -0
  183. data/doc/ex/images/Button_X.gif +0 -0
  184. data/doc/ex/images/Button_Y.gif +0 -0
  185. data/doc/ex/images/Button_Z.gif +0 -0
  186. data/doc/ex/images/Cheetah.jpg +0 -0
  187. data/doc/ex/images/Coffee.wmf +0 -0
  188. data/doc/ex/images/Flower_Hat.jpg +0 -0
  189. data/doc/ex/images/Gold_Statue.jpg +0 -0
  190. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  191. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  192. data/doc/ex/images/Leaf.miff +0 -0
  193. data/doc/ex/images/No.wmf +0 -0
  194. data/doc/ex/images/Polynesia.jpg +0 -0
  195. data/doc/ex/images/Red_Rocks.jpg +0 -0
  196. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  197. data/doc/ex/images/Shorts.jpg +0 -0
  198. data/doc/ex/images/Snake.wmf +0 -0
  199. data/doc/ex/images/Violin.jpg +0 -0
  200. data/doc/ex/images/Yellow_Rose.miff +0 -0
  201. data/doc/ex/images/big-duck.gif +0 -0
  202. data/doc/ex/images/duck.gif +0 -0
  203. data/doc/ex/images/duck0.gif +0 -0
  204. data/doc/ex/images/duck1.gif +0 -0
  205. data/doc/ex/images/duck10.gif +0 -0
  206. data/doc/ex/images/duck11.gif +0 -0
  207. data/doc/ex/images/duck12.gif +0 -0
  208. data/doc/ex/images/duck13.gif +0 -0
  209. data/doc/ex/images/duck14.gif +0 -0
  210. data/doc/ex/images/duck15.gif +0 -0
  211. data/doc/ex/images/duck2.gif +0 -0
  212. data/doc/ex/images/duck3.gif +0 -0
  213. data/doc/ex/images/duck4.gif +0 -0
  214. data/doc/ex/images/duck5.gif +0 -0
  215. data/doc/ex/images/duck6.gif +0 -0
  216. data/doc/ex/images/duck7.gif +0 -0
  217. data/doc/ex/images/duck8.gif +0 -0
  218. data/doc/ex/images/duck9.gif +0 -0
  219. data/doc/ex/images/graydient230x6.gif +0 -0
  220. data/doc/ex/images/logo400x83.gif +0 -0
  221. data/doc/ex/images/model.miff +0 -0
  222. data/doc/ex/images/notimplemented.gif +0 -0
  223. data/doc/ex/images/smile.miff +0 -0
  224. data/doc/ex/images/spin.gif +0 -0
  225. data/doc/ex/implode.rb +0 -34
  226. data/doc/ex/level.rb +0 -11
  227. data/doc/ex/level_colors.rb +0 -11
  228. data/doc/ex/line.rb +0 -42
  229. data/doc/ex/line01.rb +0 -23
  230. data/doc/ex/mask.rb +0 -36
  231. data/doc/ex/matte_fill_to_border.rb +0 -40
  232. data/doc/ex/matte_floodfill.rb +0 -33
  233. data/doc/ex/matte_replace.rb +0 -40
  234. data/doc/ex/median_filter.rb +0 -28
  235. data/doc/ex/modulate.rb +0 -11
  236. data/doc/ex/mono.rb +0 -23
  237. data/doc/ex/morph.rb +0 -26
  238. data/doc/ex/mosaic.rb +0 -35
  239. data/doc/ex/motion_blur.rb +0 -11
  240. data/doc/ex/negate.rb +0 -11
  241. data/doc/ex/negate_channel.rb +0 -9
  242. data/doc/ex/nested_rvg.rb +0 -21
  243. data/doc/ex/nonzero.rb +0 -43
  244. data/doc/ex/normalize.rb +0 -11
  245. data/doc/ex/oil_paint.rb +0 -11
  246. data/doc/ex/opacity.rb +0 -37
  247. data/doc/ex/ordered_dither.rb +0 -11
  248. data/doc/ex/path.rb +0 -64
  249. data/doc/ex/pattern1.rb +0 -25
  250. data/doc/ex/pattern2.rb +0 -26
  251. data/doc/ex/polaroid.rb +0 -28
  252. data/doc/ex/polygon.rb +0 -24
  253. data/doc/ex/polygon01.rb +0 -23
  254. data/doc/ex/polyline.rb +0 -23
  255. data/doc/ex/polyline01.rb +0 -23
  256. data/doc/ex/posterize.rb +0 -8
  257. data/doc/ex/preview.rb +0 -9
  258. data/doc/ex/qbezierpath.rb +0 -52
  259. data/doc/ex/quad01.rb +0 -36
  260. data/doc/ex/quantize-m.rb +0 -25
  261. data/doc/ex/radial_blur.rb +0 -9
  262. data/doc/ex/raise.rb +0 -8
  263. data/doc/ex/random_threshold_channel.rb +0 -13
  264. data/doc/ex/rect01.rb +0 -15
  265. data/doc/ex/rect02.rb +0 -22
  266. data/doc/ex/rectangle.rb +0 -35
  267. data/doc/ex/reduce_noise.rb +0 -28
  268. data/doc/ex/remap.rb +0 -12
  269. data/doc/ex/remap_images.rb +0 -21
  270. data/doc/ex/resize_to_fill.rb +0 -10
  271. data/doc/ex/resize_to_fit.rb +0 -10
  272. data/doc/ex/roll.rb +0 -9
  273. data/doc/ex/rotate.rb +0 -45
  274. data/doc/ex/rotate_f.rb +0 -14
  275. data/doc/ex/roundrect.rb +0 -34
  276. data/doc/ex/rubyname.rb +0 -30
  277. data/doc/ex/rvg_clippath.rb +0 -14
  278. data/doc/ex/rvg_linecap.rb +0 -43
  279. data/doc/ex/rvg_linejoin.rb +0 -41
  280. data/doc/ex/rvg_opacity.rb +0 -19
  281. data/doc/ex/rvg_pattern.rb +0 -26
  282. data/doc/ex/rvg_stroke_dasharray.rb +0 -12
  283. data/doc/ex/segment.rb +0 -11
  284. data/doc/ex/sepiatone.rb +0 -8
  285. data/doc/ex/shade.rb +0 -11
  286. data/doc/ex/shadow.rb +0 -31
  287. data/doc/ex/shave.rb +0 -15
  288. data/doc/ex/shear.rb +0 -10
  289. data/doc/ex/sketch.rb +0 -18
  290. data/doc/ex/skewx.rb +0 -52
  291. data/doc/ex/skewy.rb +0 -47
  292. data/doc/ex/smile.rb +0 -125
  293. data/doc/ex/solarize.rb +0 -11
  294. data/doc/ex/sparse_color.rb +0 -55
  295. data/doc/ex/splice.rb +0 -9
  296. data/doc/ex/spread.rb +0 -11
  297. data/doc/ex/stegano.rb +0 -55
  298. data/doc/ex/stroke_dasharray.rb +0 -43
  299. data/doc/ex/stroke_fill.rb +0 -11
  300. data/doc/ex/stroke_linecap.rb +0 -44
  301. data/doc/ex/stroke_linejoin.rb +0 -48
  302. data/doc/ex/stroke_width.rb +0 -49
  303. data/doc/ex/swirl.rb +0 -17
  304. data/doc/ex/text.rb +0 -37
  305. data/doc/ex/text01.rb +0 -17
  306. data/doc/ex/text_align.rb +0 -36
  307. data/doc/ex/text_antialias.rb +0 -38
  308. data/doc/ex/text_styles.rb +0 -21
  309. data/doc/ex/text_undercolor.rb +0 -28
  310. data/doc/ex/texture_fill_to_border.rb +0 -34
  311. data/doc/ex/texture_floodfill.rb +0 -32
  312. data/doc/ex/texturefill.rb +0 -25
  313. data/doc/ex/threshold.rb +0 -13
  314. data/doc/ex/to_blob.rb +0 -14
  315. data/doc/ex/translate.rb +0 -39
  316. data/doc/ex/transparent.rb +0 -38
  317. data/doc/ex/transpose.rb +0 -9
  318. data/doc/ex/transverse.rb +0 -9
  319. data/doc/ex/tref01.rb +0 -25
  320. data/doc/ex/triangle01.rb +0 -16
  321. data/doc/ex/trim.rb +0 -24
  322. data/doc/ex/tspan01.rb +0 -18
  323. data/doc/ex/tspan02.rb +0 -19
  324. data/doc/ex/tspan03.rb +0 -21
  325. data/doc/ex/unsharp_mask.rb +0 -28
  326. data/doc/ex/viewex.rb +0 -35
  327. data/doc/ex/vignette.rb +0 -12
  328. data/doc/ex/watermark.rb +0 -28
  329. data/doc/ex/wave.rb +0 -9
  330. data/doc/ex/wet_floor.rb +0 -59
  331. data/doc/ex/writing_mode01.rb +0 -27
  332. data/doc/ex/writing_mode02.rb +0 -26
  333. data/doc/ilist.html +0 -2056
  334. data/doc/image1.html +0 -4680
  335. data/doc/image2.html +0 -3665
  336. data/doc/image3.html +0 -4522
  337. data/doc/imageattrs.html +0 -1638
  338. data/doc/imusage.html +0 -514
  339. data/doc/index.html +0 -416
  340. data/doc/info.html +0 -1499
  341. data/doc/magick.html +0 -565
  342. data/doc/optequiv.html +0 -2435
  343. data/doc/rvg.html +0 -975
  344. data/doc/rvgclip.html +0 -248
  345. data/doc/rvggroup.html +0 -305
  346. data/doc/rvgimage.html +0 -289
  347. data/doc/rvgpattern.html +0 -475
  348. data/doc/rvgshape.html +0 -406
  349. data/doc/rvgstyle.html +0 -270
  350. data/doc/rvgtext.html +0 -465
  351. data/doc/rvgtspan.html +0 -238
  352. data/doc/rvgtut.html +0 -530
  353. data/doc/rvguse.html +0 -145
  354. data/doc/rvgxform.html +0 -294
  355. data/doc/scripts/doc.js +0 -22
  356. data/doc/scripts/stripeTables.js +0 -23
  357. data/doc/struct.html +0 -1339
  358. data/doc/usage.html +0 -1621
  359. data/examples/constitute.rb +0 -7
  360. data/examples/crop_with_gravity.rb +0 -46
  361. data/examples/demo.rb +0 -324
  362. data/examples/describe.rb +0 -44
  363. data/examples/find_similar_region.rb +0 -34
  364. data/examples/histogram.rb +0 -325
  365. data/examples/identify.rb +0 -187
  366. data/examples/image_opacity.rb +0 -29
  367. data/examples/import_export.rb +0 -31
  368. data/examples/pattern_fill.rb +0 -38
  369. data/examples/rotating_text.rb +0 -45
  370. data/examples/spinner.rb +0 -50
  371. data/examples/thumbnail.rb +0 -65
  372. data/examples/vignette.rb +0 -79
  373. data/ext/RMagick/MANIFEST +0 -358
  374. data/lib/RMagick.rb +0 -1962
  375. data/metaconfig +0 -7
  376. data/post-clean.rb +0 -12
  377. data/post-install.rb +0 -50
  378. data/post-setup.rb +0 -254
  379. data/setup.rb +0 -1585
  380. data/uninstall.rb +0 -76
data/metaconfig DELETED
@@ -1,7 +0,0 @@
1
- # define additional install.rb config options
2
- # add --allow-example-errors - default is false (only allow 5 examples to fail)
3
- add_bool_config('allow-example-errors', false, 'Allow installation to proceed even if a lot of examples fail')
4
- # add --disable-htmldoc - default is false, if true don't build doc and examples
5
- add_bool_config('disable-htmldoc', false, "don't build HTML doc and examples")
6
- # add --doc-dir - default is $prefix/share/RMagick
7
- add_path_config('doc-dir', "$prefix/share/RMagick", 'where to install RMagick documentation')
data/post-clean.rb DELETED
@@ -1,12 +0,0 @@
1
- # delete RMagick documentation created by post-setup.rb
2
- # doc/*.rb.html
3
- # doc/ex/* (!rb)
4
- # Bug #246: Don't use chdir!
5
- require 'fileutils'
6
-
7
- targets = Dir['doc/*.rb.html']
8
- FileUtils.safe_unlink(targets) unless targets.empty?
9
-
10
- targets = Dir['doc/ex/*']
11
- targets.delete_if { |entry| File.directory?(entry) || %r{\.rb\z}.match(entry) }
12
- FileUtils.safe_unlink(targets) unless targets.empty?
data/post-install.rb DELETED
@@ -1,50 +0,0 @@
1
- # install RMagick documentation
2
-
3
- require 'fileutils'
4
- require 'find'
5
-
6
- if defined?(Installer) && self.class == Installer
7
-
8
- BUILD_HTMLDOC = get_config('disable-htmldoc') != 'yes'
9
-
10
- $docdir = nil
11
-
12
- # Where to install the documentation
13
- def docdir
14
- return $docdir if $docdir
15
- dir = get_config('doc-dir')+'/'
16
- dir.sub!(/\A$prefix/, get_config('prefix'))
17
- $docdir = dir
18
- end
19
- else
20
-
21
- BUILD_HTMLDOC = true
22
-
23
- def docdir
24
- return ARGV[0]
25
- end
26
- end
27
-
28
- if BUILD_HTMLDOC
29
-
30
- puts "\npost-install.rb: installing documentation..."
31
-
32
- Find.find('doc') do |file|
33
- next if FileTest.directory? file
34
- target = file.sub(/^doc\//,docdir())
35
- unless FileTest.exists? File.dirname(target)
36
- FileUtils.mkdir_p(File.dirname(target), :verbose => true)
37
- # Mark this directory as one we created so
38
- # that uninstall.rb knows it's okay to delete
39
- FileUtils.touch("#{File.dirname(target)}/.rmagick")
40
- end
41
- FileUtils.install(file, target, :mode => 0644)
42
- end
43
-
44
- else
45
-
46
- puts "\npost-install.rb: --disable-htmldoc specified. No documentation will be installed."
47
-
48
- end
49
-
50
- exit
data/post-setup.rb DELETED
@@ -1,254 +0,0 @@
1
- #===============================================================================
2
- # post-setup.rb - setup documentation
3
- #===============================================================================
4
-
5
- EXAMPLES = '.examples'
6
- STD_URI = 'http:\/\/www.imagemagick.org'
7
- STD_URI_RE = /"#{STD_URI}/
8
- DONT_RUN = ['fonts.rb'] # never run these examples
9
- ENTITY = Hash['&' => '&amp;', '>' => '&gt;', '<' => '&lt;']
10
-
11
- if defined?(Installer) && self.class == Installer
12
-
13
- RUBYPROG = get_config('ruby-prog')
14
- SRCDIR = curr_srcdir()
15
- ALLOW_EXAMPLE_ERRORS = get_config('allow-example-errors') == 'yes'
16
- BUILD_HTMLDOC = get_config('disable-htmldoc') != 'yes'
17
-
18
- else
19
-
20
- RUBYPROG = 'ruby'
21
- SRCDIR = '.'
22
- ALLOW_EXAMPLE_ERRORS = true
23
- BUILD_HTMLDOC = true
24
-
25
- end
26
-
27
-
28
- #
29
- # A set of example programs in a directory and the output image each example produces.
30
- #
31
-
32
- class ExampleSet
33
- def initialize(of)
34
- @status_quo = get_status_quo()
35
- @errs = 0
36
- begin
37
- File.open(EXAMPLES) do |f|
38
- @targets = Marshal.load(f)
39
- end
40
- rescue
41
- @targets = Hash.new
42
- @n = 0
43
- @of = of
44
- @first_time = true
45
- else
46
- @first_time = false
47
- end
48
- end
49
-
50
- def persist
51
- File.open(EXAMPLES, 'w') do |f|
52
- Marshal.dump(@targets, f)
53
- end
54
- end
55
-
56
- def targets(example)
57
- @targets[example] || Array.new
58
- end
59
-
60
- def get_status_quo
61
- sq = Dir["*"]
62
- sq.delete_if { |entry| File.directory?(entry) }
63
- end
64
-
65
- def update_targets(example, new)
66
- t = targets(example) + new
67
- @targets[example] = t.uniq
68
- end
69
-
70
- def update_status_quo(example)
71
- new_status_quo = get_status_quo()
72
- new = new_status_quo - @status_quo
73
- update_targets(example, new)
74
- @status_quo = new_status_quo
75
- end
76
-
77
- def build(example)
78
- cmd = "#{RUBYPROG} -I #{SRCDIR}/lib -I #{SRCDIR}/ext/RMagick #{example}"
79
- print cmd
80
- print " (example #{@n += 1} of #{@of})" if @first_time
81
- puts
82
- system cmd
83
-
84
- if $? != 0 then
85
- puts("post-setup.rb: #{example} example returned error code #{$?}")
86
- @errs += 1 unless ALLOW_EXAMPLE_ERRORS
87
- if @errs > 4
88
- err(<<-END_EXFAIL
89
- Too many examples failed. Search for "Help!" at
90
- http://rmagick.rubyforge.org/install-faq.html.
91
- END_EXFAIL
92
- )
93
- end
94
- end
95
-
96
- update_status_quo(example)
97
- end
98
-
99
- def update(example)
100
- targets = targets(example)
101
- up_to_date = ! targets.empty?
102
- targets.each do |target|
103
- up_to_date &&= File.exists?(target) && (File.stat(target) >= File.stat(example))
104
- end
105
- build(example) unless up_to_date
106
- end
107
-
108
- #
109
- # print message and exit
110
- #
111
- def err(msg)
112
- $stderr.puts "#{$0}: #{msg}"
113
- exit 1
114
- end
115
-
116
- end
117
-
118
-
119
- #
120
- # Modify file lines via proc. If no lines changed, discard new version.
121
- #
122
- def filter(filename, backup=nil, &filter)
123
- if ! File.writable? filename then
124
- raise ArgumentError, "`#{filename}' is write-protected"
125
- end
126
-
127
- backup_name = filename + '.' + (backup || 'old')
128
- File.rename(filename, backup_name)
129
- changed = false
130
- begin
131
- File.open(filename, 'w') do |output|
132
- File.foreach(backup_name) do |line|
133
- old = line
134
- line = filter.call(line)
135
- output.puts(line)
136
- changed ||= line != old
137
- end
138
- end
139
- rescue
140
- File.rename(backup_name, filename)
141
- raise
142
- end
143
-
144
- if !changed
145
- newname = filename + '.xxx'
146
- File.rename(filename, newname)
147
- File.rename(backup_name, filename)
148
- File.unlink(newname)
149
- elsif !backup
150
- # Don't remove old copy if a backup extension was specified
151
- File.unlink(backup_name) rescue nil
152
- end
153
- end
154
-
155
-
156
- #
157
- # Copy an example to the doc directory, wrap in HTML tags
158
- #
159
- def filetoHTML(file, html)
160
- return if File.exists?(html) && File.stat(html) >= File.stat(file)
161
-
162
- File.open(file) do |src|
163
- File.open(html, 'w') do |dest|
164
- dest.puts <<-END_EXHTMLHEAD
165
- <!DOCTYPE public PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
166
- <html xmlns="http://www.w3.org/1999/xhtml">
167
- <head>
168
- <meta name="generator" content="ex2html.rb" />
169
- <meta http-equiv="Content-Type" content=
170
- "text/html; charset=us-ascii" />
171
- <link rel="stylesheet" type="text/css" href="css/popup.css" />
172
-
173
- <title>RMagick example: #{file}</title>
174
- </head>
175
-
176
- <body>
177
- <h1>#{file}</h1>
178
- <div class="bodybox">
179
- <div class="bodyfloat">
180
- <pre>
181
- END_EXHTMLHEAD
182
-
183
- src.each do |line|
184
- line.gsub!(/[&><]/) { |s| ENTITY[s] }
185
- dest.puts(line)
186
- end
187
-
188
- dest.puts <<-END_EXHTMLTAIL
189
- </pre>
190
- </div>
191
- </div>
192
- <div id="close"><a href="javascript:window.close();">Close window</a></div>
193
- </body>
194
- </html>
195
- END_EXHTMLTAIL
196
- end
197
- File.chmod(0644, html)
198
- end
199
-
200
- end
201
-
202
- puts "setup.rb: entering post-setup phase..."
203
-
204
-
205
- if BUILD_HTMLDOC
206
-
207
- #
208
- # Don't bother if we're in the sandbox
209
- #
210
- if File.exist? 'CVS/Entries'
211
- puts "post-setup.rb: in CVS sandbox - stopping..."
212
- exit
213
- end
214
-
215
- puts "post-setup.rb: setting up documentation..."
216
-
217
- # We're in the source directory. Process the doc in-place. The post-install.rb
218
- # script moves the generated documentation to the ultimate installation directories.
219
-
220
- cwd = Dir.getwd()
221
- Dir.chdir('doc') # need to work with 1.6.x, can't use block form
222
- begin
223
-
224
- # Step 1A: edit the shebang line in the examples
225
- Dir.chdir('ex')
226
- files = Dir['*.rb']
227
- files.each do |file|
228
- filter(file) { |line| line.sub(/\A\#!\s*\S*ruby\s/, '#!'+RUBYPROG+' ') }
229
-
230
- # Step 1B: Make a copy of the example as HTML in the doc directory
231
- filetoHTML(file, "../#{file}.html")
232
- end
233
-
234
- # Step 2: run the examples
235
- examples = Dir['*.rb'].sort
236
- examples -= DONT_RUN
237
- es = ExampleSet.new(examples.length)
238
- begin
239
- examples.each { |example| es.update(example) }
240
- ensure
241
- es.persist
242
- end
243
-
244
- ensure
245
- Dir.chdir(cwd)
246
- end
247
-
248
- else
249
-
250
- puts "post-setup.rb: --disable-htmldoc specified. No documentation will be set up."
251
-
252
- end
253
-
254
- exit