From f94c52478caec6b5091d51816b0265d307234c94 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 27 May 2020 14:31:39 -0500 Subject: [PATCH] media file: memoize expensive methods in subclasses. --- app/logical/media_file.rb | 2 +- app/logical/media_file/flash.rb | 1 + app/logical/media_file/image.rb | 4 +++- app/logical/media_file/ugoira.rb | 2 +- app/logical/media_file/video.rb | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/logical/media_file.rb b/app/logical/media_file.rb index fe8652f27..ffd023216 100644 --- a/app/logical/media_file.rb +++ b/app/logical/media_file.rb @@ -113,5 +113,5 @@ class MediaFile nil end - memoize :dimensions, :file_ext, :file_size, :md5, :is_corrupt?, :is_animated? + memoize :file_ext, :file_size, :md5 end diff --git a/app/logical/media_file/flash.rb b/app/logical/media_file/flash.rb index c734936f3..81982480c 100644 --- a/app/logical/media_file/flash.rb +++ b/app/logical/media_file/flash.rb @@ -54,5 +54,6 @@ class MediaFile::Flash < MediaFile [width, height] end + memoize :dimensions end diff --git a/app/logical/media_file/image.rb b/app/logical/media_file/image.rb index a5125e3bf..3f969ff84 100644 --- a/app/logical/media_file/image.rb +++ b/app/logical/media_file/image.rb @@ -63,6 +63,8 @@ class MediaFile::Image < MediaFile end def image - @image ||= Vips::Image.new_from_file(file.path, fail: true) + Vips::Image.new_from_file(file.path, fail: true) end + + memoize :image, :dimensions, :is_corrupt?, :is_animated_gif?, :is_animated_png? end diff --git a/app/logical/media_file/ugoira.rb b/app/logical/media_file/ugoira.rb index 391f14825..615994719 100644 --- a/app/logical/media_file/ugoira.rb +++ b/app/logical/media_file/ugoira.rb @@ -88,5 +88,5 @@ class MediaFile::Ugoira < MediaFile MediaFile.open(tempfile) end - memoize :zipfile, :preview_frame + memoize :zipfile, :preview_frame, :dimensions end diff --git a/app/logical/media_file/video.rb b/app/logical/media_file/video.rb index 0457604b0..0639d78fe 100644 --- a/app/logical/media_file/video.rb +++ b/app/logical/media_file/video.rb @@ -31,5 +31,5 @@ class MediaFile::Video < MediaFile MediaFile.open(vp.path) end - memoize :video, :preview_frame + memoize :video, :preview_frame, :dimensions, :duration, :has_audio? end