lib/attached/processor/audio.rb in attached-0.5.2 vs lib/attached/processor/audio.rb in attached-0.5.3

- old
+ new

@@ -2,81 +2,81 @@ require 'attached/processor/error' module Attached module Processor class Audio < Base - - + + attr_reader :path attr_reader :extension attr_reader :preset attr_reader :attachment - - + + # Create a processor. # # Parameters: - # + # # * file - The file to be processed. # * options - The options to be applied to the processing. # * attachment - The attachment the processor is being run for. - + def initialize(file, options = {}, attachment = nil) super - + @path = self.file.path - + @preset = options[:preset] @extension = options[:extension] - + @extension ||= self.attachment.extension end - - + + # Redirect output path. - + def redirect ">/dev/null 2>&1" if File.exist?("/dev/null") end - - + + # Helper function for calling processors. # # Usage: # # self.process - + def process - + result = Tempfile.new(["", self.extension]) result.binmode - + begin - + parameters = [] - + parameters << "--preset #{self.preset}" if self.preset - + parameters << self.path parameters << result.path - + parameters = parameters.join(" ").squeeze(" ") - + `lame #{parameters} #{redirect}` - + raise Errno::ENOENT if $?.exitstatus == 127 - - rescue Errno::ENOENT + + rescue Errno::ENOENT raise "command 'lame' not found: ensure LAME is installed" end - + unless $?.exitstatus == 0 raise Attached::Processor::Error, "must be an audio file" end - + return result - + end - + end end end