instance method draw

Ruby on Rails 7.1.6

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

draw(*argv)

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.

Parameters

argv rest
Source
# File activestorage/lib/active_storage/previewer.rb, line 49
      def draw(*argv) # :doc:
        open_tempfile do |file|
          instrument :preview, key: blob.key do
            capture(*argv, to: file)
          end

          yield file
        end
      end

Defined in activestorage/lib/active_storage/previewer.rb line 49 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveStorage::Previewer

Type at least 2 characters to search.

↑↓ navigate · open · esc close