class Dragonfly::ImageMagick::Plugin
The ImageMagick Plugin registers an app with generators, analysers and processors. Look at the source code for call to see exactly how it configures the app.
Public Instance Methods
call(app, opts={})
click to toggle source
# File lib/dragonfly/image_magick/plugin.rb, line 17 def call(app, opts={}) # ENV app.env[:convert_command] = opts[:convert_command] || 'convert' app.env[:identify_command] = opts[:identify_command] || 'identify' # Analysers app.add_analyser :image_properties, ImageMagick::Analysers::ImageProperties.new app.add_analyser :width do |content| content.analyse(:image_properties)['width'] end app.add_analyser :height do |content| content.analyse(:image_properties)['height'] end app.add_analyser :format do |content| content.analyse(:image_properties)['format'] end app.add_analyser :aspect_ratio do |content| attrs = content.analyse(:image_properties) attrs['width'].to_f / attrs['height'] end app.add_analyser :portrait do |content| attrs = content.analyse(:image_properties) attrs['width'] <= attrs['height'] end app.add_analyser :landscape do |content| !content.analyse(:portrait) end app.add_analyser :image do |content| begin content.analyse(:image_properties)['format'] != 'pdf' rescue Shell::CommandFailed false end end # Aliases app.define(:portrait?) { portrait } app.define(:landscape?) { landscape } app.define(:image?) { image } # Generators app.add_generator :convert, ImageMagick::Generators::Convert.new app.add_generator :plain, ImageMagick::Generators::Plain.new app.add_generator :plasma, ImageMagick::Generators::Plasma.new app.add_generator :text, ImageMagick::Generators::Text.new # Processors app.add_processor :convert, Processors::Convert.new app.add_processor :encode, Processors::Encode.new app.add_processor :thumb, Processors::Thumb.new app.add_processor :rotate do |content, amount| content.process!(:convert, "-rotate #{amount}") end # Extra methods app.define :identify do |*args| cli_args = args.first # because ruby 1.8.7 can't deal with default args in blocks shell_eval do |path| "#{app.env[:identify_command]} #{cli_args} #{path}" end end end