ruby rename elements of array with elements of different array -


i have file looks this:

ttitle0=track name 1 ttitle1=track name 2 

and directory contains track01.cdda.wav.mp3 , track02.cdda.wav.mp3

i have following code, creates 2 different arrays, 1 track names , 1 track titles:

tracks = dir.glob("*.mp3")  tracknames = array.new file.open('read').each |line|   if line =~ /ttitle/     tracknames << line.split("=")[1].strip!   end end 

this gives me 2 arrays:

["track name 1", "track name 2"] 

and

["track01.cdda.wav.mp3", "track02.cdda.wav.mp3"] 

i rename files in second array elements of first array. so, "track01.cdda.wav.mp3" become "track name 1.mp3".

here have tried far:

tracks.map {|track| file.rename("#{tracks}", "#{tracknames}.mp3") } 

and error:

no such file or directory - track01.cdda.wav.mp3track02.cdda.wav.mp3 or track name 1track name 2 (errno::enoent) 

i have keep in mind in future there number of elements in each array, numbers equal each other.

any ideas?

use array#zip:

tracks.zip(tracknames).each |track, trackname|   file.rename track, "#{trackname}.mp3" end 

alternatively (less fun, doesn't create intermediary array of arrays prior enumeration):

tracks.each_with_index |track, i|   file.rename track, "#{tracknames[i]}.mp3" end 

Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -