Sha256: e8a52ea922636ef5ba2dac2d9779cb1610c01db42d9d77070b422514331c7b0c

Contents?: true

Size: 733 Bytes

Versions: 2

Compression:

Stored size: 733 Bytes

Contents

# frozen_string_literal: true

require 'mini_magick'

module FlatironS3Uploader
  class ImageResizer
    attr_reader :path, :image

    def initialize(path)
      raise FlatironS3Uploader::FileNotFoundError unless File.exist?(path)

      @path = path
      @image = MiniMagick::Image.open(path)
    end

    def resize(width: nil, height: nil)
      image.resize("#{width}x#{height}")
      image.write(output_path)
      output_path
    end

    def mime_type
      image.mime_type
    end

    private

    def output_path
      return @output_path if @output_path

      file_name = File.basename(path).sub('.', '-resized.')
      directory = File.dirname(path)
      @output_path = "#{directory}/#{file_name}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flatiron-s3-uploader-0.1.2 lib/flatiron_s3_uploader/image_resizer.rb
flatiron-s3-uploader-0.1.1 lib/flatiron_s3_uploader/image_resizer.rb