Is there anyway to override the STDIN of a ruby program, do that when a
command such as 'gets' is called somewhere randomly in the program, I am
able to control what action is taken. i.e. i don't want it to block if
there is nothing in the STDIN buffer, i would like to be able to do my
own thing.
NOTE: the programs will be generated randomly, so i can't just call a
different method (one i defined). But i can add to the code..
Thanks for your time
···
--
Posted via http://www.ruby-forum.com/.
You can use IO#reopen on STDIN, or you can undefine the constant and
then redefine it.
Aria
···
On Wed, 2006-11-22 at 06:06 +0900, James Smith wrote:
Is there anyway to override the STDIN of a ruby program, do that when a
command such as 'gets' is called somewhere randomly in the program, I am
able to control what action is taken. i.e. i don't want it to block if
there is nothing in the STDIN buffer, i would like to be able to do my
own thing.
NOTE: the programs will be generated randomly, so i can't just call a
different method (one i defined). But i can add to the code..
Please don't mess with STDIN, STDOUT and STDERR unless you really, really have to.
Use $std* instead.
http://blog.segment7.net/articles/2006/08/17/stdout-vs-stdout
···
On Nov 21, 2006, at 1:16 PM, Aredridel wrote:
On Wed, 2006-11-22 at 06:06 +0900, James Smith wrote:
Is there anyway to override the STDIN of a ruby program, do that when a
command such as 'gets' is called somewhere randomly in the program, I am
able to control what action is taken. i.e. i don't want it to block if
there is nothing in the STDIN buffer, i would like to be able to do my
own thing.
NOTE: the programs will be generated randomly, so i can't just call a
different method (one i defined). But i can add to the code..
You can use IO#reopen on STDIN, or you can undefine the constant and
then redefine it.
--
Eric Hodel - drbrain@segment7.net - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant
http://trackmap.robotcoop.com