def draw(*argv) #:doc:
        open_tempfile do |file|
          instrument :preview, key: blob.key do
            capture(*argv, to: file)
          end

          yield file
        end
      end
def draw(*argv) #:doc:
        open_tempfile do |file|
          instrument :preview, key: blob.key do
            capture(*argv, to: file)
          end

          yield file
        end
      end
Executes a system command, capturing its binary output in a tempfile. Yields the tempfile.

 Use this method to shell out to a system library (e.g. muPDF or FFmpeg) for preview image
 generation. The resulting tempfile can be used as the +:io+ value in an attachable Hash:

   def preview
     download_blob_to_tempfile do |input|
       draw "my-drawing-command", input.path, "--format", "png", "-" do |output|
         yield io: output, filename: "#{blob.filename.base}.png", content_type: "image/png"
       end
     end
   end

 The output tempfile is opened in the directory returned by #tmpdir.