[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

sort_by and directories

Dafydd Fontenot

4/28/2009 2:42:00 AM

On my system I have this small ruby script as a test to arrange files.
I'm using "find" and trying to get the files sorted starting with the
files the farthest away from the base folder first in the array (so the
files nested in the most sub directories are first on the array).

Here's what the script looks like
test = Array.new

`find /folder/place -type f`.split("\n").each do |file|
test.push(file)
end

test.sort_by { |file| file.gsub(/[^\/]/, "").length }
puts test

However when I run the script the files are not actually organized any
different than what find returns.

Can someone correct me on my methodology?
--
Posted via http://www.ruby-....

1 Answer

Nobuyoshi Nakada

4/28/2009 3:33:00 AM

0

Hi,

At Tue, 28 Apr 2009 11:42:07 +0900,
Dafydd Fontenot wrote in [ruby-talk:335235]:
> Here's what the script looks like
> test = Array.new
>
> `find /folder/place -type f`.split("\n").each do |file|
> test.push(file)
> end
>
> test.sort_by { |file| file.gsub(/[^\/]/, "").length }
> puts test

Array#sort_by returns sorted new array, but doesn't change the
receiver itself.

require 'find'
test = []
Find.find("/folder/place") {|file| test.push(file) if File.file?(file)}
puts test.sort_by {|file| file.count("/")}

--
Nobu Nakada