Skip to content


Subversion checkout URL

You can clone with
Download ZIP
49 lines (43 sloc) 1.8 KB
module Paperclip
# Paperclip processors allow you to modify attached files when they are
# attached in any way you are able. Paperclip itself uses command-line
# programs for its included Thumbnail processor, but custom processors
# are not required to follow suit.
# Processors are required to be defined inside the Paperclip module and
# are also required to be a subclass of Paperclip::Processor. There is
# only one method you *must* implement to properly be a subclass:
# #make, but #initialize may also be of use. Both methods accept 3
# arguments: the file that will be operated on (which is an instance of
# File), a hash of options that were defined in has_attached_file's
# style hash, and the Paperclip::Attachment itself.
# All #make needs to return is an instance of File (Tempfile is
# acceptable) which contains the results of the processing.
# See for more information about using command-line
# utilities from within Processors.
class Processor
attr_accessor :file, :options, :attachment
def initialize file, options = {}, attachment = nil
@file = file
@options = options
@attachment = attachment
def make
def self.make file, options = {}, attachment = nil
new(file, options, attachment).make
# The convert method runs the convert binary with the provided arguments.
# See for the available options.
def convert(arguments = "", local_options = {})'convert', arguments, local_options)
# The identify method runs the identify binary with the provided arguments.
# See for the available options.
def identify(arguments = "", local_options = {})'identify', arguments, local_options)
Jump to Line
Something went wrong with that request. Please try again.