Module: Colored
Overview
cute.
>> "this is red".red
>> "this is red with a blue background (read: ugly)".red_on_blue
>> "this is red with an underline".red.underline
>> "this is really bold and really blue".bold.blue
>> Colored.red "This is red" # but this part is mostly untested
Constant Summary collapse
- COLORS =
{ 'black' => 30, 'red' => 31, 'green' => 32, 'yellow' => 33, 'blue' => 34, 'magenta' => 35, 'cyan' => 36, 'white' => 37 }
- EXTRAS =
{ 'clear' => 0, 'bold' => 1, 'underline' => 4, 'reversed' => 7 }
Instance Method Summary collapse
- #color(color_name) ⇒ Object
- #colorize(string, options = {}) ⇒ Object
- #colors ⇒ Object
- #extra(extra_name) ⇒ Object
Instance Method Details
#color(color_name) ⇒ Object
83 84 85 86 87 88 |
# File 'lib/colored.rb', line 83 def color(color_name) background = color_name.to_s =~ /on_/ color_name = color_name.to_s.sub('on_', '') return unless color_name && COLORS[color_name] "\e[#{COLORS[color_name] + (background ? 10 : 0)}m" end |
#colorize(string, options = {}) ⇒ Object
68 69 70 71 72 |
# File 'lib/colored.rb', line 68 def colorize(string, = {}) colored = [color([:foreground]), color("on_#{[:background]}"), extra([:extra])].compact * '' colored << string colored << extra(:clear) end |
#colors ⇒ Object
74 75 76 |
# File 'lib/colored.rb', line 74 def colors @@colors ||= COLORS.keys.sort end |