Module: MicroMagick
- Defined in:
- lib/micro_magick.rb,
lib/micro_magick/image.rb,
lib/micro_magick/version.rb,
lib/micro_magick/identify_parser.rb
Defined Under Namespace
Classes: IdentifyParser, Image
Constant Summary
collapse
- Error =
Class.new(StandardError)
- NoSuchFile =
Class.new(Error)
- MissingBinaries =
Class.new(Error)
- ArgumentError =
Class.new(Error)
- CorruptImageError =
Class.new(Error)
- Geometry =
Aliases to support < v0.0.6
Convert = Image
- VERSION =
Gem::Version.new('1.0.1')
Class Method Summary
collapse
Class Method Details
.cmd_prefix ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
|
# 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) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# 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/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? ⇒ Boolean
24
25
26
|
# File 'lib/micro_magick.rb', line 24
def self.graphicsmagick?
cmd_prefix == 'gm '
end
|
.imagemagick? ⇒ Boolean
28
29
30
|
# File 'lib/micro_magick.rb', line 28
def self.imagemagick?
!graphicsmagick?
end
|
.reset! ⇒ Object
32
33
34
|
# File 'lib/micro_magick.rb', line 32
def self.reset!
@cmd_prefix = @verbose_version = @version = nil
end
|
.use_graphicsmagick! ⇒ Object
19
20
21
22
|
# File 'lib/micro_magick.rb', line 19
def self.use_graphicsmagick!
reset!
@cmd_prefix = 'gm '
end
|
.use_imagemagick! ⇒ Object
14
15
16
17
|
# File 'lib/micro_magick.rb', line 14
def self.use_imagemagick!
reset!
@cmd_prefix = ''
end
|
.verbose_version ⇒ Object
36
37
38
39
40
41
|
# 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 ⇒ Object
43
44
45
46
47
48
|
# 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
|