Robert Klemme
2/20/2008 1:15:00 PM
2008/2/20, Sebastian Hungerecker <sepp2k@googlemail.com>:
> ycsunil wrote:
> > C:\Documents and Settings\sunilc\Desktop>ruby test.rb 'add'
> > input something
> > test.rb:3:in `gets': No such file or directory - add (Errno::ENOENT)
> > from test.rb:3
> >
> > Please let me know why is this error coming?
>
>
> Kernel#gets tries to read from the file specified by the command line
> arguments if there are any. This is documented (and in some cases useful).
> If you don't want this behaviour use IO#gets directly (as in: STDIN.gets).
Alternatively the script can be fixed like this:
if (ARGV.shift == 'add')
puts 'input something'
gt = gets
puts gt
else
puts 'fail'
end
A more complex but also more robust alternative might be to process
command line options e.g. with OptionParser.
Kind regards
robert
--
use.inject do |as, often| as.you_can - without end