# \[Feature:1.9\] io/console

**URL:** <https://www.ruby-forum.com/t/feature-1-9-io-console/186139>\
**Category:** Development\
**Created:** [April 1, 2010, 1:59am UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139 "2010-04-01T01:59:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [April 1, 2010, 1:59am UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139/1 "2010-04-01T01:59:22Z")

</div>

e$B$J$+$@$G$9!#e(B

e$B3HD%%i%$%V%i%je(Bio/consolee$B$N\<h$j9~$\_$r%j%/%(%9%H$7$^$9!#e(B

[http://www.rubyist.net/~nobu/ruby/io-console-0.2.gem](http://www.rubyist.net/~nobu/ruby/io-console-0.2.gem)  
[http://www.rubyist.net/~nobu/ruby/io-console-20080905.tar.bz2](http://www.rubyist.net/~nobu/ruby/io-console-20080905.tar.bz2)

readlinee$B$de(Bcursese$B$^$G$OI,MW$O$J$$$1$l$I!“C1$J$ke(Bgetse$B$de(Bgetce$B$G$O:$$ke(B  
e$B$H$$$&\>l9g$KJXMx$G$9!#$3$&$$$&5!G=$O!“7k9=\<ALd$,=P$k3d$K$O!”%7%9e(B  
e$B%F%`0MB8$GLLE]$J$3$H$K$J$j$^$9!#e(Bhighlinee$B$J$I$N$h$j9b5!G=$Je(Bgeme$B$be(B  
e$B$”$j$^$9$,!"\<B:]$K$OCf$G$Oe(Bsttye$B$r8F$s$G$$$?$j$7$F%]!\<%?%V%k$G$O$"e(B  
e$B$j$^$;$s!#e(Bio/consolee$B$O$3$&$$$C$?%i%$%V%i%j$K%]!\<%?%V%k$J2\<0LAX$re(B  
e$BDs6!$9$k$3$H$b$G$-$^$9!#e(B

e$B0J2\<$N$h$&$J%a%=%C%I$,Ds6!$5$l$^$9!#e(B

IO#noecho  
IO#noecho {|io| }  
IO#raw  
IO#raw {|io| }  
IO#getch  
IO#winsize  
IO.console #=\> IO for console device

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [April 1, 2010, 3:06am UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139/2 "2010-04-01T03:06:40Z")

</div>

2010e$BG/e(B4e$B7ne(B1e$BF|e(B8:58 Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> readlinee$B$de(Bcursese$B$^$G$OI,MW$O$J$$$1$l$I!“C1$J$ke(Bgetse$B$de(Bgetce$B$G$O:$$ke(B  
> e$B$H$$$&\>l9g$KJXMx$G$9!#$3$&$$$&5!G=$O!“7k9=\<ALd$,=P$k3d$K$O!”%7%9e(B  
> e$B%F%`0MB8$GLLE]$J$3$H$K$J$j$^$9!#e(Bhighlinee$B$J$I$N$h$j9b5!G=$Je(Bgeme$B$be(B  
> e$B$”$j$^$9$,!"\<B:]$K$OCf$G$Oe(Bsttye$B$r8F$s$G$$$?$j$7$F%]!\<%?%V%k$G$O$"e(B  
> e$B$j$^$;$s!#e(Bio/consolee$B$O$3$&$$$C$?%i%$%V%i%j$K%]!\<%?%V%k$J2\<0LAX$re(B  
> e$BDs6!$9$k$3$H$b$G$-$^$9!#e(B

e$B5!G=$H$7$F$O!“e(BPTY.open e$B$N%I%-%e%a%s%H$G;H$o$6$k$rF@$J$+$C$?e(B  
stty e$B$r=|5n$G$-$=$&$J$N$G!”$h$5$=$&$@$J$!!"$H;W$$$^$9!#e(B

> IO#raw

raw e$B$N0UL#$Ke(B noecho e$B$O4^$^$l$^$9$+e(B?

> IO#noecho {|io| }  
> IO#raw {|io| }

e$B%V%m%C%/0z?t$Ne(B io e$B$O$J$s$G$9$+e(B?

> IO#getch

e$BJV$jCM$OJ8;z$He(B byte e$B$N$I$A$i$G$7$g$&e(B?

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [April 1, 2010, 3:24am UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139/3 "2010-04-01T03:24:13Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 1 Apr 2010 10:05:46 +0900,  
Tanaka A. wrote in [ruby-dev:40900]:

> > IO#raw
> 
> raw e$B$N0UL#$Ke(B noecho e$B$O4^$^$l$^$9$+e(B?

e$B4^$^$l$^$9!#e(B

> > IO#noecho {|io| }  
> > IO#raw {|io| }
> 
> e$B%V%m%C%/0z?t$Ne(B io e$B$O$J$s$G$9$+e(B?

ioe$B%$%s%9%?%s%9\<+?H$rEO$7$^$9!#e(BSymbol#to\_proce$B$HAH$\_9g$o$;$l$Pe(B  
STDIN.noecho(&:gets) e$B$G%(%3!\<%P%C%/$J$7$N0l9TF~NO$K$J$j$^$9!#e(B

> > IO#getch
> 
> e$BJV$jCM$OJ8;z$He(B byte e$B$N$I$A$i$G$7$g$&e(B?

e$B$3$l$Oe(B raw(&:getc)  
e$B$HEy2A$J$N$G!“e(B1.9e$B$G$OJ8;z$,5”$j$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [May 8, 2010, 6:07am UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139/4 "2010-05-08T06:07:19Z")

</div>

e$B%A%1%C%He(B #3073 e$B$,99?7$5$l$^$7$?!#e(B (by Nobuyoshi N.)

e$B%9%F!\<%?%9e(B Assignede$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r27668.  
Nobuyoshi, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/3073](http://redmine.ruby-lang.org/issues/show/3073)

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [April 1, 2010, 4:33pm UTC](https://www.ruby-forum.com/t/feature-1-9-io-console/186139/5 "2010-04-01T16:33:11Z")

</div>

2010/4/1 Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B3HD%%i%$%V%i%je(Bio/consolee$B$N\<h$j9~$\_$r%j%/%(%9%H$7$^$9!#e(B

e$B$"$!!#$3$l$ONI$$$G$9$M!#;?@.$7$^$9!#e(B

e$B$J$\*!“8@$&$^$G$b$J$$$G$9$,4|8B$r2a$.$F$$$k$N$Ge(B1.9.2e$B$K$O\<h$j9~$_$^$;$s!#e(B  
e$B$9$_$^$;$s$,!”%3%\_%C%H$9$k$H$7$F$be(Bruby\_1\_9\_2e$B$,J,4t$9$k$^$GBT$C$F$/$@$5$$!#e(B
