# frozen_string_literal: true

module ObfuscateFilename
  extend ActiveSupport::Concern

  class_methods do
    def obfuscate_filename(*args)
      before_action { obfuscate_filename(*args) }
    end
  end

  def obfuscate_filename(path)
    file = params.dig(*path)
    return if file.nil?

    file.original_filename = secure_token + File.extname(file.original_filename)
  end

  def secure_token(length = 16)
    SecureRandom.hex(length / 2)
  end
end