Could anybody help me to figure out what is wrong with this script. I am
new to ruby and this script is supposed to make a playlist, which it
does do, but when I try to use the playlist it is empty. Thanks.
def shuffle(arr)
shuf = []
while arr.length > 0
rand_sel = rand(arr.length)
curr_sel = 0
new_arr = []
arr.each do |x|
if curr_sel == rand_sel
shuf.push(x)
else
new_arr.push(x)
end
curr_sel = curr_sel + 1
end
arr = new_arr
end
shuf
end
songs = shuffle(Dir[’ **/*.mp3’])
File.open “dat playlist.m3u”, “w” do |x|
songs.each do |mp3|
x.write mp3 + “\n”
end
end
Could anybody help me to figure out what is wrong with this script. I am
new to ruby and this script is supposed to make a playlist, which it
does do, but when I try to use the playlist it is empty. Thanks.
A more meaningful thread title would have been nice…
So you have checked that the playlist file contains the correct entries?
And still it appears to be empty when you open it with your music
player? What happens when you write a playlist “by hand”?
I’m not sure, but this doesn’t look like a Ruby problem. If the file
paths are there, then your Ruby script has done exactly what it should
do. Everything else is up to your music player.
By the way, the “shuffle” method is useless. The Array class already has
a shuffle method built in:
Sorry about the title. No the playlist file does not contain any data,
and is 0 bytes. When I import playlist into itunes it is just as though
I had just selected create a new playlist and it was awaiting song sto
be added. As for the method it is from a task from a learn to program
book so I can’t really say why it wanted a new method to be created.
Thanks.
Sorry about the title. No the playlist file does not contain any data,
and is 0 bytes.
I see. In this case the songs array must be empty. Try to remove the
whitespace before the " **/.mp3" and make sure you’re in the right
directory. That is, check the result of Dir[’ **/.mp3’] before anything
else.
I see. In this case the songs array must be empty. Try to remove the
whitespace before the " **/.mp3" and make sure you’re in the right
directory. That is, check the result of Dir[’ **/.mp3’] before anything
else.
Ok thanks, I’ll do that and let you know how it goes.
I see. In this case the songs array must be empty. Try to remove the
whitespace before the " **/.mp3" and make sure you’re in the right
directory. That is, check the result of Dir[’ **/.mp3’] before anything
else.
Ok thanks, I’ll do that and let you know how it goes.
Yeah, works well now, thanks heaps for that.
P.S I forgot to mention this before, but I am doing this for a research
project folio, and was wondering if you would mind me using this thread
in it?
Cheers.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.