mini_magick 4.7.2 → 4.13.2
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 +5 -5
- data/README.md +573 -0
- data/lib/mini_magick/configuration.rb +82 -35
- data/lib/mini_magick/image/info.rb +18 -5
- data/lib/mini_magick/image.rb +90 -17
- data/lib/mini_magick/shell.rb +27 -30
- data/lib/mini_magick/tool/magick.rb +14 -0
- data/lib/mini_magick/tool.rb +35 -19
- data/lib/mini_magick/utilities.rb +1 -1
- data/lib/mini_magick/version.rb +1 -1
- data/lib/mini_magick.rb +8 -0
- metadata +9 -50
data/lib/mini_magick/tool.rb
CHANGED
@@ -15,10 +15,8 @@ module MiniMagick
|
|
15
15
|
#
|
16
16
|
class Tool
|
17
17
|
|
18
|
-
CREATION_OPERATORS = %w[
|
19
|
-
|
20
|
-
text
|
21
|
-
]
|
18
|
+
CREATION_OPERATORS = %w[xc canvas logo rose gradient radial-gradient plasma
|
19
|
+
pattern text pango]
|
22
20
|
|
23
21
|
##
|
24
22
|
# Aside from classic instantiation, it also accepts a block, and then
|
@@ -46,8 +44,10 @@ module MiniMagick
|
|
46
44
|
# @private
|
47
45
|
attr_reader :name, :args
|
48
46
|
|
49
|
-
# @param
|
50
|
-
#
|
47
|
+
# @param name [String]
|
48
|
+
# @param options [Hash]
|
49
|
+
# @option options [Boolean] :whiny Whether to raise errors on non-zero
|
50
|
+
# exit codes.
|
51
51
|
# @example
|
52
52
|
# MiniMagick::Tool::Identify.new(whiny: false) do |identify|
|
53
53
|
# identify.help # returns exit status 1, which would otherwise throw an error
|
@@ -86,13 +86,13 @@ module MiniMagick
|
|
86
86
|
whiny = args.fetch(0, @whiny)
|
87
87
|
|
88
88
|
options[:whiny] = whiny
|
89
|
-
options[:stderr] =
|
89
|
+
options[:stderr] = MiniMagick.warnings && !block_given?
|
90
90
|
|
91
91
|
shell = MiniMagick::Shell.new
|
92
92
|
stdout, stderr, status = shell.run(command, options)
|
93
93
|
yield stdout, stderr, status if block_given?
|
94
94
|
|
95
|
-
stdout.
|
95
|
+
stdout.chomp("\n")
|
96
96
|
end
|
97
97
|
|
98
98
|
##
|
@@ -112,7 +112,8 @@ module MiniMagick
|
|
112
112
|
|
113
113
|
##
|
114
114
|
# The executable used for this tool. Respects
|
115
|
-
# {MiniMagick::Configuration#cli}
|
115
|
+
# {MiniMagick::Configuration#cli}, {MiniMagick::Configuration#cli_path},
|
116
|
+
# and {MiniMagick::Configuration#cli_prefix}.
|
116
117
|
#
|
117
118
|
# @return [Array<String>]
|
118
119
|
#
|
@@ -121,10 +122,20 @@ module MiniMagick
|
|
121
122
|
# identify = MiniMagick::Tool::Identify.new
|
122
123
|
# identify.executable #=> ["gm", "identify"]
|
123
124
|
#
|
125
|
+
# @example
|
126
|
+
# MiniMagick.configure do |config|
|
127
|
+
# config.cli = :graphicsmagick
|
128
|
+
# config.cli_prefix = ['firejail', '--force']
|
129
|
+
# end
|
130
|
+
# identify = MiniMagick::Tool::Identify.new
|
131
|
+
# identify.executable #=> ["firejail", "--force", "gm", "identify"]
|
132
|
+
#
|
124
133
|
def executable
|
125
134
|
exe = [name]
|
135
|
+
exe.unshift "magick" if MiniMagick.imagemagick7? && name != "magick"
|
126
136
|
exe.unshift "gm" if MiniMagick.graphicsmagick?
|
127
137
|
exe.unshift File.join(MiniMagick.cli_path, exe.shift) if MiniMagick.cli_path
|
138
|
+
Array(MiniMagick.cli_prefix).reverse_each { |p| exe.unshift p } if MiniMagick.cli_prefix
|
128
139
|
exe
|
129
140
|
end
|
130
141
|
|
@@ -170,7 +181,7 @@ module MiniMagick
|
|
170
181
|
# Create an ImageMagick stack in the command (surround.
|
171
182
|
#
|
172
183
|
# @example
|
173
|
-
# MiniMagick::Tool::
|
184
|
+
# MiniMagick::Tool::Magick.new do |convert|
|
174
185
|
# convert << "wand.gif"
|
175
186
|
# convert.stack do |stack|
|
176
187
|
# stack << "wand.gif"
|
@@ -181,9 +192,15 @@ module MiniMagick
|
|
181
192
|
# end
|
182
193
|
# # executes `convert wand.gif \( wizard.gif -rotate 30 \) +append images.gif`
|
183
194
|
#
|
184
|
-
def stack
|
195
|
+
def stack(*args)
|
185
196
|
self << "("
|
186
|
-
|
197
|
+
args.each do |value|
|
198
|
+
case value
|
199
|
+
when Hash then value.each { |key, value| send(key, *value) }
|
200
|
+
when String then self << value
|
201
|
+
end
|
202
|
+
end
|
203
|
+
yield self if block_given?
|
187
204
|
self << ")"
|
188
205
|
end
|
189
206
|
|
@@ -204,7 +221,7 @@ module MiniMagick
|
|
204
221
|
# Adds ImageMagick's pseudo-filename `-` for standard output.
|
205
222
|
#
|
206
223
|
# @example
|
207
|
-
# content = MiniMagick::Tool::
|
224
|
+
# content = MiniMagick::Tool::Magick.new do |convert|
|
208
225
|
# convert << "input.jpg"
|
209
226
|
# convert.auto_orient
|
210
227
|
# convert.stdout
|
@@ -218,12 +235,13 @@ module MiniMagick
|
|
218
235
|
##
|
219
236
|
# Define creator operator methods
|
220
237
|
#
|
238
|
+
# @example
|
221
239
|
# mogrify = MiniMagick::Tool.new("mogrify")
|
222
240
|
# mogrify.canvas("khaki")
|
223
241
|
# mogrify.command.join(" ") #=> "mogrify canvas:khaki"
|
224
242
|
#
|
225
243
|
CREATION_OPERATORS.each do |operator|
|
226
|
-
define_method(operator.
|
244
|
+
define_method(operator.tr('-', '_')) do |value = nil|
|
227
245
|
self << "#{operator}:#{value}"
|
228
246
|
self
|
229
247
|
end
|
@@ -242,10 +260,11 @@ module MiniMagick
|
|
242
260
|
##
|
243
261
|
# Any undefined method will be transformed into a CLI option
|
244
262
|
#
|
263
|
+
# @example
|
245
264
|
# mogrify = MiniMagick::Tool.new("mogrify")
|
246
265
|
# mogrify.adaptive_blur("...")
|
247
266
|
# mogrify.foo_bar
|
248
|
-
# mogrify.command.join(" ") "mogrify -adaptive-blur ... -foo-bar"
|
267
|
+
# mogrify.command.join(" ") # => "mogrify -adaptive-blur ... -foo-bar"
|
249
268
|
#
|
250
269
|
def method_missing(name, *args)
|
251
270
|
option = "-#{name.to_s.tr('_', '-')}"
|
@@ -254,10 +273,6 @@ module MiniMagick
|
|
254
273
|
self
|
255
274
|
end
|
256
275
|
|
257
|
-
def respond_to_missing?(method_name, include_private = false)
|
258
|
-
true
|
259
|
-
end
|
260
|
-
|
261
276
|
def self.option_methods
|
262
277
|
@option_methods ||= (
|
263
278
|
tool = new(whiny: false)
|
@@ -285,6 +300,7 @@ require "mini_magick/tool/convert"
|
|
285
300
|
require "mini_magick/tool/display"
|
286
301
|
require "mini_magick/tool/identify"
|
287
302
|
require "mini_magick/tool/import"
|
303
|
+
require "mini_magick/tool/magick"
|
288
304
|
require "mini_magick/tool/mogrify"
|
289
305
|
require "mini_magick/tool/mogrify_restricted"
|
290
306
|
require "mini_magick/tool/montage"
|
@@ -24,7 +24,7 @@ module MiniMagick
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def tempfile(extension)
|
27
|
-
Tempfile.new(["mini_magick", extension]).tap do |tempfile|
|
27
|
+
Tempfile.new(["mini_magick", extension], MiniMagick.tmpdir).tap do |tempfile|
|
28
28
|
tempfile.binmode
|
29
29
|
yield tempfile if block_given?
|
30
30
|
tempfile.close
|
data/lib/mini_magick/version.rb
CHANGED
data/lib/mini_magick.rb
CHANGED
@@ -30,6 +30,14 @@ module MiniMagick
|
|
30
30
|
cli == :imagemagick
|
31
31
|
end
|
32
32
|
|
33
|
+
##
|
34
|
+
# Checks whether the CLI used is ImageMagick 7.
|
35
|
+
#
|
36
|
+
# @return [Boolean]
|
37
|
+
def self.imagemagick7?
|
38
|
+
cli == :imagemagick7
|
39
|
+
end
|
40
|
+
|
33
41
|
##
|
34
42
|
# Checks whether the CLI used is GraphicsMagick.
|
35
43
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_magick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Johnson
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- James Miller
|
11
11
|
- Thiago Fernandes Massa
|
12
12
|
- Janko Marohnić
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2024-07-08 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rake
|
@@ -43,48 +43,6 @@ dependencies:
|
|
43
43
|
- - "~>"
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 3.5.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: guard
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
requirements:
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '0'
|
53
|
-
type: :development
|
54
|
-
prerelease: false
|
55
|
-
version_requirements: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0'
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: guard-rspec
|
62
|
-
requirement: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0'
|
67
|
-
type: :development
|
68
|
-
prerelease: false
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '0'
|
74
|
-
- !ruby/object:Gem::Dependency
|
75
|
-
name: posix-spawn
|
76
|
-
requirement: !ruby/object:Gem::Requirement
|
77
|
-
requirements:
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '0'
|
81
|
-
type: :development
|
82
|
-
prerelease: false
|
83
|
-
version_requirements: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - ">="
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '0'
|
88
46
|
- !ruby/object:Gem::Dependency
|
89
47
|
name: webmock
|
90
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,6 +70,7 @@ extensions: []
|
|
112
70
|
extra_rdoc_files: []
|
113
71
|
files:
|
114
72
|
- MIT-LICENSE
|
73
|
+
- README.md
|
115
74
|
- Rakefile
|
116
75
|
- lib/mini_gmagick.rb
|
117
76
|
- lib/mini_magick.rb
|
@@ -128,6 +87,7 @@ files:
|
|
128
87
|
- lib/mini_magick/tool/display.rb
|
129
88
|
- lib/mini_magick/tool/identify.rb
|
130
89
|
- lib/mini_magick/tool/import.rb
|
90
|
+
- lib/mini_magick/tool/magick.rb
|
131
91
|
- lib/mini_magick/tool/mogrify.rb
|
132
92
|
- lib/mini_magick/tool/mogrify_restricted.rb
|
133
93
|
- lib/mini_magick/tool/montage.rb
|
@@ -138,7 +98,7 @@ homepage: https://github.com/minimagick/minimagick
|
|
138
98
|
licenses:
|
139
99
|
- MIT
|
140
100
|
metadata: {}
|
141
|
-
post_install_message:
|
101
|
+
post_install_message:
|
142
102
|
rdoc_options: []
|
143
103
|
require_paths:
|
144
104
|
- lib
|
@@ -146,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
106
|
requirements:
|
147
107
|
- - ">="
|
148
108
|
- !ruby/object:Gem::Version
|
149
|
-
version: '
|
109
|
+
version: '2.3'
|
150
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
111
|
requirements:
|
152
112
|
- - ">="
|
@@ -154,9 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
114
|
version: '0'
|
155
115
|
requirements:
|
156
116
|
- You must have ImageMagick or GraphicsMagick installed
|
157
|
-
|
158
|
-
|
159
|
-
signing_key:
|
117
|
+
rubygems_version: 3.5.11
|
118
|
+
signing_key:
|
160
119
|
specification_version: 4
|
161
120
|
summary: Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick
|
162
121
|
test_files: []
|