class Services::ImagePreparator
Constants
- RECOMMENDED_SIZES
Public Class Methods
new(image_path, face_detection, safe_search)
click to toggle source
# File lib/services/image_preparator.rb, line 5 def initialize(image_path, face_detection, safe_search) @image_path = image_path @face_detection = face_detection @safe_search = safe_search end
Public Instance Methods
call()
click to toggle source
# File lib/services/image_preparator.rb, line 18 def call image = MiniMagick::Image.open(@image_path) return @image_path unless oversized?(image) resize_image(image) end
Private Instance Methods
oversized?(image)
click to toggle source
# File lib/services/image_preparator.rb, line 26 def oversized?(image) dimensions = image.dimensions dimensions.any? { |dimension| dimension > 1600 } end
resize_dimensions(image)
click to toggle source
# File lib/services/image_preparator.rb, line 39 def resize_dimensions(image) width, height = image.dimensions resize_to = @face_detection ? "face_detection" : "safe_search" order = width > height ? 0 : 1 resize_resolution(resize_to, order) end
resize_image(image)
click to toggle source
# File lib/services/image_preparator.rb, line 31 def resize_image(image) image.resize(resize_dimensions(image)).path end
resize_resolution(filter, order)
click to toggle source
# File lib/services/image_preparator.rb, line 35 def resize_resolution(filter, order) RECOMMENDED_SIZES.fetch(filter.to_sym)[order] end