Forum: Ruby Newbe - strange behavior of print

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.
caof2005 (Guest)
on 2007-04-11 11:21
(Received via mailing list)
Hello folks,  this is the scenario:
I tried to run the following code in EasyEclipse for Ruby IDE and
SciTE on WinXP
Both has the same behavior.

def main
  print "Enter the number of employees: "
  numEmp = gets
  puts "The number of employees is:= " + numEmp.to_s
end

main

====================

The output is nothing ( it appears that the program hangs-on for a
while ), then if go to the console and I push the ENTER key it appears
the "Enter the number of employees: " and suddenly the program
terminates.

What I'm doing wrong?, I tried to follow the instructions from several
books ( David Black's "Ruby for Rails" and Dave T. "Programming
Ruby" ) and both indicates that the kind of code that I wrote should
work.

Any help would be very appreciated.
Regards
Phillip G. (Guest)
on 2007-04-11 11:25
(Received via mailing list)
caof2005 wrote:
>
> books ( David Black's "Ruby for Rails" and Dave T. "Programming
> Ruby" ) and both indicates that the kind of code that I wrote should
> work.
>

Have you, per chance, tried to invoke your script from the command line?
I know that SciTE needs to be patched in one way or another to allow for
input. I can't judge Eclipse in that regard, as I don't use it.

--
Phillip "CynicalRyan" Gawlowski
http://cynicalryan.110mb.com/

Rule of Open-Source Programming #9:

Give me refactoring or give me death!
caof2005 (Guest)
on 2007-04-11 13:31
(Received via mailing list)
On Apr 11, 2:24 am, Phillip G. <removed_email_address@domain.invalid>
wrote:
> > end
> > What I'm doing wrong?, I tried to follow the instructions from several
>
> Rule of Open-Source Programming #9:
>
> Give me refactoring or give me death!

Phillip:

Yes I tried from within irb... and it works perfectly, however when I
use either SciTE or EasyEclipse the behavior is awkward.

Regards
Carlos
Drew O. (Guest)
on 2007-04-12 01:43
> Phillip:
>
> Yes I tried from within irb... and it works perfectly, however when I
> use either SciTE or EasyEclipse the behavior is awkward.
>
> Regards
> Carlos

Carlos -

I can't speak to SciTE, but Eclipse (specifically with RDT) has an issue
with the syncing of input/output.

See the first question at
http://rubyeclipse.sourceforge.net/faq.rdt.html for information about
resolving the issue. Or just run from the command line.
caof2005 (Guest)
on 2007-09-26 01:07
(Received via mailing list)
On Apr 11, 3:36 am, Björn Paetzel <removed_email_address@domain.invalid> wrote:
> >    puts "The number of employees is:= " + numEmp.to_s
> > end
>
> That should help. :)

Bjorn:

Thanks it worked great!
However is it possible you can explain me in general terms why this
behavior happens?
I mean, besides trying in EasyEclipse and SciTE I tried the same code
in irb, and surprisingly it works perfectly (no need to flush)!

Regards
Marcin R. (Guest)
on 2007-09-26 01:10
(Received via mailing list)
On Wednesday 11 April 2007 09:25, caof2005 wrote:
> > >    puts "The number of employees is:= " + numEmp.to_s
> in irb, and surprisingly it works perfectly (no need to flush)!
>
> Regards

Irb have Readline support and also automatically flushes everything -
just in
case :] by deafault print don't flush - if you want flushing - use puts
This topic is locked and can not be replied to.