mini_magick 4.11.0 → 5.3.0

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.
@@ -1,5 +1,4 @@
1
- require "timeout"
2
- require "benchmark"
1
+ require "open3"
3
2
 
4
3
  module MiniMagick
5
4
  ##
@@ -10,69 +9,42 @@ module MiniMagick
10
9
  #
11
10
  class Shell
12
11
 
13
- def run(command, options = {})
14
- stdout, stderr, status = execute(command, stdin: options[:stdin])
12
+ def run(command, errors: MiniMagick.errors, warnings: MiniMagick.warnings, **options)
13
+ stdout, stderr, status = execute(command, **options)
15
14
 
16
- if status != 0 && options.fetch(:whiny, MiniMagick.whiny)
17
- fail MiniMagick::Error, "`#{command.join(" ")}` failed with error:\n#{stderr}"
15
+ if status != 0
16
+ if stderr.include?("time limit exceeded")
17
+ fail MiniMagick::TimeoutError, "`#{command.join(" ")}` has timed out"
18
+ elsif errors
19
+ fail MiniMagick::Error, "`#{command.join(" ")}` failed with status: #{status.inspect} and error:\n#{stderr}"
20
+ end
18
21
  end
19
22
 
20
- $stderr.print(stderr) unless options[:stderr] == false
23
+ $stderr.print(stderr) if warnings
21
24
 
22
25
  [stdout, stderr, status]
23
26
  end
24
27
 
25
- def execute(command, options = {})
26
- stdout, stderr, status =
27
- log(command.join(" ")) do
28
- send("execute_#{MiniMagick.shell_api.gsub("-", "_")}", command, options)
29
- end
28
+ def execute(command, stdin: "", timeout: MiniMagick.timeout)
29
+ env = MiniMagick.restricted_env ? ENV.to_h.slice("HOME", "PATH", "LANG") : {} # Using #to_h for Ruby 2.5 compatibility.
30
+ env.merge!(MiniMagick.cli_env)
31
+ env["MAGICK_TIME_LIMIT"] = timeout.to_s if timeout
32
+
33
+ stdout, stderr, status = log(command.join(" ")) do
34
+ Open3.capture3(env, *command, stdin_data: stdin, unsetenv_others: MiniMagick.restricted_env)
35
+ end
30
36
 
31
- [stdout, stderr, status.exitstatus]
37
+ [stdout, stderr, status&.exitstatus]
32
38
  rescue Errno::ENOENT, IOError
33
39
  ["", "executable not found: \"#{command.first}\"", 127]
34
40
  end
35
41
 
36
42
  private
37
43
 
38
- def execute_open3(command, options = {})
39
- require "open3"
40
-
41
- # We would ideally use Open3.capture3, but it wouldn't allow us to
42
- # terminate the command after timing out.
43
- Open3.popen3(*command) do |in_w, out_r, err_r, thread|
44
- [in_w, out_r, err_r].each(&:binmode)
45
- stdout_reader = Thread.new { out_r.read }
46
- stderr_reader = Thread.new { err_r.read }
47
- begin
48
- in_w.write options[:stdin].to_s
49
- rescue Errno::EPIPE
50
- end
51
- in_w.close
52
-
53
- begin
54
- Timeout.timeout(MiniMagick.timeout) { thread.join }
55
- rescue Timeout::Error
56
- Process.kill("TERM", thread.pid) rescue nil
57
- Process.waitpid(thread.pid) rescue nil
58
- raise Timeout::Error, "MiniMagick command timed out: #{command}"
59
- end
60
-
61
- [stdout_reader.value, stderr_reader.value, thread.value]
62
- end
63
- end
64
-
65
- def execute_posix_spawn(command, options = {})
66
- require "posix-spawn"
67
- child = POSIX::Spawn::Child.new(*command, input: options[:stdin].to_s, timeout: MiniMagick.timeout)
68
- [child.out, child.err, child.status]
69
- rescue POSIX::Spawn::TimeoutExceeded
70
- raise Timeout::Error, "MiniMagick command timed out: #{command}"
71
- end
72
-
73
44
  def log(command, &block)
74
- value = nil
75
- duration = Benchmark.realtime { value = block.call }
45
+ time_start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
46
+ value = block.call
47
+ duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - time_start
76
48
  MiniMagick.logger.debug "[%.2fs] %s" % [duration, command]
