module MicroMagick
Constants
- ArgumentError
- CorruptImageError
- Error
- Geometry
Aliases to support < v0.0.6
- MissingBinaries
- NoSuchFile
- VERSION
Public Class Methods
cmd_prefix()
click to toggle source
# File lib/micro_magick.rb, line 50 def self.cmd_prefix @cmd_prefix ||= begin if system('hash gm 2>&-') 'gm ' elsif system('hash convert 2>&-') '' else raise MissingBinaries, 'Please install either GraphicsMagick or ImageMagick' end end end
exec(cmds, return_stdout = false)
click to toggle source
# File lib/micro_magick.rb, line 62 def self.exec(cmds, return_stdout = false) final_cmd = cmd_prefix + cmds.join(' ') stdout, stderr, status = Open3.capture3(final_cmd) err = stderr.strip if err.size > 0 || status != 0 error = if err =~ /unrecognized option/i ArgumentError elsif err =~ /corrupt|CRC error/i CorruptImageError elsif err =~ /no such file or directory|unable to open/i NoSuchFile else Error end raise error, "#{final_cmd} failed (#{status}): #{err}" end return_stdout ? stdout.strip : final_cmd rescue Errno::ENOENT => e raise NoSuchFile, e.message end
graphicsmagick?()
click to toggle source
# File lib/micro_magick.rb, line 24 def self.graphicsmagick? cmd_prefix == 'gm ' end
imagemagick?()
click to toggle source
# File lib/micro_magick.rb, line 28 def self.imagemagick? !graphicsmagick? end
reset!()
click to toggle source
# File lib/micro_magick.rb, line 32 def self.reset! @cmd_prefix = @verbose_version = @version = nil end
use_graphicsmagick!()
click to toggle source
# File lib/micro_magick.rb, line 19 def self.use_graphicsmagick! reset! @cmd_prefix = 'gm ' end
use_imagemagick!()
click to toggle source
# File lib/micro_magick.rb, line 14 def self.use_imagemagick! reset! @cmd_prefix = '' end
verbose_version()
click to toggle source
# File lib/micro_magick.rb, line 36 def self.verbose_version @verbose_version ||= begin cmd = graphicsmagick? ? %w(version) : %w(identify --version) exec(cmd, true) end end
version()
click to toggle source
# File lib/micro_magick.rb, line 43 def self.version @version ||= begin m = verbose_version.split($/, 1).first.match(/([\d\.]{5,})/) Gem::Version.new(m[1]) if m end end