rmagick 2.13.1 → 2.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.travis.yml +57 -0
- data/CONTRIBUTING.md +22 -0
- data/ChangeLog +49 -2
- data/Gemfile +7 -0
- data/LICENSE +20 -0
- data/README.textile +161 -0
- data/Rakefile +176 -0
- data/before_install_linux.sh +12 -0
- data/before_install_osx.sh +2 -0
- data/doc/.cvsignore +1 -0
- data/doc/comtasks.html +2 -2
- data/doc/constants.html +2 -2
- data/doc/draw.html +2 -2
- data/doc/ex/PreserveAspectRatio.rb +0 -0
- data/doc/ex/ViewBox.rb +0 -0
- data/doc/ex/adaptive_threshold.rb +0 -0
- data/doc/ex/add_noise.rb +0 -0
- data/doc/ex/affine.rb +0 -0
- data/doc/ex/affine_transform.rb +0 -0
- data/doc/ex/arc.rb +0 -0
- data/doc/ex/arcpath.rb +0 -0
- data/doc/ex/average.rb +0 -0
- data/doc/ex/axes.rb +0 -0
- data/doc/ex/bilevel_channel.rb +0 -0
- data/doc/ex/blur_image.rb +0 -0
- data/doc/ex/border.rb +0 -0
- data/doc/ex/bounding_box.rb +0 -0
- data/doc/ex/cbezier1.rb +0 -0
- data/doc/ex/cbezier2.rb +0 -0
- data/doc/ex/cbezier3.rb +0 -0
- data/doc/ex/cbezier4.rb +0 -0
- data/doc/ex/cbezier5.rb +0 -0
- data/doc/ex/cbezier6.rb +0 -0
- data/doc/ex/channel.rb +0 -0
- data/doc/ex/charcoal.rb +0 -0
- data/doc/ex/chop.rb +0 -0
- data/doc/ex/circle.rb +0 -0
- data/doc/ex/clip_path.rb +0 -0
- data/doc/ex/coalesce.rb +0 -0
- data/doc/ex/color_fill_to_border.rb +0 -0
- data/doc/ex/color_floodfill.rb +0 -0
- data/doc/ex/color_histogram.rb +0 -0
- data/doc/ex/color_reset.rb +0 -0
- data/doc/ex/colorize.rb +0 -0
- data/doc/ex/colors.rb +0 -0
- data/doc/ex/composite.rb +0 -0
- data/doc/ex/composite_layers.rb +0 -0
- data/doc/ex/contrast.rb +0 -0
- data/doc/ex/crop.rb +0 -0
- data/doc/ex/cycle_colormap.rb +0 -0
- data/doc/ex/drawcomp.rb +0 -0
- data/doc/ex/drop_shadow.rb +0 -0
- data/doc/ex/edge.rb +0 -0
- data/doc/ex/ellipse.rb +0 -0
- data/doc/ex/emboss.rb +0 -0
- data/doc/ex/enhance.rb +0 -0
- data/doc/ex/equalize.rb +0 -0
- data/doc/ex/evenodd.rb +0 -0
- data/doc/ex/flatten_images.rb +0 -0
- data/doc/ex/flip.rb +0 -0
- data/doc/ex/flop.rb +0 -0
- data/doc/ex/fonts.rb +0 -0
- data/doc/ex/frame.rb +0 -0
- data/doc/ex/gaussian_blur.rb +0 -0
- data/doc/ex/get_pixels.rb +0 -0
- data/doc/ex/gradientfill.rb +0 -0
- data/doc/ex/grav.rb +0 -0
- data/doc/ex/gravity.rb +0 -0
- data/doc/ex/hatchfill.rb +0 -0
- data/doc/ex/images/image_with_profile.jpg +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/implode.rb +0 -0
- data/doc/ex/level.rb +0 -0
- data/doc/ex/line.rb +0 -0
- data/doc/ex/mask.rb +1 -1
- data/doc/ex/matte_fill_to_border.rb +0 -0
- data/doc/ex/matte_floodfill.rb +0 -0
- data/doc/ex/matte_replace.rb +0 -0
- data/doc/ex/median_filter.rb +0 -0
- data/doc/ex/modulate.rb +0 -0
- data/doc/ex/mono.rb +0 -0
- data/doc/ex/morph.rb +0 -0
- data/doc/ex/mosaic.rb +0 -0
- data/doc/ex/motion_blur.rb +0 -0
- data/doc/ex/negate.rb +0 -0
- data/doc/ex/nested_rvg.rb +0 -0
- data/doc/ex/nonzero.rb +0 -0
- data/doc/ex/normalize.rb +0 -0
- data/doc/ex/oil_paint.rb +0 -0
- data/doc/ex/opacity.rb +0 -0
- data/doc/ex/ordered_dither.rb +0 -0
- data/doc/ex/path.rb +0 -0
- data/doc/ex/pattern1.rb +0 -0
- data/doc/ex/pattern2.rb +0 -0
- data/doc/ex/polygon.rb +0 -0
- data/doc/ex/polyline.rb +0 -0
- data/doc/ex/preview.rb +0 -0
- data/doc/ex/qbezierpath.rb +0 -0
- data/doc/ex/quantize-m.rb +0 -0
- data/doc/ex/radial_blur.rb +0 -0
- data/doc/ex/raise.rb +0 -0
- data/doc/ex/rectangle.rb +0 -0
- data/doc/ex/reduce_noise.rb +0 -0
- data/doc/ex/roll.rb +0 -0
- data/doc/ex/rotate.rb +0 -0
- data/doc/ex/rotate_f.rb +0 -0
- data/doc/ex/roundrect.rb +0 -0
- data/doc/ex/rubyname.rb +0 -0
- data/doc/ex/rvg_linecap.rb +0 -0
- data/doc/ex/rvg_linejoin.rb +0 -0
- data/doc/ex/rvg_opacity.rb +0 -0
- data/doc/ex/rvg_stroke_dasharray.rb +0 -0
- data/doc/ex/segment.rb +0 -0
- data/doc/ex/shade.rb +0 -0
- data/doc/ex/shave.rb +0 -0
- data/doc/ex/shear.rb +0 -0
- data/doc/ex/sketch.rb +0 -0
- data/doc/ex/skewx.rb +0 -0
- data/doc/ex/skewy.rb +0 -0
- data/doc/ex/smile.rb +0 -0
- data/doc/ex/solarize.rb +0 -0
- data/doc/ex/spread.rb +0 -0
- data/doc/ex/stegano.rb +0 -0
- data/doc/ex/stroke_dasharray.rb +0 -0
- data/doc/ex/stroke_fill.rb +0 -0
- data/doc/ex/stroke_linecap.rb +0 -0
- data/doc/ex/stroke_linejoin.rb +0 -0
- data/doc/ex/stroke_width.rb +0 -0
- data/doc/ex/swirl.rb +0 -0
- data/doc/ex/text.rb +0 -0
- data/doc/ex/text_align.rb +0 -0
- data/doc/ex/text_antialias.rb +0 -0
- data/doc/ex/text_undercolor.rb +0 -0
- data/doc/ex/texture_fill_to_border.rb +0 -0
- data/doc/ex/texture_floodfill.rb +0 -0
- data/doc/ex/texturefill.rb +0 -0
- data/doc/ex/threshold.rb +0 -0
- data/doc/ex/to_blob.rb +0 -0
- data/doc/ex/translate.rb +0 -0
- data/doc/ex/transparent.rb +0 -0
- data/doc/ex/unsharp_mask.rb +0 -0
- data/doc/ex/wave.rb +0 -0
- data/doc/ilist.html +2 -2
- data/doc/image1.html +2 -2
- data/doc/image2.html +2 -2
- data/doc/image3.html +2 -2
- data/doc/imageattrs.html +2 -2
- data/doc/imusage.html +2 -2
- data/doc/index.html +3 -3
- data/doc/info.html +2 -2
- data/doc/magick.html +2 -2
- data/doc/optequiv.html +2 -2
- data/doc/rvg.html +2 -2
- data/doc/rvgclip.html +2 -2
- data/doc/rvggroup.html +2 -2
- data/doc/rvgimage.html +2 -2
- data/doc/rvgpattern.html +2 -2
- data/doc/rvgshape.html +2 -2
- data/doc/rvgstyle.html +2 -2
- data/doc/rvgtext.html +2 -2
- data/doc/rvgtspan.html +2 -2
- data/doc/rvgtut.html +2 -2
- data/doc/rvguse.html +2 -2
- data/doc/rvgxform.html +2 -2
- data/doc/struct.html +2 -2
- data/doc/usage.html +2 -2
- data/examples/crop_with_gravity.rb +0 -0
- data/examples/demo.rb +0 -0
- data/examples/describe.rb +0 -0
- data/examples/identify.rb +1 -1
- data/examples/rotating_text.rb +0 -0
- data/ext/RMagick/extconf.rb +62 -31
- data/ext/RMagick/rmagick.c +15 -15
- data/ext/RMagick/rmagick.h +9 -7
- data/ext/RMagick/rmdraw.c +12 -12
- data/ext/RMagick/rmenum.c +2 -2
- data/ext/RMagick/rmfill.c +25 -25
- data/ext/RMagick/rmilist.c +121 -104
- data/ext/RMagick/rmimage.c +743 -548
- data/ext/RMagick/rminfo.c +15 -15
- data/ext/RMagick/rmmain.c +27 -3
- data/ext/RMagick/rmpixel.c +25 -27
- data/ext/RMagick/rmstruct.c +1 -1
- data/ext/RMagick/rmutil.c +18 -18
- data/lib/RMagick.rb +1 -1962
- data/lib/rmagick/version.rb +5 -0
- data/lib/rmagick.rb +1 -0
- data/lib/rmagick_internal.rb +1964 -0
- data/rmagick.gemspec +21 -9
- data/test/Draw.rb +121 -0
- data/test/Image1.rb +763 -0
- data/test/Image2.rb +1312 -0
- data/test/Image3.rb +1033 -0
- data/test/ImageList1.rb +808 -0
- data/test/ImageList2.rb +389 -0
- data/test/Image_attributes.rb +700 -0
- data/test/Import_Export.rb +126 -0
- data/test/Info.rb +349 -0
- data/test/Magick.rb +324 -0
- data/test/Pixel.rb +119 -0
- data/test/Preview.rb +62 -0
- data/test/cmyk.icm +0 -0
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +34 -0
- data/test/tmpnam_test.rb +50 -0
- metadata +395 -352
- data/README-Mac-OSX.txt +0 -1
- data/README.html +0 -10
- data/build_tarball.rake +0 -215
- data/ext/RMagick/MANIFEST +0 -358
- data/metaconfig +0 -7
- data/post-clean.rb +0 -12
- data/post-install.rb +0 -50
- data/post-setup.rb +0 -254
- data/setup.rb +0 -1585
- data/uninstall.rb +0 -74
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['&' => '&', '>' => '>', '<' => '<']
|
|
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
|