Forum: Ruby iterating over directories

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ruby-er R. (Guest)
on 2009-04-15 09:41
I got this oneliner that isn't producing the output I was expecting (it
printing all of the directories in the linux root directory).

irb(main):012:0> Dir.new("/").each { |name| puts name if
File.directory?(name) }
..
.
=> #<Dir:/>

Does anyone know what I might be doing incorrectly?
Andrew T. (Guest)
on 2009-04-15 09:59
(Received via mailing list)
On Wed, Apr 15, 2009 at 7:41 AM, Dafydd F.
<removed_email_address@domain.invalid> wrote:
> I got this oneliner that isn't producing the output I was expecting (it
> printing all of the directories in the linux root directory).
>
> irb(main):012:0> Dir.new("/").each { |name| puts name if
> File.directory?(name) }
> ..
> .
> => #<Dir:/>
>
> Does anyone know what I might be doing incorrectly?

It should be printing all of the directories in the linux root.
What do you want it to do?

Andrew T.
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain
Ruby-er R. (Guest)
on 2009-04-15 10:04
Andrew T. wrote:
> On Wed, Apr 15, 2009 at 7:41 AM, Dafydd F.
> <removed_email_address@domain.invalid> wrote:
>
> It should be printing all of the directories in the linux root.
> What do you want it to do?

I'm just having it print for now for debugging purposes. But eventually
it will be storing all of the directory names in an array. Or is there
any other way I can control that block to do different things if the
current item is a file and do something else if it is a directory?
Siddick E. (Guest)
on 2009-04-15 10:04
Solution :-
 Dir.new("/").each { |name| puts name if File.directory?( "/" + name) }
Ruby-er R. (Guest)
on 2009-04-15 10:24
Siddick E. wrote:
> Solution :-
>  Dir.new("/").each { |name| puts name if File.directory?( "/" + name) }

Solved, thank you good sir.
Robert K. (Guest)
on 2009-04-15 11:31
(Received via mailing list)
2009/4/15 Dafydd F. <removed_email_address@domain.invalid>:
> Siddick E. wrote:
>> Solution :-
>>  Dir.new("/").each { |name| puts name if File.directory?( "/" + name) }
>
> Solved, thank you good sir.

Here's another one:

puts Dir["/*"].select {|f| test ?d, f}

Cheers

robert
This topic is locked and can not be replied to.