maa123/mastodon

View on GitHub
lib/paperclip/type_corrector.rb

Summary

Maintainability
A
25 mins
Test Coverage
# frozen_string_literal: true

require 'mime/types/columnar'

module Paperclip
  class TypeCorrector < Paperclip::Processor
    def make
      return @file unless options[:format]

      target_extension = ".#{options[:format]}"
      extension        = File.extname(attachment.instance_read(:file_name))

      return @file unless options[:style] == :original && target_extension && extension != target_extension

      attachment.instance_write(:content_type, options[:content_type] || attachment.instance_read(:content_type))
      attachment.instance_write(:file_name, File.basename(attachment.instance_read(:file_name), '.*') + target_extension)

      @file
    end
  end
end