Try something like:
require './colorize_string.rb'
puts [
"This".red,
"is".yellow,
"very".underline_cyan,
"colorful.".bold_green
].join(' ')
Try something like:
require './colorize_string.rb'
puts [
"This".red,
"is".yellow,
"very".underline_cyan,
"colorful.".bold_green
].join(' ')
# Add colorization support to the Core String class | |
class String | |
# colorization | |
def colorize(color_code) | |
if $stdout.isatty | |
"\e[#{color_code}m#{self}\e[0m" | |
else | |
self | |
end | |
end | |
def color_map | |
{ | |
:black => "0;30", # Black - Regular | |
:red => "0;31", # Red - Regular | |
:green => "0;32", # Green - Regular | |
:yellow => "0;33", # Yellow - Regular | |
:blue => "0;34", # Blue - Regular | |
:purple => "0;35", # Purple - Regular | |
:cyan => "0;36", # Cyan - Regular | |
:white => "0;37", # White - Regular | |
:bold_black => "1;30", # Black - Bold | |
:bold_red => "1;31", # Red - Bold | |
:bold_green => "1;32", # Green - Bold | |
:bold_yellow => "1;33", # Yellow- Bold | |
:bold_blue => "1;34", # Blue - Bold | |
:bold_purple => "1;35", # Purple- Bold | |
:bold_cyan => "1;36", # Cyan - Bold | |
:bold_white => "1;37", # White - Bold | |
:underline_black => "4;30", # Black - Underline | |
:underline_red => "4;31", # Red - Underline | |
:underline_green => "4;32", # Green - Underline | |
:underline_yellow => "4;33", # Yellow - Underline | |
:underline_blue => "4;34", # Blue - Underline | |
:underline_purple => "4;35", # Purple - Underline | |
:underline_cyan => "4;36", # Cyan - Underline | |
:underline_white => "4;37", # White - Underline | |
:background_black => "40", # Black - Background | |
:background_red => "41", # Red - Background | |
:background_green => "42", # Green - Background | |
:background_yellow => "43", # Yellow - Background | |
:background_blue => "44", # Blue - Background | |
:background_purple => "45", # Purple - Background | |
:background_cyan => "46", # Cyan - Background | |
:background_white => "47", # White - Background | |
} | |
end | |
def method_missing(name, *args, &block) | |
if color_code = color_map[name] | |
colorize(color_code) | |
else | |
super(name, args, block) | |
end | |
end | |
end |