Script para renomear PDFs

Meu primeiro script em Ruby que faz algo útil, feito para ser utilizado a partir do shell. Utilizei a biblioteca pdf-reader. Só funciona se o pdf tiver informações de título e autor. Por padrão ele renomeia o pdf para o formato “título [autor]”, se quiser mudar é só alterar a linha 15.

Exemplo de uso (tenta renomear todos os arquivos pdf do diretório atual):
ruby pdf_rename.rb *.pdf

require 'pdf-reader'

if ARGV.empty?
    puts "Usage: ruby pdf_rename.rb 'file.pdf'"
    exit 1
end

ARGV.each do |arg|
    filename = arg
    nfilename = ""

    begin
        PDF::Reader.open(filename) do |reader|
            if reader.info[:Author] && reader.info[:Title]
                nfilename = reader.info[:Title] + " [" + reader.info[:Author] + "].pdf"
            end
        end
    rescue
        puts "Could not read PDF '#{filename}'."
        next
    end

    if nfilename != ""
        begin
            File.rename(filename, nfilename)
        rescue
            puts "Could not rename file '#{filename}' to '#{nfilename}'."
            next
        end
    else
        puts "Could not extract author and title information from PDF '#{filename}'."
        next
    end
end

Deixe um comentário