lib/mini_magick/tool.rb in mini_magick-4.10.1 vs lib/mini_magick/tool.rb in mini_magick-4.11.0
- old
+ new
@@ -42,12 +42,14 @@
end
# @private
attr_reader :name, :args
- # @param whiny [Boolean] Whether to raise errors on exit codes different
- # than 0.
+ # @param name [String]
+ # @param options [Hash]
+ # @option options [Boolean] :whiny Whether to raise errors on non-zero
+ # exit codes.
# @example
# MiniMagick::Tool::Identify.new(whiny: false) do |identify|
# identify.help # returns exit status 1, which would otherwise throw an error
# end
def initialize(name, options = {})
@@ -188,13 +190,19 @@
# convert.append.+
# convert << "images.gif"
# end
# # executes `convert wand.gif \( wizard.gif -rotate 30 \) +append images.gif`
#
- def stack
+ def stack(*args)
self << "("
- yield self
+ args.each do |value|
+ case value
+ when Hash then value.each { |key, value| send(key, *value) }
+ when String then self << value
+ end
+ end
+ yield self if block_given?
self << ")"
end
##
# Adds ImageMagick's pseudo-filename `-` for standard input.
@@ -225,10 +233,11 @@
end
##
# Define creator operator methods
#
+ # @example
# mogrify = MiniMagick::Tool.new("mogrify")
# mogrify.canvas("khaki")
# mogrify.command.join(" ") #=> "mogrify canvas:khaki"
#
CREATION_OPERATORS.each do |operator|
@@ -249,13 +258,14 @@
end
##
# Any undefined method will be transformed into a CLI option
#
+ # @example
# mogrify = MiniMagick::Tool.new("mogrify")
# mogrify.adaptive_blur("...")
# mogrify.foo_bar
- # mogrify.command.join(" ") "mogrify -adaptive-blur ... -foo-bar"
+ # mogrify.command.join(" ") # => "mogrify -adaptive-blur ... -foo-bar"
#
def method_missing(name, *args)
option = "-#{name.to_s.tr('_', '-')}"
self << option
self.merge!(args)