Different results with File.exists?

when I use a string constant with File.exists? like the following ,it
works fine:
File.exists?("/home/sepehr")
but when I get the string from user:
path=gets
if File.exists?(path) then


end
it doesn’t work! what’s wrong with the string which is typed by the
user?

yeah,that was it! thanks :wink:

Hi –

On Tue, 8 Sep 2009, Mehdi K. wrote:

user?
It ends with a newline. Try path.chomp.

David


David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com
Ruby/Rails training, mentoring, consulting, code-review
Latest book: The Well-Grounded Rubyist (The Well-Grounded Rubyist)

September Ruby training in NJ has been POSTPONED. Details to follow.

2009/9/8 Mehdi K. [email protected]:

yeah,that was it! thanks :wink:

Additional hint: use p to debug output what you have. e.g.

path=gets
p path
if File.exists?(path) then

Cheers

robert

Hi –

On Tue, 8 Sep 2009, Robert K. wrote:

2009/9/8 Mehdi K. [email protected]:

yeah,that was it! thanks :wink:

Additional hint: use p to debug output what you have. e.g.

path=gets
p path
if File.exists?(path) then

Meta-additional hint: in 1.9, p returns its argument(s), so if you
have:

path = gets

you can just change it to:

p path = gets

which makes for slightly easier back-and-forth between the p version
and the non-p version.

David


David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com
Ruby/Rails training, mentoring, consulting, code-review
Latest book: The Well-Grounded Rubyist (The Well-Grounded Rubyist)

September Ruby training in NJ has been POSTPONED. Details to follow.

2009/9/9 David A. Black [email protected]:

path=gets
p path = gets

which makes for slightly easier back-and-forth between the p version
and the non-p version.

David, did you rather mean “path = p gets”? Because “p path = gets”
does work in pre 1.9 already. :slight_smile:

Kind regards

robert

Additional hint: use p to debug output

Or use pp!

With arrays and hashes pp beats p easily! :>

Hi –

On Wed, 9 Sep 2009, Robert K. wrote:

 p path = gets

which makes for slightly easier back-and-forth between the p version
and the non-p version.

David, did you rather mean “path = p gets”? Because “p path = gets”
does work in pre 1.9 already. :slight_smile:

I didn’t really mean path = p gets – I was thinking in general of the
idiom of:

p x

instead of

p x
x

but chose a bad example :slight_smile:

David


David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com
Ruby/Rails training, mentoring, consulting, code-review
Latest book: The Well-Grounded Rubyist (The Well-Grounded Rubyist)

September Ruby training in NJ has been POSTPONED. Details to follow.