77
49
  value
78
50
  end
@@ -2,15 +2,13 @@ require "mini_magick/shell"
2
2
 
3
3
  module MiniMagick
4
4
  ##
5
- # Abstract class that wraps command-line tools. It shouldn't be used directly,
6
- # but through one of its subclasses (e.g. {MiniMagick::Tool::Mogrify}). Use
7
- # this class if you want to be closer to the metal and execute ImageMagick
8
- # commands directly, but still with a nice Ruby interface.
5
+ # Class that wraps command-line tools directly, as opposed MiniMagick::Image
6
+ # which is more high-level.
9
7
  #
10
8
  # @example
11
- # MiniMagick::Tool::Mogrify.new do |builder|
12
- # builder.resize "500x500"
13
- # builder << "path/to/image.jpg"
9
+ # MiniMagick.mogrify do |mogrify|
10
+ # mogrify.resize "500x500"
11
+ # mogrify << "path/to/image.jpg"
14
12
  # end
15
13
  #
16
14
  class Tool
@@ -23,15 +21,14 @@ module MiniMagick
23
21
  # executes the command in the end.
24
22
  #
25
23
  # @example
26
- # version = MiniMagick::Tool::Identify.new { |b| b.version }
27
- # puts version
24
+ # puts MiniMagick.identify(&:version)
28
25
  #
29
26
  # @return [MiniMagick::Tool, String] If no block is given, returns an
30
27
  # instance of the tool, if block is given, returns the output of the
31
28
  # command.
32
29
  #
33
- def self.new(*args)
34
- instance = super(*args)
30
+ def self.new(name, **options)
31
+ instance = super
35
32
 
36
33
  if block_given?
37
34
  yield instance
@@ -46,31 +43,31 @@ module MiniMagick
46
43
 
47
44
  # @param name [String]
48
45
  # @param options [Hash]
49
- # @option options [Boolean] :whiny Whether to raise errors on non-zero
46
+ # @option options [Boolean] :errors Whether to raise errors on non-zero
50
47
  # exit codes.
48
+ # @option options [Boolean] :warnings Whether to print warnings to stderrr.
49
+ # @option options [String] :stdin Content to send to standard input stream.
51
50
  # @example
52
- # MiniMagick::Tool::Identify.new(whiny: false) do |identify|
51
+ # MiniMagick.identify(errors: false) do |identify|
53
52
  # identify.help # returns exit status 1, which would otherwise throw an error
54
53
  # end
55
- def initialize(name, options = {})
56
- warn "MiniMagick::Tool.new(false) is deprecated and will be removed in MiniMagick 5, use MiniMagick::Tool.new(whiny: false) instead." if !options.is_a?(Hash)
57
-
58
- @name = name
59
- @args = []
60
- @whiny = options.is_a?(Hash) ? options.fetch(:whiny, MiniMagick.whiny) : options
54
+ def initialize(name, **options)
55
+ @name = name
56
+ @args = []
57
+ @options = options
61
58
  end
62
59
 
63
60
  ##
64
61
  # Executes the command that has been built up.
65
62
  #
66
63
  # @example
67
- # mogrify = MiniMagick::Tool::Mogrify.new
64
+ # mogrify = MiniMagick.mogrify
68
65
  # mogrify.resize("500x500")
69
66
  # mogrify << "path/to/image.jpg"
70
67
  # mogrify.call # executes `mogrify -resize 500x500 path/to/image.jpg`
71
68
  #
72
69
  # @example
73
- # mogrify = MiniMagick::Tool::Mogrify.new
70
+ # mogrify = MiniMagick.mogrify
74
71
  # # build the command
75
72
  # mogrify.call do |stdout, stderr, status|
76
73
  # # ...
@@ -80,16 +77,12 @@ module MiniMagick
80
77
  #
81
78
  # @return [String] Returns the output of the command
82
79
  #
83
- def call(*args)
84
- options = args[-1].is_a?(Hash) ? args.pop : {}
85
- warn "Passing whiny to MiniMagick::Tool#call is deprecated and will be removed in MiniMagick 5, use MiniMagick::Tool.new(whiny: false) instead." if args.any?
86
- whiny = args.fetch(0, @whiny)
87
-
88
- options[:whiny] = whiny
89
- options[:stderr] = false if block_given?
80
+ def call(**options)
81
+ options = @options.merge(options)
82
+ options[:warnings] = false if block_given?
90
83
 
