Class | Paperclip::CommandLine |
In: |
lib/paperclip/command_line.rb
|
Parent: | Object |
path | [RW] |
# File lib/paperclip/command_line.rb, line 7 7: def initialize(binary, params = "", options = {}) 8: @binary = binary.dup 9: @params = params.dup 10: @options = options.dup 11: @swallow_stderr = @options.has_key?(:swallow_stderr) ? @options.delete(:swallow_stderr) : Paperclip.options[:swallow_stderr] 12: @expected_outcodes = @options.delete(:expected_outcodes) 13: @expected_outcodes ||= [0] 14: end
# File lib/paperclip/command_line.rb, line 16 16: def command 17: cmd = [] 18: cmd << full_path(@binary) 19: cmd << interpolate(@params, @options) 20: cmd << bit_bucket if @swallow_stderr 21: cmd.join(" ") 22: end
# File lib/paperclip/command_line.rb, line 24 24: def run 25: Paperclip.log(command) 26: begin 27: output = self.class.send('`''`', command) 28: rescue Errno::ENOENT 29: raise Paperclip::CommandNotFoundError 30: end 31: if $?.exitstatus == 127 32: raise Paperclip::CommandNotFoundError 33: end 34: unless @expected_outcodes.include?($?.exitstatus) 35: raise Paperclip::PaperclipCommandLineError, "Command '#{command}' returned #{$?.exitstatus}. Expected #{@expected_outcodes.join(", ")}" 36: end 37: output 38: end