Possivelmente uma abordagem melhor, que poderia simplificar as coisas — a capacidade de lidar com backups existentes que podem ser *.gz ou *.zst — é usar a detecção automática do tar:
tar --auto-compress -c -f ../file.tar.gz .
tar --auto-compress -c -f ../file.tar.zst .
Mais importante para a descompactação, é claro, onde podemos não saber o que vamos encontrar.
Atualmente, o código Ruby parece fazer muitas coisas que o próprio tar já pode fazer. Esperamos que isso possa ser simplificado, em vez de se tornar mais complexo.