91
84
  shell = MiniMagick::Shell.new
92
- stdout, stderr, status = shell.run(command, options)
85
+ stdout, stderr, status = shell.run(command, **options)
93
86
  yield stdout, stderr, status if block_given?
94
87
 
95
88
  stdout.chomp("\n")
@@ -101,7 +94,7 @@ module MiniMagick
101
94
  # @return [Array<String>]
102
95
  #
103
96
  # @example
104
- # mogrify = MiniMagick::Tool::Mogrify.new
97
+ # mogrify = MiniMagick.mogrify
105
98
  # mogrify.resize "500x500"
106
99
  # mogrify.contrast
107
100
  # mogrify.command #=> ["mogrify", "-resize", "500x500", "-contrast"]
@@ -112,31 +105,26 @@ module MiniMagick
112
105
 
113
106
  ##
114
107
  # The executable used for this tool. Respects
115
- # {MiniMagick::Configuration#cli}, {MiniMagick::Configuration#cli_path},
116
- # and {MiniMagick::Configuration#cli_prefix}.
108
+ # {MiniMagick::Configuration#cli_prefix}.
117
109
  #
118
110
  # @return [Array<String>]
119
111
  #
120
112
  # @example
121
- # MiniMagick.configure { |config| config.cli = :graphicsmagick }
122
- # identify = MiniMagick::Tool::Identify.new
123
- # identify.executable #=> ["gm", "identify"]
113
+ # identify = MiniMagick.identify
114
+ # identify.executable #=> ["magick", "identify"]
124
115
  #
125
116
  # @example
126
117
  # MiniMagick.configure do |config|
127
- # config.cli = :graphicsmagick
128
118
  # config.cli_prefix = ['firejail', '--force']
129
119
  # end
130
- # identify = MiniMagick::Tool::Identify.new
131
- # identify.executable #=> ["firejail", "--force", "gm", "identify"]
120
+ # identify = MiniMagick.identify
121
+ # identify.executable #=> ["firejail", "--force", "magick", "identify"]
132
122
  #
133
123
  def executable
134
- exe = [name]
135
- exe.unshift "magick" if MiniMagick.imagemagick7? && name != "magick"
136
- exe.unshift "gm" if MiniMagick.graphicsmagick?
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
139
- exe
124
+ exe = Array(MiniMagick.cli_prefix)
125
+ exe << "magick" if MiniMagick.imagemagick7? && name != "magick"
126
+ exe << "gm" if MiniMagick.graphicsmagick
127
+ exe << name
140
128
  end
141
129
 
142
130
  ##
@@ -163,7 +151,7 @@ module MiniMagick
163
151
  # Changes the last operator to its "plus" form.
164
152
  #
165
153
  # @example
166
- # MiniMagick::Tool::Mogrify.new do |mogrify|
154
+ # MiniMagick.mogrify do |mogrify|
167
155
  # mogrify.antialias.+
168
156
  # mogrify.distort.+("Perspective", "0,0,4,5 89,0,45,46")
169
157
  # end
@@ -181,7 +169,7 @@ module MiniMagick
181
169
  # Create an ImageMagick stack in the command (surround.
182
170
  #
183
171
  # @example
184
- # MiniMagick::Tool::Convert.new do |convert|
172
+ # MiniMagick.convert do |convert|
185
173
  # convert << "wand.gif"
186
174
  # convert.stack do |stack|
187
175
  # stack << "wand.gif"
@@ -208,7 +196,7 @@ module MiniMagick
208
196
  # Adds ImageMagick's pseudo-filename `-` for standard input.
209
197
  #
210
198
  # @example
211
- # identify = MiniMagick::Tool::Identify.new
199
+ # identify = MiniMagick.identify
212
200
  # identify.stdin
213
201
  # identify.call(stdin: image_content)
214
202
  # # executes `identify -` with the given standard input
@@ -221,7 +209,7 @@ module MiniMagick
221
209
  # Adds ImageMagick's pseudo-filename `-` for standard output.
222
210
  #
223
211
  # @example
