sábado, 20 de abril de 2013

Archivos y directorios en Ruby

Hace unos días, mientras platicaba y me ponía al día con un amigo de la universidad, me asalto con un reto. Me decía que quería hacer un script para renombrar varios archivos repartidos en varias carpetas y renombrar cada uno de los archivos con el nombre de la carpeta que lo contenía; en ese momento estaba reinstalando mi ambiente de desarrollo en la computadora, dentro del cual se encuentra Ruby. Así que le dije que en cuanto terminara de instalar todo, me pondría a ello.
No había tenido contacto con la API de archivos y directorios de Ruby, pero supuse que no sería complicado así que busqué en la documentación y en cuestión de minutos ya tenía el script, que en sí no es nada elaborado pero cumple con lo que se propone, obviamente se puede mejorar; lo que me gustaría resaltar es la facilidad con la que podemos hacer las cosas en Ruby. Incluso cuando le mostré el script a mi amigo y aunque el no había hecho nada en este lenguaje lo entendió perfectamente (o eso creo) y pudo usarlo felizmente en su equipo con Windows. En fin, Ruby no deja de sorprenderme.

Aquí el script:

#!/usr/bin/ruby

def directories
 directories = Dir.entries(Dir.pwd)
 directories.delete(".", "..")
 directories
end

Dir.chdir("dir")

puts directories.join(" ")
directories.sort.each do |directory|

  Dir.chdir(directory)
  File.rename(directories.first, directory << ".txt")
  Dir.chdir("../")
end

puts Dir.pwd

Como dije le falta trabajo, como por ejemplo hacerlo interactivo para que puedas navegar al directorio necesario, o poder escoger las extensiones del archivo así como agregar las correspondientes validaciones.

Ruby Doc: Dir
Ruby Doc: File

No hay comentarios:

Publicar un comentario