Module: Unbreakable::Processors
- Defined in:
- lib/unbreakable/processors/transform.rb,
lib/unbreakable.rb
Overview
Processors are Dragonfly processors. For example:
class MyProcessor
def coolify(temp_object, opts = {})
SomeLib.coolify(temp_object.data, opts)
end
def uglify(temp_object, ugliness)
`uglify -i #{temp_object.path} -u #{ugliness}`
end
def conditional(temp_object, format, pages)
throw :unable_to_handle unless format == :pdf
# do stuff
end
private
def my_helper_method
# do stuff
end
end
MyScraper.processor.register MyProcessor
Public methods must return an object with which a TempObject may be initialized (String, File, Tempfile, Pathname or TempObject).
You can raise Dragonfly::Configurable::NotConfigured if a configurable variable is required but missing. If a variable is invalid, you can raise Dragonfly::Configurable::InvalidConfiguration.
If a process has dependencies or conditions, then you can test for these conditions and throw :unable_to_handle to skip processing.
If multiple processors define a public method by the same name, the methods will be run in reverse order from the last processor to define the method until one fails to throw :unable_to_handle. If all raise an error, then Dragonfly::FunctionManager::UnableToHandle will be thrown.
As such, if you are writing a document to plain-text converter, you can write a pdftotext processor, a doctopdf processor, etc. which all define a to_text public method, and use :unable_to_handle to make sure the correct processor runs.
Defined Under Namespace
Classes: Transform