224
- # content = MiniMagick::Tool::Convert.new do |convert|
212
+ # content = MiniMagick.convert do |convert|
225
213
  # convert << "input.jpg"
226
214
  # convert.auto_orient
227
215
  # convert.stdout
@@ -241,7 +229,7 @@ module MiniMagick
241
229
  # mogrify.command.join(" ") #=> "mogrify canvas:khaki"
242
230
  #
243
231
  CREATION_OPERATORS.each do |operator|
244
- define_method(operator.gsub('-', '_')) do |value = nil|
232
+ define_method(operator.tr('-', '_')) do |value = nil|
245
233
  self << "#{operator}:#{value}"
246
234
  self
247
235
  end
@@ -273,35 +261,14 @@ module MiniMagick
273
261
  self
274
262
  end
275
263
 
276
- def self.option_methods
277
- @option_methods ||= (
278
- tool = new(whiny: false)
279
- tool << "-help"
280
- help_page = tool.call(stderr: false)
281
-
282
- cli_options = help_page.scan(/^\s+-[a-z\-]+/).map(&:strip)
283
- if tool.name == "mogrify" && MiniMagick.graphicsmagick?
284
- # These options were undocumented before 2015-06-14 (see gm bug 302)
285
- cli_options |= %w[-box -convolve -gravity -linewidth -mattecolor -render -shave]
264
+ # deprecated tool subclasses
265
+ %w[animate compare composite conjure convert display identify import magick mogrify montage stream].each do |tool|
266
+ const_set(tool.capitalize, Class.new(self) {
267
+ define_method(:initialize) do |*args|
268
+ super(tool, *args)
286
269
  end
287
-
288
- cli_options.map { |o| o[1..-1].tr('-','_') }
289
- )
270
+ })
271
+ deprecate_constant(tool.capitalize)
290
272
  end
291
-
292
273
  end
293
274
  end
294
-
295
- require "mini_magick/tool/animate"
296
- require "mini_magick/tool/compare"
297
- require "mini_magick/tool/composite"
298
- require "mini_magick/tool/conjure"
299
- require "mini_magick/tool/convert"
300
- require "mini_magick/tool/display"
301
- require "mini_magick/tool/identify"
302
- require "mini_magick/tool/import"
303
- require "mini_magick/tool/magick"
304
- require "mini_magick/tool/mogrify"
305
- require "mini_magick/tool/mogrify_restricted"
306
- require "mini_magick/tool/montage"
307
- require "mini_magick/tool/stream"
@@ -24,12 +24,10 @@ module MiniMagick
24
24
  end
25
25
 
26
26
  def tempfile(extension)
27
- Tempfile.new(["mini_magick", extension]).tap do |tempfile|
28
- tempfile.binmode
29
- yield tempfile if block_given?
30
- tempfile.close
31
- end
27
+ tempfile = Tempfile.new(["mini_magick", extension], MiniMagick.tmpdir, binmode: true)
28
+ yield tempfile if block_given?
29
+ tempfile.close
30
+ tempfile
32
31
  end
33
-
34
32
  end
35
33
  end
@@ -7,8 +7,8 @@ module MiniMagick
7
7
  end
8
8
 
9
9
  module VERSION
10
- MAJOR = 4
11
- MINOR = 11
10
+ MAJOR = 5
11
+ MINOR = 3
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
data/lib/mini_magick.rb CHANGED
@@ -1,64 +1,40 @@
1
1
  require 'mini_magick/version'
2
2
  require 'mini_magick/configuration'
3
+ require 'mini_magick/utilities'
4
+ require 'mini_magick/tool'
5
+ require 'mini_magick/image'
3
6
 
4
7
  module MiniMagick
5
8
 
6
- extend MiniMagick::Configuration
7
-
8
- ##
9
- # You might want to execute only certain blocks of processing with a
10
- # different CLI, because for example that CLI does that particular thing
11
- # faster. After the block CLI resets to its previous value.
12
- #
13
- # @example
14
- # MiniMagick.with_cli :graphicsmagick do
15
- # # operations that are better done with GraphicsMagick
16
- # end
17
- def self.with_cli(cli)
18
- old_cli = self.cli
19
- self.cli = cli
20
- yield
21
- ensure
22
- self.cli = old_cli
23
- end
9
+ Error = Class.new(RuntimeError)
10
+ Invalid = Class.new(StandardError)
11
+ TimeoutError = Class.new(Error)
24
12
 
