diff options
author | George Claghorn <george.claghorn@gmail.com> | 2017-12-01 11:07:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-01 11:07:30 -0500 |
commit | b852ef2660dac36e348865b455fab7fbcc0d2a7f (patch) | |
tree | 5619b01097c922e4175055f6ebeaa8c7447257da /activestorage/lib/active_storage/previewer | |
parent | 32516e8862946da963e4ba9256553156ca321596 (diff) | |
download | rails-b852ef2660dac36e348865b455fab7fbcc0d2a7f.tar.gz rails-b852ef2660dac36e348865b455fab7fbcc0d2a7f.tar.bz2 rails-b852ef2660dac36e348865b455fab7fbcc0d2a7f.zip |
Make ASt previewer/analyzer binary paths configurable
Diffstat (limited to 'activestorage/lib/active_storage/previewer')
-rw-r--r-- | activestorage/lib/active_storage/previewer/pdf_previewer.rb | 9 | ||||
-rw-r--r-- | activestorage/lib/active_storage/previewer/video_previewer.rb | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/activestorage/lib/active_storage/previewer/pdf_previewer.rb b/activestorage/lib/active_storage/previewer/pdf_previewer.rb index a2f05c74a6..b84aefcc9c 100644 --- a/activestorage/lib/active_storage/previewer/pdf_previewer.rb +++ b/activestorage/lib/active_storage/previewer/pdf_previewer.rb @@ -2,16 +2,23 @@ module ActiveStorage class Previewer::PDFPreviewer < Previewer + class_attribute :mutool_path, default: "mutool" + def self.accept?(blob) blob.content_type == "application/pdf" end def preview download_blob_to_tempfile do |input| - draw "mutool", "draw", "-F", "png", "-o", "-", input.path, "1" do |output| + draw_first_page_from input do |output| yield io: output, filename: "#{blob.filename.base}.png", content_type: "image/png" end end end + + private + def draw_first_page_from(file, &block) + draw mutool_path, "draw", "-F", "png", "-o", "-", file.path, "1", &block + end end end diff --git a/activestorage/lib/active_storage/previewer/video_previewer.rb b/activestorage/lib/active_storage/previewer/video_previewer.rb index 49f128d142..5d06e33f44 100644 --- a/activestorage/lib/active_storage/previewer/video_previewer.rb +++ b/activestorage/lib/active_storage/previewer/video_previewer.rb @@ -2,6 +2,8 @@ module ActiveStorage class Previewer::VideoPreviewer < Previewer + class_attribute :ffmpeg_path, default: "ffmpeg" + def self.accept?(blob) blob.video? end @@ -16,7 +18,7 @@ module ActiveStorage private def draw_relevant_frame_from(file, &block) - draw "ffmpeg", "-i", file.path, "-y", "-vcodec", "png", + draw ffmpeg_path, "-i", file.path, "-y", "-vcodec", "png", "-vf", "thumbnail", "-vframes", "1", "-f", "image2", "-", &block end end |