instance method draw

Ruby on Rails 5.2.8.1

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 ActiveStorage::Downloading#tempdir.

Parameters

argv rest
Source
# File activestorage/lib/active_storage/previewer.rb, line 45
      def draw(*argv) #:doc:
        ActiveSupport::Notifications.instrument("preview.active_storage") do
          open_tempfile_for_drawing do |file|
            capture(*argv, to: file)
            yield file
          end
        end
      end

Defined in activestorage/lib/active_storage/previewer.rb line 45 · 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