25
- ##
26
- # Checks whether the CLI used is ImageMagick.
27
- #
28
- # @return [Boolean]
29
- def self.imagemagick?
30
- cli == :imagemagick
31
- end
13
+ extend MiniMagick::Configuration
32
14
 
33
15
  ##
34
- # Checks whether the CLI used is ImageMagick 7.
16
+ # Checks whether ImageMagick 7 is installed.
35
17
  #
36
18
  # @return [Boolean]
37
19
  def self.imagemagick7?
38
- cli == :imagemagick7
20
+ return false if graphicsmagick
21
+ return @imagemagick7 if defined?(@imagemagick7)
22
+ @imagemagick7 = !!MiniMagick::Utilities.which("magick")
39
23
  end
40
24
 
41
- ##
42
- # Checks whether the CLI used is GraphicsMagick.
43
- #
44
- # @return [Boolean]
45
- def self.graphicsmagick?
46
- cli == :graphicsmagick
25
+ %w[animate compare composite conjure convert display identify import mogrify montage stream].each do |tool|
26
+ define_singleton_method(tool) do |**options, &block|
27
+ name = imagemagick7? && tool == "convert" ? "magick" : tool
28
+ MiniMagick::Tool.new(name, **options, &block)
29
+ end
47
30
  end
48
31
 
49
32
  ##
50
- # Returns ImageMagick's/GraphicsMagick's version.
33
+ # Returns ImageMagick version.
51
34
  #
52
35
  # @return [String]
53
36
  def self.cli_version
54
- output = MiniMagick::Tool::Identify.new(&:version)
37
+ output = MiniMagick.identify(&:version)
55
38
  output[/\d+\.\d+\.\d+(-\d+)?/]
56
39
  end
57
-
58
- class Error < RuntimeError; end
59
- class Invalid < StandardError; end
60
-
61
40
  end
62
-
63
- require 'mini_magick/tool'
64
- require 'mini_magick/image'
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.11.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Johnson
@@ -10,61 +10,18 @@ authors:
10
10
  - James Miller
11
11
  - Thiago Fernandes Massa
12
12
  - Janko Marohnić
13
- autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
- date: 2020-11-06 00:00:00.000000000 Z
15
+ date: 1980-01-02 00:00:00.000000000 Z
17
16
  dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
- name: rake
20
- requirement: !ruby/object:Gem::Requirement
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: '0'
25
- type: :development
26
- prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- version: '0'
32
- - !ruby/object:Gem::Dependency
33
- name: rspec
34
- requirement: !ruby/object:Gem::Requirement
35
- requirements:
36
- - - "~>"
37
- - !ruby/object:Gem::Version
38
- version: 3.5.0
39
- type: :development
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- requirements:
43
- - - "~>"
44
- - !ruby/object:Gem::Version
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
18
+ name: logger
62
19
  requirement: !ruby/object:Gem::Requirement
63
20
  requirements:
64
21
  - - ">="
65
22
  - !ruby/object:Gem::Version
66
23
  version: '0'
67
- type: :development
24
+ type: :runtime
68
25
  prerelease: false
69
26
  version_requirements: !ruby/object:Gem::Requirement
70
27
  requirements:
@@ -72,7 +29,7 @@ dependencies:
72
29
  - !ruby/object:Gem::Version
73
30
  version: '0'
74
31
  - !ruby/object:Gem::Dependency
75
- name: posix-spawn
32
+ name: rake
76
33
  requirement: !ruby/object:Gem::Requirement
77
34
  requirements:
78
35
  - - ">="
@@ -86,20 +43,20 @@ dependencies:
86
43
  - !ruby/object:Gem::Version
87
44
  version: '0'
88
45
  - !ruby/object:Gem::Dependency
89
- name: webmock
46
+ name: rspec
90
47
  requirement: !ruby/object:Gem::Requirement
91
48
  requirements:
92
- - - ">="
49
+ - - "~>"
93
50
  - !ruby/object:Gem::Version
94
- version: '0'
51
+ version: '3.5'
95
52
  type: :development
96
53
  prerelease: false
97
54
  version_requirements: !ruby/object:Gem::Requirement
98
55
  requirements:
