lib/attached/processor/audio.rb in attached-1.0.4 vs lib/attached/processor/audio.rb in attached-1.0.5
- old
+ new
@@ -3,79 +3,60 @@
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
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