Posiblemente un enfoque mejor que podría simplificar las cosas: poder manejar copias de seguridad existentes que pueden ser *.gz o *.zst es utilizar la detección automática de tar:
tar --auto-compress -c -f ../file.tar.gz .
tar --auto-compress -c -f ../file.tar.zst .
Más importante, por supuesto, para la descompresión, donde podríamos no saber qué vamos a encontrar.
Actualmente, el código de Ruby parece hacer muchas cosas que tar puede hacer por sí mismo. Esperemos que esto pueda simplificarse, en lugar de volverse más complejo.