Class: ActiveStorage::Previewer::MuPDFPreviewer
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Inherits: |
ActiveStorage::Previewer
|
Defined in: | activestorage/lib/active_storage/previewer/mupdf_previewer.rb |
Class Attribute Summary
- .mutool_exists? ⇒ Boolean readonly
Class Method Summary
::ActiveStorage::Previewer
- Inherited
Instance Attribute Summary
::ActiveStorage::Previewer
- Inherited
Instance Method Summary
::ActiveStorage::Previewer
- Inherited
#preview | Override this method in a concrete subclass. |
#draw | Executes a system command, capturing its binary output in a tempfile. |
#logger |
::ActiveStorage::Downloading
- Included
#download_blob_to | Efficiently downloads blob data into the given file. |
#download_blob_to_tempfile | Opens a new tempfile in |
#tempdir | Returns the directory in which tempfiles should be opened. |
Constructor Details
This class inherits a constructor from ActiveStorage::Previewer
Class Attribute Details
.mutool_exists? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activestorage/lib/active_storage/previewer/mupdf_previewer.rb', line 14
def mutool_exists? return @mutool_exists unless @mutool_exists.nil? system mutool_path, out: File::NULL, err: File::NULL @mutool_exists = $?.exitstatus == 1 end
Class Method Details
.accept?(blob) ⇒ Boolean
# File 'activestorage/lib/active_storage/previewer/mupdf_previewer.rb', line 6
def accept?(blob) blob.content_type == "application/pdf" && mutool_exists? end
.mutool_path
[ GitHub ]# File 'activestorage/lib/active_storage/previewer/mupdf_previewer.rb', line 10
def mutool_path ActiveStorage.paths[:mutool] || "mutool" end
Instance Method Details
#preview
[ GitHub ]# File 'activestorage/lib/active_storage/previewer/mupdf_previewer.rb', line 23
def preview download_blob_to_tempfile do |input| draw_first_page_from input do |output| yield io: output, filename: "#{blob.filename.base}.png", content_type: "image/png" end end end