How to coloring Windows command prompt in irb?

S

Shin guey Wong

Is there any gem or ruby script to make irb command prompt in windows
color? I found a gem 'wirble' which is very nice but it only works in
Linux or Mac. It can't work in cygwin or windows command prompt. I
searching for hours on any windows command prompt which can show color
but couldn't make it, I only found some interactive python script to do
that...:(

Finally I had to search for any source code to show color in cmd prompt.
In the end I found 2 win32api to do that and luckily I can quickly
included in ruby using the ruby win32api call. Here are the 2 win32api
to show color:

#----------------------------------------------------------------------
require 'Win32API'
get_std_handle = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
set_console_txt_attrb =
Win32API.new("kernel32","SetConsoleTextAttribute",
['L','N'], 'I')
hout = get_std_handle.call(-11)
set_console_txt_attrb.call(hout,7)
puts 'default command prompt color'
set_console_txt_attrb.call(hout,12)
puts 'command prompt red color text'

# the color range from 1 - 15 for black background color
# we also can change the input text color, I never try that, but I think
# it should be get_std_handle.call(-10) or -12....forgot already
#-----------------------------------------------------------------------
This script is working fine for me to print color text. Can anyone
integrate this windows coloring script into 'wirble' ? It is hard for me
to change the 'wirble' ruby script. It would be thankfully if anyone can
do that.

Regards,
Shin Guey
 
J

Jan Svitok

Is there any gem or ruby script to make irb command prompt in windows
color? I found a gem 'wirble' which is very nice but it only works in
Linux or Mac. It can't work in cygwin or windows command prompt. I
searching for hours on any windows command prompt which can show color
but couldn't make it, I only found some interactive python script to do
that...:(

Finally I had to search for any source code to show color in cmd prompt.
In the end I found 2 win32api to do that and luckily I can quickly
included in ruby using the ruby win32api call. Here are the 2 win32api
to show color:

#----------------------------------------------------------------------
require 'Win32API'
get_std_handle = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
set_console_txt_attrb =
Win32API.new("kernel32","SetConsoleTextAttribute",
['L','N'], 'I')
hout = get_std_handle.call(-11)
set_console_txt_attrb.call(hout,7)
puts 'default command prompt color'
set_console_txt_attrb.call(hout,12)
puts 'command prompt red color text'

# the color range from 1 - 15 for black background color
# we also can change the input text color, I never try that, but I think
# it should be get_std_handle.call(-10) or -12....forgot already
#-----------------------------------------------------------------------
This script is working fine for me to print color text. Can anyone
integrate this windows coloring script into 'wirble' ? It is hard for me
to change the 'wirble' ruby script. It would be thankfully if anyone can
do that.

Regards,
Shin Guey

maybe this would help: http://rubyforge.org/projects/winconsole (ansi
coloring for console)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,710
Latest member
bernietqt

Latest Threads

Top