99
- - - ">="
56
+ - - "~>"
100
57
  - !ruby/object:Gem::Version
101
- version: '0'
102
- description: Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick
58
+ version: '3.5'
59
+ description: Manipulate images with minimal use of memory via ImageMagick
103
60
  email:
104
61
  - probablycorey@gmail.com
105
62
  - hcatlin@gmail.com
@@ -112,34 +69,21 @@ extensions: []
112
69
  extra_rdoc_files: []
113
70
  files:
114
71
  - MIT-LICENSE
72
+ - README.md
115
73
  - Rakefile
116
- - lib/mini_gmagick.rb
117
74
  - lib/mini_magick.rb
118
75
  - lib/mini_magick/configuration.rb
119
76
  - lib/mini_magick/image.rb
120
77
  - lib/mini_magick/image/info.rb
121
78
  - lib/mini_magick/shell.rb
122
79
  - lib/mini_magick/tool.rb
123
- - lib/mini_magick/tool/animate.rb
124
- - lib/mini_magick/tool/compare.rb
125
- - lib/mini_magick/tool/composite.rb
126
- - lib/mini_magick/tool/conjure.rb
127
- - lib/mini_magick/tool/convert.rb
128
- - lib/mini_magick/tool/display.rb
129
- - lib/mini_magick/tool/identify.rb
130
- - lib/mini_magick/tool/import.rb
131
- - lib/mini_magick/tool/magick.rb
132
- - lib/mini_magick/tool/mogrify.rb
133
- - lib/mini_magick/tool/mogrify_restricted.rb
134
- - lib/mini_magick/tool/montage.rb
135
- - lib/mini_magick/tool/stream.rb
136
80
  - lib/mini_magick/utilities.rb
137
81
  - lib/mini_magick/version.rb
138
82
  homepage: https://github.com/minimagick/minimagick
139
83
  licenses:
140
84
  - MIT
141
- metadata: {}
142
- post_install_message:
85
+ metadata:
86
+ changelog_uri: https://github.com/minimagick/minimagick/releases
143
87
  rdoc_options: []
144
88
  require_paths:
145
89
  - lib
@@ -147,16 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
91
  requirements:
148
92
  - - ">="
149
93
  - !ruby/object:Gem::Version
150
- version: '2.0'
94
+ version: '2.5'
151
95
  required_rubygems_version: !ruby/object:Gem::Requirement
152
96
  requirements:
153
97
  - - ">="
154
98
  - !ruby/object:Gem::Version
155
99
  version: '0'
156
100
  requirements:
157
- - You must have ImageMagick or GraphicsMagick installed
158
- rubygems_version: 3.1.4
159
- signing_key:
101
+ - You must have ImageMagick installed
102
+ rubygems_version: 3.6.9
160
103
  specification_version: 4
161
- summary: Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick
104
+ summary: Manipulate images with minimal use of memory via ImageMagick
162
105
  test_files: []
data/lib/mini_gmagick.rb DELETED
@@ -1,3 +0,0 @@
1
- require 'mini_magick'
2
-
3
- MiniMagick.processor = :gm
@@ -1,14 +0,0 @@
1
- module MiniMagick
2
- class Tool
3
- ##
4
- # @see http://www.imagemagick.org/script/animate.php
5
- #
6
- class Animate < MiniMagick::Tool
7
-
8
- def initialize(*args)
9
- super("animate", *args)
10
- end
11
-
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module MiniMagick
2
- class Tool
3
- ##
4
- # @see http://www.imagemagick.org/script/compare.php
5
- #
6
- class Compare < MiniMagick::Tool
7
-
8
- def initialize(*args)
9
- super("compare", *args)
10
- end
11
-
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module MiniMagick
2
- class Tool
3
- ##
4
- # @see http://www.imagemagick.org/script/composite.php
5
- #
6
- class Composite < MiniMagick::Tool
7
-
8
- def initialize(*args)
9
- super("composite", *args)
10
- end
11
-
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module MiniMagick
2
- class Tool
3
- ##
4
- # @see http://www.imagemagick.org/script/conjure.php
5
- #
6
- class Conjure < MiniMagick::Tool
7
-
8
- def initialize(*args)
9
- super("conjure", *args)
10
- end
11
-
12
- end
13
- end
14
- end