what's wrong with these?

H

Humphrey Alba

Version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
Is there something wrong with this version?

1:
Dir.foreach("/tmp") {|f| puts f if File.directory?(f) }
-- it just prints '.' and '..'

2:
puts Dir.tmpdir
Dir.mktmpdir { |i| puts i }
-- it says 'undefined method'
 
M

Michael Malone

Humphrey said:
Version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
Is there something wrong with this version?

1:
Dir.foreach("/tmp") {|f| puts f if File.directory?(f) }
-- it just prints '.' and '..'

Have you checked to see if you do have directories inside /tmp other
than '.' and '..'?
2:
puts Dir.tmpdir
Dir.mktmpdir { |i| puts i }
-- it says 'undefined
As for "undefined method" you're quite right, I can't find Dir#tmpdir
defined anywhere either, and yet it's in the docs...what's the deal guys?

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================
 
N

Nobuyoshi Nakada

Hi,

At Mon, 6 Apr 2009 11:03:09 +0900,
Michael Malone wrote in [ruby-talk:333071]:
As for "undefined method" you're quite right, I can't find Dir#tmpdir
defined anywhere either, and yet it's in the docs...what's the deal guys?

require 'tmpdir'
 
H

Humphrey Alba

Michael said:
Humphrey said:
Version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
Is there something wrong with this version?

1:
Dir.foreach("/tmp") {|f| puts f if File.directory?(f) }
-- it just prints '.' and '..'

Have you checked to see if you do have directories inside /tmp other
than '.' and '..'?

Yes, there are directories inside /tmp
 
H

Humphrey Alba

Nobuyoshi said:
Hi,

At Mon, 6 Apr 2009 11:03:09 +0900,
Michael Malone wrote in [ruby-talk:333071]:
As for "undefined method" you're quite right, I can't find Dir#tmpdir
defined anywhere either, and yet it's in the docs...what's the deal guys?

require 'tmpdir'

Thanks.
 
S

Sebastian Hungerecker

Humphrey said:
Dir.foreach("/tmp") {|f| puts f if File.directory?(f) }
-- it just prints '.' and '..'

Dir.foreach("/tmp") {|f| puts f if File.directory?("/tmp/#{f}") }
or
Dir.chdir("/tmp") do
Dir.foreach(".") {|f| puts f if File.directory?(f) }
end
or
Dir.glob("/tmp/*") {|f| puts f if File.directory?(f) }
or
Dir.glob("/tmp/*/") {|f| puts f}
or
puts Dir.glob("/tmp/*/")
or
puts Dir["/tmp/*/"]

The glob-ones will not include hidden directories or . and .. and they will
print the full-path to the dir (though you could also use chdir with glob, if
you don't want the full path).

HTH,
Sebastian
 
R

Robert Klemme

Version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
Is there something wrong with this version?

1:
Dir.foreach("/tmp") {|f| puts f if File.directory?(f) }
-- it just prints '.' and '..'

This is because of what Dir.foreach returns:

http://www.ruby-doc.org/core/classes/Dir.html#M002327

Hint: paths are missing.
2:
puts Dir.tmpdir
Dir.mktmpdir { |i| puts i }
-- it says 'undefined method'

Well, what do you conclude from that?

Kind regards

robert
 
K

Ken Bloom

Hi,

At Mon, 6 Apr 2009 11:03:09 +0900,
Michael Malone wrote in [ruby-talk:333071]:
As for "undefined method" you're quite right, I can't find Dir#tmpdir
defined anywhere either, and yet it's in the docs...what's the deal
guys?

require 'tmpdir'

Yeah. The core rdoc on http://www.ruby-doc.org/ has a pitfall that it
includes the standard libraries as well. (Nobody separated out the
standard libraries from that.)

If you want to know what's in the core, getting a copy of PickAxe is a
better bet.

--Ken
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top