Eu preciso de uma maneira fácil de pegar um arquivo tar e convertê-lo em uma string (e vice-versa). Existe uma maneira de fazer isso em Ruby? Minha melhor tentativa foi esta:
file = File.open("path-to-file.tar.gz")
contents = ""
file.each {|line|
contents << line
}
Eu pensei que seria o suficiente para convertê-lo em uma seqüência de caracteres, mas quando eu tento escrever de volta assim ...
newFile = File.open("test.tar.gz", "w")
newFile.write(contents)
Não é o mesmo arquivo. Doing ls -l
mostra que os arquivos têm tamanhos diferentes, embora estejam bem próximos (e a abertura do arquivo revela a maior parte do conteúdo intacta). Há um pequeno erro que estou cometendo ou uma maneira totalmente diferente (mas viável) de fazer isso?
IO.read
seria a resposta preferida.