[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

what's wrong with these?

Humphrey Alba

4/6/2009 1:39:00 AM

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'
--
Posted via http://www.ruby-....

7 Answers

Michael Malone

4/6/2009 2:03:00 AM

0

Humphrey Alba wrote:
> 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.
=======================================================================


Nobuyoshi Nakada

4/6/2009 2:19:00 AM

0

Hi,

At Mon, 6 Apr 2009 11:03:09 +0900,
Michael Malone wrote in [ruby-talk:333071]:
> > 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?

require 'tmpdir'

--
Nobu Nakada

Humphrey Alba

4/6/2009 4:11:00 AM

0

Michael Malone wrote:
> Humphrey Alba wrote:
>> 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
--
Posted via http://www.ruby-....

Humphrey Alba

4/6/2009 4:12:00 AM

0

Nobuyoshi Nakada wrote:
> Hi,
>
> At Mon, 6 Apr 2009 11:03:09 +0900,
> Michael Malone wrote in [ruby-talk:333071]:
>> > 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?
>
> require 'tmpdir'

Thanks.
--
Posted via http://www.ruby-....

Sebastian Hungerecker

4/6/2009 5:24:00 AM

0

Humphrey Alba wrote:
> 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

Robert Klemme

4/6/2009 8:14:00 AM

0

On 06.04.2009 03:39, Humphrey Alba wrote:
> 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.ht...

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

Ken Bloom

4/6/2009 1:49:00 PM

0

On Sun, 05 Apr 2009 21:19:04 -0500, Nobuyoshi Nakada wrote:

> Hi,
>
> At Mon, 6 Apr 2009 11:03:09 +0900,
> Michael Malone wrote in [ruby-talk:333071]:
>> > 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?
>
> require 'tmpdir'

Yeah. The core rdoc on http://www.rub... 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

--
Chanoch (Ken) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu...