paint 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +10 -1
- data/README.rdoc +21 -5
- data/lib/paint.rb +69 -13
- data/lib/paint/rgb_colors.rb +1 -1
- data/lib/paint/rgb_colors_ansi.rb +27 -0
- data/lib/paint/util.rb +30 -3
- data/lib/paint/version.rb +1 -1
- data/paint.gemspec +2 -2
- data/spec/paint_methods_spec.rb +18 -6
- data/spec/paint_mode_spec.rb +21 -0
- data/spec/paint_spec.rb +7 -3
- metadata +6 -4
data/CHANGELOG.rdoc
CHANGED
@@ -1,2 +1,11 @@
|
|
1
|
-
=== 0.8
|
1
|
+
=== 0.8.1 ==
|
2
|
+
* Improve rgb function with better gray scale values
|
3
|
+
* Add Paint.mode:
|
4
|
+
* Set to false to deactivate colorizing
|
5
|
+
* Set to 16 or 8 and all color generation methods will generate simple ansi colors
|
6
|
+
* Set to 256 for 256 color support
|
7
|
+
* Tries to automatically detect your terminal's features
|
8
|
+
* Minor changes
|
9
|
+
|
10
|
+
=== 0.8.0 ===
|
2
11
|
* Initial release
|
data/README.rdoc
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
Paint manages terminal colors and effects for you. It combines the strengths of gems like term-ansicolor or rainbow into a simple to use and flexible colorizer.
|
2
2
|
|
3
|
+
{Travis}[http://travis-ci.org/janlelis/paint]: http://travis-ci.org/janlelis/paint.png
|
4
|
+
|
3
5
|
== Features
|
4
6
|
* No string extensions (suitable for library development)
|
5
7
|
* Supports setting 256 colors (for capable terminals)
|
6
8
|
* Supports setting any effects (although most terminals won't support it)
|
7
9
|
* Simple to use
|
8
10
|
* Custom shortcuts can be defined and flexibly mixed in
|
9
|
-
|
10
|
-
|
11
|
-
*
|
12
|
-
*
|
11
|
+
* Fall-back modes for non-256-color terminals (Paint.mode), supported modes:
|
12
|
+
* 256 colors
|
13
|
+
* 8 colors (ansi default)
|
14
|
+
* 16 colors (ansi default with bright effect)
|
13
15
|
|
14
16
|
== Setup
|
15
17
|
|
@@ -45,6 +47,16 @@ If you pass multiple colors, the first one is taken as foreground color and the
|
|
45
47
|
|
46
48
|
To see more examples, checkout the specs.
|
47
49
|
|
50
|
+
== Paint.mode
|
51
|
+
|
52
|
+
You can choose between three ways to use <tt>Paint.[]</tt> by setting <tt>Paint.mode</tt> to one of the following:
|
53
|
+
* 256: full support
|
54
|
+
* 16: don't use 256 colors, but the ansi 8 ones (combined with bright effect)
|
55
|
+
* 8: don't use 256 colors, but the ansi 8 ones (combined without bright effect)
|
56
|
+
* false: don't colorize at all
|
57
|
+
|
58
|
+
Paint tries to detect automatically the proper value, but this is still experimental. Please open an issue if <tt>Paint.detect_mode</tt> yields a wrong value.
|
59
|
+
|
48
60
|
== More details about terminal colors and effects
|
49
61
|
|
50
62
|
Terminal colors/effects are set by {ansi escape sequences}[http://en.wikipedia.org/wiki/ANSI_escape_code]. These are strings that look like this: <tt>\e[X;X;X;X;X]m</tt> where X are integers with some meaning. For example, 0 means reset, 31 means red foreground and 41 red background. When you tell Paint to use one of the eight ansi base colors as foreground color, it just inserts a number between 30 and 37 in the sequence. The following colors are available:
|
@@ -97,7 +109,7 @@ Also see {en.wikipedia.org/wiki/ANSI_escape_code}[http://en.wikipedia.org/wiki/A
|
|
97
109
|
|
98
110
|
Now for the fancy part: Color shortcuts for your gems and scripts! Note: You don't have to use them (and only stick to <tt>Paint.[]</tt>) ;)
|
99
111
|
|
100
|
-
It's easy: Just setup a hash of symbol keys and escape string values at: <tt>Paint::SHORTCUTS[:your_namespace]</tt
|
112
|
+
It's easy: Just setup a hash of symbol keys and escape string values at: <tt>Paint::SHORTCUTS[:your_namespace]</tt>. They are stored directly as escape sequences for performance reasons (this also means, you need different namespaces for different <tt>Paint.mode</tt>s). Example:
|
101
113
|
|
102
114
|
Paint::SHORTCUTS[:example] = {
|
103
115
|
:white => Paint.color(:black),
|
@@ -146,6 +158,10 @@ Another one is <tt>Paint.unpaint</tt>, which removes any ansi colors:
|
|
146
158
|
|
147
159
|
Paint.unpaint( Paint['J-_-L', :red, :bright] ).should == 'J-_-L'
|
148
160
|
|
161
|
+
== Todos
|
162
|
+
=== Maybe
|
163
|
+
* 24-bit color support (konsole), see http://www.reddit.com/r/programming/comments/6gxnp/making_the_most_of_colour_on_text_consoles/c03t8k8
|
164
|
+
|
149
165
|
== Credits
|
150
166
|
|
151
167
|
Mainly influenced by rainbow[https://github.com/sickill/rainbow] and {term-ansicolor}[https://github.com/flori/term-ansicolor].
|
data/lib/paint.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
require 'paint/version'
|
2
|
-
require 'paint/shortcuts'
|
1
|
+
require 'paint/version' unless defined? Paint::VERSION
|
2
|
+
require 'paint/shortcuts'unless defined? Paint::SHORTCUTS
|
3
3
|
require 'paint/util'
|
4
4
|
|
5
5
|
module Paint
|
6
6
|
autoload :RGB_COLORS, 'paint/rgb_colors'
|
7
|
+
autoload :RGB_COLORS_ANSI, 'paint/rgb_colors_ansi'
|
7
8
|
|
8
9
|
# Important purpose
|
9
|
-
NOTHING = "\
|
10
|
+
NOTHING = "\033[0m"
|
10
11
|
|
11
12
|
# Basic colors (often, the color differs when using the bright effect)
|
12
13
|
# Final color will be 30 + value for foreground and 40 + value for background
|
@@ -57,12 +58,17 @@ module Paint
|
|
57
58
|
# Takes a string and color options and colorizes the string
|
58
59
|
# See README.rdoc for details
|
59
60
|
def [](string, *args)
|
60
|
-
|
61
|
+
if mode
|
62
|
+
color(*args) + string.to_s + NOTHING
|
63
|
+
else
|
64
|
+
string.to_s
|
65
|
+
end
|
61
66
|
end
|
62
67
|
|
63
68
|
# Sometimes, you only need the color
|
64
69
|
# Used by []
|
65
70
|
def color(*options)
|
71
|
+
return '' unless mode
|
66
72
|
mix = []
|
67
73
|
color_seen = false
|
68
74
|
|
@@ -94,7 +100,7 @@ module Paint
|
|
94
100
|
mix << hex(option, color_seen)
|
95
101
|
color_seen = true
|
96
102
|
else
|
97
|
-
mix <<
|
103
|
+
mix << rgb_name(option, color_seen)
|
98
104
|
color_seen = true
|
99
105
|
end
|
100
106
|
|
@@ -116,9 +122,17 @@ module Paint
|
|
116
122
|
wrap(*mix)
|
117
123
|
end
|
118
124
|
|
125
|
+
# This variable influences the color code generation
|
126
|
+
# Currently supported values:
|
127
|
+
# * 256 - 256 colors
|
128
|
+
# * 16 - only ansi colors
|
129
|
+
# * false - no colorization!
|
130
|
+
def mode() @mode.nil? ? detect_mode : @mode end
|
131
|
+
def mode=(val) @mode = val end
|
132
|
+
|
119
133
|
# Adds ansi sequence
|
120
134
|
def wrap(*ansi_codes)
|
121
|
-
"\
|
135
|
+
"\033[" + ansi_codes*";" + "m"
|
122
136
|
end
|
123
137
|
|
124
138
|
# Creates simple ansi color by looking it up on Paint::ANSI_COLORS
|
@@ -128,7 +142,11 @@ module Paint
|
|
128
142
|
|
129
143
|
# Creates a 256-compatible color from rgb values
|
130
144
|
def rgb(red, green, blue, background = false)
|
131
|
-
|
145
|
+
if mode == 8 || mode == 16
|
146
|
+
"#{background ? 4 : 3}#{rgb_like_value(red, green, blue, mode == 16)}"
|
147
|
+
else
|
148
|
+
"#{background ? 48 : 38}#{rgb_value(red, green, blue)}"
|
149
|
+
end
|
132
150
|
end
|
133
151
|
|
134
152
|
# Creates 256-compatible color from a html-like color string
|
@@ -145,9 +163,9 @@ module Paint
|
|
145
163
|
end
|
146
164
|
|
147
165
|
# Creates a 256-color from a name found in Paint::RGB_COLORS (based on rgb.txt)
|
148
|
-
def
|
166
|
+
def rgb_name(color_name, background = false)
|
149
167
|
if color_code = RGB_COLORS[color_name]
|
150
|
-
|
168
|
+
rgb(*(color_code + [background] )) # 1.8 workaround
|
151
169
|
end
|
152
170
|
end
|
153
171
|
|
@@ -163,11 +181,49 @@ module Paint
|
|
163
181
|
|
164
182
|
private
|
165
183
|
|
166
|
-
#
|
184
|
+
# Returns nearest supported 256-color an rgb value, without fore-/background information
|
185
|
+
# Inspired by the rainbow gem
|
167
186
|
def rgb_value(red, green, blue)
|
168
|
-
|
169
|
-
|
170
|
-
|
187
|
+
gray_possible = true
|
188
|
+
sep = 42.5
|
189
|
+
|
190
|
+
while gray_possible
|
191
|
+
if red < sep || green < sep || blue < sep
|
192
|
+
gray = red < sep && green < sep && blue < sep
|
193
|
+
gray_possible = false
|
194
|
+
end
|
195
|
+
sep += 42.5
|
196
|
+
end
|
197
|
+
|
198
|
+
if gray
|
199
|
+
";5;#{ 232 + ((red.to_f + green.to_f + blue.to_f)/33).round }"
|
200
|
+
else # rgb
|
201
|
+
";5;#{ [16, *[red, green, blue].zip([36, 6, 1]).map{ |color, mod|
|
202
|
+
(6 * (color.to_f / 256)).to_i * mod
|
203
|
+
}].inject(:+) }"
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
# Returns ansi color matching an rgb value, without fore-/background information
|
208
|
+
# See http://mail.python.org/pipermail/python-list/2008-December/1150496.html
|
209
|
+
def rgb_like_value(red, green, blue, use_bright = false)
|
210
|
+
color_pool = RGB_COLORS_ANSI.values
|
211
|
+
color_pool += RGB_COLORS_ANSI_BRIGHT.values if use_bright
|
212
|
+
|
213
|
+
ansi_color_rgb = color_pool.min_by{ |col| distance([red, green, blue],col) }
|
214
|
+
key_method = RUBY_VERSION < "1.9" ? :index : :key
|
215
|
+
if ansi_color = RGB_COLORS_ANSI.send(key_method, ansi_color_rgb)
|
216
|
+
ANSI_COLORS[ansi_color]
|
217
|
+
else
|
218
|
+
ansi_color = RGB_COLORS_ANSI_BRIGHT.send(key_method, ansi_color_rgb)
|
219
|
+
"#{ANSI_COLORS[ansi_color]};1"
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
def distance(rgb1, rgb2)
|
224
|
+
rgb1.zip(rgb2).inject(0){ |acc, (cur1, cur2)|
|
225
|
+
acc + (cur1 - cur2)**2
|
226
|
+
}
|
171
227
|
end
|
172
228
|
end
|
173
229
|
end
|
data/lib/paint/rgb_colors.rb
CHANGED
@@ -2,7 +2,7 @@ module Paint
|
|
2
2
|
# A list of color names, based on X11's rgb.txt
|
3
3
|
# Can be used with Paint.[] by passing a string containing the color name
|
4
4
|
# See Paint::Util::update_rgb_colors for generating
|
5
|
-
RGB_COLORS = {"snow"=>231, "ghost white"=>231, "GhostWhite"=>231, "white smoke"=>231, "WhiteSmoke"=>231, "gainsboro"=>231, "floral white"=>231, "FloralWhite"=>231, "old lace"=>231, "OldLace"=>231, "linen"=>231, "antique white"=>231, "AntiqueWhite"=>231, "papaya whip"=>230, "PapayaWhip"=>230, "blanched almond"=>230, "BlanchedAlmond"=>230, "bisque"=>230, "peach puff"=>230, "PeachPuff"=>230, "navajo white"=>230, "NavajoWhite"=>230, "moccasin"=>230, "cornsilk"=>231, "ivory"=>231, "lemon chiffon"=>230, "LemonChiffon"=>230, "seashell"=>231, "honeydew"=>231, "mint cream"=>231, "MintCream"=>231, "azure"=>231, "alice blue"=>231, "AliceBlue"=>231, "lavender"=>231, "lavender blush"=>231, "LavenderBlush"=>231, "misty rose"=>231, "MistyRose"=>231, "white"=>231, "black"=>16, "dark slate gray"=>59, "DarkSlateGray"=>59, "dark slate grey"=>59, "DarkSlateGrey"=>59, "dim gray"=>102, "DimGray"=>102, "dim grey"=>102, "DimGrey"=>102, "slate gray"=>109, "SlateGray"=>109, "slate grey"=>109, "SlateGrey"=>109, "light slate gray"=>109, "LightSlateGray"=>109, "light slate grey"=>109, "LightSlateGrey"=>109, "gray"=>188, "grey"=>188, "light grey"=>188, "LightGrey"=>188, "light gray"=>188, "LightGray"=>188, "midnight blue"=>18, "MidnightBlue"=>18, "navy"=>19, "navy blue"=>19, "NavyBlue"=>19, "cornflower blue"=>111, "CornflowerBlue"=>111, "dark slate blue"=>61, "DarkSlateBlue"=>61, "slate blue"=>104, "SlateBlue"=>104, "medium slate blue"=>105, "MediumSlateBlue"=>105, "light slate blue"=>141, "LightSlateBlue"=>141, "medium blue"=>20, "MediumBlue"=>20, "royal blue"=>69, "RoyalBlue"=>69, "blue"=>21, "dodger blue"=>39, "DodgerBlue"=>39, "deep sky blue"=>45, "DeepSkyBlue"=>45, "sky blue"=>153, "SkyBlue"=>153, "light sky blue"=>153, "LightSkyBlue"=>153, "steel blue"=>74, "SteelBlue"=>74, "light steel blue"=>189, "LightSteelBlue"=>189, "light blue"=>195, "LightBlue"=>195, "powder blue"=>195, "PowderBlue"=>195, "pale turquoise"=>195, "PaleTurquoise"=>195, "dark turquoise"=>44, "DarkTurquoise"=>44, "medium turquoise"=>80, "MediumTurquoise"=>80, "turquoise"=>86, "cyan"=>51, "light cyan"=>231, "LightCyan"=>231, "cadet blue"=>109, "CadetBlue"=>109, "medium aquamarine"=>115, "MediumAquamarine"=>115, "aquamarine"=>122, "dark green"=>28, "DarkGreen"=>28, "dark olive green"=>65, "DarkOliveGreen"=>65, "dark sea green"=>151, "DarkSeaGreen"=>151, "sea green"=>72, "SeaGreen"=>72, "medium sea green"=>78, "MediumSeaGreen"=>78, "light sea green"=>43, "LightSeaGreen"=>43, "pale green"=>157, "PaleGreen"=>157, "spring green"=>48, "SpringGreen"=>48, "lawn green"=>118, "LawnGreen"=>118, "green"=>46, "chartreuse"=>118, "medium spring green"=>49, "MediumSpringGreen"=>49, "green yellow"=>191, "GreenYellow"=>191, "lime green"=>77, "LimeGreen"=>77, "yellow green"=>149, "YellowGreen"=>149, "forest green"=>34, "ForestGreen"=>34, "olive drab"=>106, "OliveDrab"=>106, "dark khaki"=>186, "DarkKhaki"=>186, "khaki"=>229, "pale goldenrod"=>229, "PaleGoldenrod"=>229, "light goldenrod yellow"=>230, "LightGoldenrodYellow"=>230, "light yellow"=>231, "LightYellow"=>231, "yellow"=>226, "gold"=>226, "light goldenrod"=>229, "LightGoldenrod"=>229, "goldenrod"=>214, "dark goldenrod"=>178, "DarkGoldenrod"=>178, "rosy brown"=>181, "RosyBrown"=>181, "indian red"=>174, "IndianRed"=>174, "saddle brown"=>130, "SaddleBrown"=>130, "sienna"=>131, "peru"=>179, "burlywood"=>223, "beige"=>231, "wheat"=>230, "sandy brown"=>216, "SandyBrown"=>216, "tan"=>187, "chocolate"=>172, "firebrick"=>160, "brown"=>124, "dark salmon"=>216, "DarkSalmon"=>216, "salmon"=>216, "light salmon"=>216, "LightSalmon"=>216, "orange"=>214, "dark orange"=>214, "DarkOrange"=>214, "coral"=>209, "light coral"=>217, "LightCoral"=>217, "tomato"=>209, "orange red"=>202, "OrangeRed"=>202, "red"=>196, "hot pink"=>212, "HotPink"=>212, "deep pink"=>199, "DeepPink"=>199, "pink"=>224, "light pink"=>224, "LightPink"=>224, "pale violet red"=>211, "PaleVioletRed"=>211, "maroon"=>168, "medium violet red"=>163, "MediumVioletRed"=>163, "violet red"=>163, "VioletRed"=>163, "magenta"=>201, "violet"=>219, "plum"=>219, "orchid"=>213, "medium orchid"=>170, "MediumOrchid"=>170, "dark orchid"=>134, "DarkOrchid"=>134, "dark violet"=>128, "DarkViolet"=>128, "blue violet"=>135, "BlueViolet"=>135, "purple"=>129, "medium purple"=>141, "MediumPurple"=>141, "thistle"=>225, "snow1"=>231, "snow2"=>231, "snow3"=>188, "snow4"=>145, "seashell1"=>231, "seashell2"=>231, "seashell3"=>188, "seashell4"=>145, "AntiqueWhite1"=>231, "AntiqueWhite2"=>230, "AntiqueWhite3"=>188, "AntiqueWhite4"=>144, "bisque1"=>230, "bisque2"=>224, "bisque3"=>187, "bisque4"=>138, "PeachPuff1"=>230, "PeachPuff2"=>224, "PeachPuff3"=>187, "PeachPuff4"=>138, "NavajoWhite1"=>230, "NavajoWhite2"=>223, "NavajoWhite3"=>187, "NavajoWhite4"=>138, "LemonChiffon1"=>230, "LemonChiffon2"=>230, "LemonChiffon3"=>187, "LemonChiffon4"=>144, "cornsilk1"=>231, "cornsilk2"=>230, "cornsilk3"=>188, "cornsilk4"=>144, "ivory1"=>231, "ivory2"=>231, "ivory3"=>188, "ivory4"=>145, "honeydew1"=>231, "honeydew2"=>231, "honeydew3"=>188, "honeydew4"=>145, "LavenderBlush1"=>231, "LavenderBlush2"=>231, "LavenderBlush3"=>188, "LavenderBlush4"=>145, "MistyRose1"=>231, "MistyRose2"=>224, "MistyRose3"=>188, "MistyRose4"=>138, "azure1"=>231, "azure2"=>231, "azure3"=>188, "azure4"=>145, "SlateBlue1"=>141, "SlateBlue2"=>105, "SlateBlue3"=>104, "SlateBlue4"=>61, "RoyalBlue1"=>69, "RoyalBlue2"=>69, "RoyalBlue3"=>68, "RoyalBlue4"=>25, "blue1"=>21, "blue2"=>21, "blue3"=>20, "blue4"=>19, "DodgerBlue1"=>39, "DodgerBlue2"=>39, "DodgerBlue3"=>32, "DodgerBlue4"=>25, "SteelBlue1"=>117, "SteelBlue2"=>117, "SteelBlue3"=>74, "SteelBlue4"=>67, "DeepSkyBlue1"=>45, "DeepSkyBlue2"=>45, "DeepSkyBlue3"=>38, "DeepSkyBlue4"=>31, "SkyBlue1"=>153, "SkyBlue2"=>117, "SkyBlue3"=>110, "SkyBlue4"=>67, "LightSkyBlue1"=>195, "LightSkyBlue2"=>153, "LightSkyBlue3"=>152, "LightSkyBlue4"=>103, "SlateGray1"=>195, "SlateGray2"=>189, "SlateGray3"=>152, "SlateGray4"=>103, "LightSteelBlue1"=>195, "LightSteelBlue2"=>189, "LightSteelBlue3"=>152, "LightSteelBlue4"=>103, "LightBlue1"=>195, "LightBlue2"=>195, "LightBlue3"=>152, "LightBlue4"=>109, "LightCyan1"=>231, "LightCyan2"=>195, "LightCyan3"=>188, "LightCyan4"=>109, "PaleTurquoise1"=>195, "PaleTurquoise2"=>195, "PaleTurquoise3"=>152, "PaleTurquoise4"=>109, "CadetBlue1"=>159, "CadetBlue2"=>159, "CadetBlue3"=>116, "CadetBlue4"=>73, "turquoise1"=>51, "turquoise2"=>51, "turquoise3"=>44, "turquoise4"=>37, "cyan1"=>51, "cyan2"=>51, "cyan3"=>44, "cyan4"=>37, "DarkSlateGray1"=>159, "DarkSlateGray2"=>159, "DarkSlateGray3"=>116, "DarkSlateGray4"=>73, "aquamarine1"=>122, "aquamarine2"=>122, "aquamarine3"=>115, "aquamarine4"=>72, "DarkSeaGreen1"=>194, "DarkSeaGreen2"=>194, "DarkSeaGreen3"=>151, "DarkSeaGreen4"=>108, "SeaGreen1"=>85, "SeaGreen2"=>85, "SeaGreen3"=>79, "SeaGreen4"=>72, "PaleGreen1"=>157, "PaleGreen2"=>157, "PaleGreen3"=>114, "PaleGreen4"=>71, "SpringGreen1"=>48, "SpringGreen2"=>48, "SpringGreen3"=>42, "SpringGreen4"=>35, "green1"=>46, "green2"=>46, "green3"=>40, "green4"=>34, "chartreuse1"=>118, "chartreuse2"=>118, "chartreuse3"=>112, "chartreuse4"=>70, "OliveDrab1"=>191, "OliveDrab2"=>191, "OliveDrab3"=>149, "OliveDrab4"=>106, "DarkOliveGreen1"=>192, "DarkOliveGreen2"=>192, "DarkOliveGreen3"=>150, "DarkOliveGreen4"=>107, "khaki1"=>229, "khaki2"=>229, "khaki3"=>186, "khaki4"=>143, "LightGoldenrod1"=>229, "LightGoldenrod2"=>229, "LightGoldenrod3"=>186, "LightGoldenrod4"=>143, "LightYellow1"=>231, "LightYellow2"=>230, "LightYellow3"=>188, "LightYellow4"=>144, "yellow1"=>226, "yellow2"=>226, "yellow3"=>184, "yellow4"=>142, "gold1"=>226, "gold2"=>220, "gold3"=>184, "gold4"=>136, "goldenrod1"=>220, "goldenrod2"=>220, "goldenrod3"=>178, "goldenrod4"=>136, "DarkGoldenrod1"=>220, "DarkGoldenrod2"=>220, "DarkGoldenrod3"=>178, "DarkGoldenrod4"=>136, "RosyBrown1"=>224, "RosyBrown2"=>224, "RosyBrown3"=>181, "RosyBrown4"=>138, "IndianRed1"=>210, "IndianRed2"=>210, "IndianRed3"=>167, "IndianRed4"=>131, "sienna1"=>215, "sienna2"=>209, "sienna3"=>173, "sienna4"=>130, "burlywood1"=>223, "burlywood2"=>223, "burlywood3"=>180, "burlywood4"=>137, "wheat1"=>230, "wheat2"=>230, "wheat3"=>187, "wheat4"=>138, "tan1"=>215, "tan2"=>215, "tan3"=>179, "tan4"=>137, "chocolate1"=>208, "chocolate2"=>208, "chocolate3"=>172, "chocolate4"=>130, "firebrick1"=>203, "firebrick2"=>203, "firebrick3"=>160, "firebrick4"=>124, "brown1"=>203, "brown2"=>203, "brown3"=>167, "brown4"=>124, "salmon1"=>216, "salmon2"=>216, "salmon3"=>173, "salmon4"=>131, "LightSalmon1"=>216, "LightSalmon2"=>216, "LightSalmon3"=>180, "LightSalmon4"=>137, "orange1"=>214, "orange2"=>214, "orange3"=>178, "orange4"=>136, "DarkOrange1"=>208, "DarkOrange2"=>208, "DarkOrange3"=>172, "DarkOrange4"=>130, "coral1"=>210, "coral2"=>209, "coral3"=>173, "coral4"=>131, "tomato1"=>209, "tomato2"=>209, "tomato3"=>167, "tomato4"=>130, "OrangeRed1"=>202, "OrangeRed2"=>202, "OrangeRed3"=>166, "OrangeRed4"=>124, "red1"=>196, "red2"=>196, "red3"=>160, "red4"=>124, "DebianRed"=>197, "DeepPink1"=>199, "DeepPink2"=>199, "DeepPink3"=>162, "DeepPink4"=>125, "HotPink1"=>212, "HotPink2"=>211, "HotPink3"=>175, "HotPink4"=>132, "pink1"=>224, "pink2"=>218, "pink3"=>181, "pink4"=>138, "LightPink1"=>224, "LightPink2"=>218, "LightPink3"=>181, "LightPink4"=>138, "PaleVioletRed1"=>218, "PaleVioletRed2"=>211, "PaleVioletRed3"=>175, "PaleVioletRed4"=>132, "maroon1"=>206, "maroon2"=>205, "maroon3"=>163, "maroon4"=>126, "VioletRed1"=>205, "VioletRed2"=>205, "VioletRed3"=>168, "VioletRed4"=>125, "magenta1"=>201, "magenta2"=>201, "magenta3"=>164, "magenta4"=>127, "orchid1"=>219, "orchid2"=>213, "orchid3"=>176, "orchid4"=>133, "plum1"=>225, "plum2"=>225, "plum3"=>182, "plum4"=>139, "MediumOrchid1"=>213, "MediumOrchid2"=>177, "MediumOrchid3"=>170, "MediumOrchid4"=>97, "DarkOrchid1"=>171, "DarkOrchid2"=>171, "DarkOrchid3"=>134, "DarkOrchid4"=>91, "purple1"=>135, "purple2"=>135, "purple3"=>92, "purple4"=>55, "MediumPurple1"=>183, "MediumPurple2"=>141, "MediumPurple3"=>140, "MediumPurple4"=>97, "thistle1"=>231, "thistle2"=>225, "thistle3"=>188, "thistle4"=>139, "gray0"=>16, "grey0"=>16, "gray1"=>16, "grey1"=>16, "gray2"=>16, "grey2"=>16, "gray3"=>16, "grey3"=>16, "gray4"=>16, "grey4"=>16, "gray5"=>16, "grey5"=>16, "gray6"=>16, "grey6"=>16, "gray7"=>16, "grey7"=>16, "gray8"=>16, "grey8"=>16, "gray9"=>16, "grey9"=>16, "gray10"=>16, "grey10"=>16, "gray11"=>16, "grey11"=>16, "gray12"=>16, "grey12"=>16, "gray13"=>16, "grey13"=>16, "gray14"=>16, "grey14"=>16, "gray15"=>16, "grey15"=>16, "gray16"=>16, "grey16"=>16, "gray17"=>59, "grey17"=>59, "gray18"=>59, "grey18"=>59, "gray19"=>59, "grey19"=>59, "gray20"=>59, "grey20"=>59, "gray21"=>59, "grey21"=>59, "gray22"=>59, "grey22"=>59, "gray23"=>59, "grey23"=>59, "gray24"=>59, "grey24"=>59, "gray25"=>59, "grey25"=>59, "gray26"=>59, "grey26"=>59, "gray27"=>59, "grey27"=>59, "gray28"=>59, "grey28"=>59, "gray29"=>59, "grey29"=>59, "gray30"=>59, "grey30"=>59, "gray31"=>59, "grey31"=>59, "gray32"=>59, "grey32"=>59, "gray33"=>59, "grey33"=>59, "gray34"=>102, "grey34"=>102, "gray35"=>102, "grey35"=>102, "gray36"=>102, "grey36"=>102, "gray37"=>102, "grey37"=>102, "gray38"=>102, "grey38"=>102, "gray39"=>102, "grey39"=>102, "gray40"=>102, "grey40"=>102, "gray41"=>102, "grey41"=>102, "gray42"=>102, "grey42"=>102, "gray43"=>102, "grey43"=>102, "gray44"=>102, "grey44"=>102, "gray45"=>102, "grey45"=>102, "gray46"=>102, "grey46"=>102, "gray47"=>102, "grey47"=>102, "gray48"=>102, "grey48"=>102, "gray49"=>102, "grey49"=>102, "gray50"=>102, "grey50"=>102, "gray51"=>145, "grey51"=>145, "gray52"=>145, "grey52"=>145, "gray53"=>145, "grey53"=>145, "gray54"=>145, "grey54"=>145, "gray55"=>145, "grey55"=>145, "gray56"=>145, "grey56"=>145, "gray57"=>145, "grey57"=>145, "gray58"=>145, "grey58"=>145, "gray59"=>145, "grey59"=>145, "gray60"=>145, "grey60"=>145, "gray61"=>145, "grey61"=>145, "gray62"=>145, "grey62"=>145, "gray63"=>145, "grey63"=>145, "gray64"=>145, "grey64"=>145, "gray65"=>145, "grey65"=>145, "gray66"=>145, "grey66"=>145, "gray67"=>188, "grey67"=>188, "gray68"=>188, "grey68"=>188, "gray69"=>188, "grey69"=>188, "gray70"=>188, "grey70"=>188, "gray71"=>188, "grey71"=>188, "gray72"=>188, "grey72"=>188, "gray73"=>188, "grey73"=>188, "gray74"=>188, "grey74"=>188, "gray75"=>188, "grey75"=>188, "gray76"=>188, "grey76"=>188, "gray77"=>188, "grey77"=>188, "gray78"=>188, "grey78"=>188, "gray79"=>188, "grey79"=>188, "gray80"=>188, "grey80"=>188, "gray81"=>188, "grey81"=>188, "gray82"=>188, "grey82"=>188, "gray83"=>188, "grey83"=>188, "gray84"=>231, "grey84"=>231, "gray85"=>231, "grey85"=>231, "gray86"=>231, "grey86"=>231, "gray87"=>231, "grey87"=>231, "gray88"=>231, "grey88"=>231, "gray89"=>231, "grey89"=>231, "gray90"=>231, "grey90"=>231, "gray91"=>231, "grey91"=>231, "gray92"=>231, "grey92"=>231, "gray93"=>231, "grey93"=>231, "gray94"=>231, "grey94"=>231, "gray95"=>231, "grey95"=>231, "gray96"=>231, "grey96"=>231, "gray97"=>231, "grey97"=>231, "gray98"=>231, "grey98"=>231, "gray99"=>231, "grey99"=>231, "gray100"=>231, "grey100"=>231, "dark grey"=>145, "DarkGrey"=>145, "dark gray"=>145, "DarkGray"=>145, "dark blue"=>19, "DarkBlue"=>19, "dark cyan"=>37, "DarkCyan"=>37, "dark magenta"=>127, "DarkMagenta"=>127, "dark red"=>124, "DarkRed"=>124, "light green"=>157, "LightGreen"=>157}
|
5
|
+
RGB_COLORS = {"snow"=>[255, 250, 250], "ghost white"=>[248, 248, 255], "GhostWhite"=>[248, 248, 255], "white smoke"=>[245, 245, 245], "WhiteSmoke"=>[245, 245, 245], "gainsboro"=>[220, 220, 220], "floral white"=>[255, 250, 240], "FloralWhite"=>[255, 250, 240], "old lace"=>[253, 245, 230], "OldLace"=>[253, 245, 230], "linen"=>[250, 240, 230], "antique white"=>[250, 235, 215], "AntiqueWhite"=>[250, 235, 215], "papaya whip"=>[255, 239, 213], "PapayaWhip"=>[255, 239, 213], "blanched almond"=>[255, 235, 205], "BlanchedAlmond"=>[255, 235, 205], "bisque"=>[255, 228, 196], "peach puff"=>[255, 218, 185], "PeachPuff"=>[255, 218, 185], "navajo white"=>[255, 222, 173], "NavajoWhite"=>[255, 222, 173], "moccasin"=>[255, 228, 181], "cornsilk"=>[255, 248, 220], "ivory"=>[255, 255, 240], "lemon chiffon"=>[255, 250, 205], "LemonChiffon"=>[255, 250, 205], "seashell"=>[255, 245, 238], "honeydew"=>[240, 255, 240], "mint cream"=>[245, 255, 250], "MintCream"=>[245, 255, 250], "azure"=>[240, 255, 255], "alice blue"=>[240, 248, 255], "AliceBlue"=>[240, 248, 255], "lavender"=>[230, 230, 250], "lavender blush"=>[255, 240, 245], "LavenderBlush"=>[255, 240, 245], "misty rose"=>[255, 228, 225], "MistyRose"=>[255, 228, 225], "white"=>[255, 255, 255], "black"=>[0, 0, 0], "dark slate gray"=>[47, 79, 79], "DarkSlateGray"=>[47, 79, 79], "dark slate grey"=>[47, 79, 79], "DarkSlateGrey"=>[47, 79, 79], "dim gray"=>[105, 105, 105], "DimGray"=>[105, 105, 105], "dim grey"=>[105, 105, 105], "DimGrey"=>[105, 105, 105], "slate gray"=>[112, 128, 144], "SlateGray"=>[112, 128, 144], "slate grey"=>[112, 128, 144], "SlateGrey"=>[112, 128, 144], "light slate gray"=>[119, 136, 153], "LightSlateGray"=>[119, 136, 153], "light slate grey"=>[119, 136, 153], "LightSlateGrey"=>[119, 136, 153], "gray"=>[190, 190, 190], "grey"=>[190, 190, 190], "light grey"=>[211, 211, 211], "LightGrey"=>[211, 211, 211], "light gray"=>[211, 211, 211], "LightGray"=>[211, 211, 211], "midnight blue"=>[25, 25, 112], "MidnightBlue"=>[25, 25, 112], "navy"=>[0, 0, 128], "navy blue"=>[0, 0, 128], "NavyBlue"=>[0, 0, 128], "cornflower blue"=>[100, 149, 237], "CornflowerBlue"=>[100, 149, 237], "dark slate blue"=>[72, 61, 139], "DarkSlateBlue"=>[72, 61, 139], "slate blue"=>[106, 90, 205], "SlateBlue"=>[106, 90, 205], "medium slate blue"=>[123, 104, 238], "MediumSlateBlue"=>[123, 104, 238], "light slate blue"=>[132, 112, 255], "LightSlateBlue"=>[132, 112, 255], "medium blue"=>[0, 0, 205], "MediumBlue"=>[0, 0, 205], "royal blue"=>[65, 105, 225], "RoyalBlue"=>[65, 105, 225], "blue"=>[0, 0, 255], "dodger blue"=>[30, 144, 255], "DodgerBlue"=>[30, 144, 255], "deep sky blue"=>[0, 191, 255], "DeepSkyBlue"=>[0, 191, 255], "sky blue"=>[135, 206, 235], "SkyBlue"=>[135, 206, 235], "light sky blue"=>[135, 206, 250], "LightSkyBlue"=>[135, 206, 250], "steel blue"=>[70, 130, 180], "SteelBlue"=>[70, 130, 180], "light steel blue"=>[176, 196, 222], "LightSteelBlue"=>[176, 196, 222], "light blue"=>[173, 216, 230], "LightBlue"=>[173, 216, 230], "powder blue"=>[176, 224, 230], "PowderBlue"=>[176, 224, 230], "pale turquoise"=>[175, 238, 238], "PaleTurquoise"=>[175, 238, 238], "dark turquoise"=>[0, 206, 209], "DarkTurquoise"=>[0, 206, 209], "medium turquoise"=>[72, 209, 204], "MediumTurquoise"=>[72, 209, 204], "turquoise"=>[64, 224, 208], "cyan"=>[0, 255, 255], "light cyan"=>[224, 255, 255], "LightCyan"=>[224, 255, 255], "cadet blue"=>[95, 158, 160], "CadetBlue"=>[95, 158, 160], "medium aquamarine"=>[102, 205, 170], "MediumAquamarine"=>[102, 205, 170], "aquamarine"=>[127, 255, 212], "dark green"=>[0, 100, 0], "DarkGreen"=>[0, 100, 0], "dark olive green"=>[85, 107, 47], "DarkOliveGreen"=>[85, 107, 47], "dark sea green"=>[143, 188, 143], "DarkSeaGreen"=>[143, 188, 143], "sea green"=>[46, 139, 87], "SeaGreen"=>[46, 139, 87], "medium sea green"=>[60, 179, 113], "MediumSeaGreen"=>[60, 179, 113], "light sea green"=>[32, 178, 170], "LightSeaGreen"=>[32, 178, 170], "pale green"=>[152, 251, 152], "PaleGreen"=>[152, 251, 152], "spring green"=>[0, 255, 127], "SpringGreen"=>[0, 255, 127], "lawn green"=>[124, 252, 0], "LawnGreen"=>[124, 252, 0], "green"=>[0, 255, 0], "chartreuse"=>[127, 255, 0], "medium spring green"=>[0, 250, 154], "MediumSpringGreen"=>[0, 250, 154], "green yellow"=>[173, 255, 47], "GreenYellow"=>[173, 255, 47], "lime green"=>[50, 205, 50], "LimeGreen"=>[50, 205, 50], "yellow green"=>[154, 205, 50], "YellowGreen"=>[154, 205, 50], "forest green"=>[34, 139, 34], "ForestGreen"=>[34, 139, 34], "olive drab"=>[107, 142, 35], "OliveDrab"=>[107, 142, 35], "dark khaki"=>[189, 183, 107], "DarkKhaki"=>[189, 183, 107], "khaki"=>[240, 230, 140], "pale goldenrod"=>[238, 232, 170], "PaleGoldenrod"=>[238, 232, 170], "light goldenrod yellow"=>[250, 250, 210], "LightGoldenrodYellow"=>[250, 250, 210], "light yellow"=>[255, 255, 224], "LightYellow"=>[255, 255, 224], "yellow"=>[255, 255, 0], "gold"=>[255, 215, 0], "light goldenrod"=>[238, 221, 130], "LightGoldenrod"=>[238, 221, 130], "goldenrod"=>[218, 165, 32], "dark goldenrod"=>[184, 134, 11], "DarkGoldenrod"=>[184, 134, 11], "rosy brown"=>[188, 143, 143], "RosyBrown"=>[188, 143, 143], "indian red"=>[205, 92, 92], "IndianRed"=>[205, 92, 92], "saddle brown"=>[139, 69, 19], "SaddleBrown"=>[139, 69, 19], "sienna"=>[160, 82, 45], "peru"=>[205, 133, 63], "burlywood"=>[222, 184, 135], "beige"=>[245, 245, 220], "wheat"=>[245, 222, 179], "sandy brown"=>[244, 164, 96], "SandyBrown"=>[244, 164, 96], "tan"=>[210, 180, 140], "chocolate"=>[210, 105, 30], "firebrick"=>[178, 34, 34], "brown"=>[165, 42, 42], "dark salmon"=>[233, 150, 122], "DarkSalmon"=>[233, 150, 122], "salmon"=>[250, 128, 114], "light salmon"=>[255, 160, 122], "LightSalmon"=>[255, 160, 122], "orange"=>[255, 165, 0], "dark orange"=>[255, 140, 0], "DarkOrange"=>[255, 140, 0], "coral"=>[255, 127, 80], "light coral"=>[240, 128, 128], "LightCoral"=>[240, 128, 128], "tomato"=>[255, 99, 71], "orange red"=>[255, 69, 0], "OrangeRed"=>[255, 69, 0], "red"=>[255, 0, 0], "hot pink"=>[255, 105, 180], "HotPink"=>[255, 105, 180], "deep pink"=>[255, 20, 147], "DeepPink"=>[255, 20, 147], "pink"=>[255, 192, 203], "light pink"=>[255, 182, 193], "LightPink"=>[255, 182, 193], "pale violet red"=>[219, 112, 147], "PaleVioletRed"=>[219, 112, 147], "maroon"=>[176, 48, 96], "medium violet red"=>[199, 21, 133], "MediumVioletRed"=>[199, 21, 133], "violet red"=>[208, 32, 144], "VioletRed"=>[208, 32, 144], "magenta"=>[255, 0, 255], "violet"=>[238, 130, 238], "plum"=>[221, 160, 221], "orchid"=>[218, 112, 214], "medium orchid"=>[186, 85, 211], "MediumOrchid"=>[186, 85, 211], "dark orchid"=>[153, 50, 204], "DarkOrchid"=>[153, 50, 204], "dark violet"=>[148, 0, 211], "DarkViolet"=>[148, 0, 211], "blue violet"=>[138, 43, 226], "BlueViolet"=>[138, 43, 226], "purple"=>[160, 32, 240], "medium purple"=>[147, 112, 219], "MediumPurple"=>[147, 112, 219], "thistle"=>[216, 191, 216], "snow1"=>[255, 250, 250], "snow2"=>[238, 233, 233], "snow3"=>[205, 201, 201], "snow4"=>[139, 137, 137], "seashell1"=>[255, 245, 238], "seashell2"=>[238, 229, 222], "seashell3"=>[205, 197, 191], "seashell4"=>[139, 134, 130], "AntiqueWhite1"=>[255, 239, 219], "AntiqueWhite2"=>[238, 223, 204], "AntiqueWhite3"=>[205, 192, 176], "AntiqueWhite4"=>[139, 131, 120], "bisque1"=>[255, 228, 196], "bisque2"=>[238, 213, 183], "bisque3"=>[205, 183, 158], "bisque4"=>[139, 125, 107], "PeachPuff1"=>[255, 218, 185], "PeachPuff2"=>[238, 203, 173], "PeachPuff3"=>[205, 175, 149], "PeachPuff4"=>[139, 119, 101], "NavajoWhite1"=>[255, 222, 173], "NavajoWhite2"=>[238, 207, 161], "NavajoWhite3"=>[205, 179, 139], "NavajoWhite4"=>[139, 121, 94], "LemonChiffon1"=>[255, 250, 205], "LemonChiffon2"=>[238, 233, 191], "LemonChiffon3"=>[205, 201, 165], "LemonChiffon4"=>[139, 137, 112], "cornsilk1"=>[255, 248, 220], "cornsilk2"=>[238, 232, 205], "cornsilk3"=>[205, 200, 177], "cornsilk4"=>[139, 136, 120], "ivory1"=>[255, 255, 240], "ivory2"=>[238, 238, 224], "ivory3"=>[205, 205, 193], "ivory4"=>[139, 139, 131], "honeydew1"=>[240, 255, 240], "honeydew2"=>[224, 238, 224], "honeydew3"=>[193, 205, 193], "honeydew4"=>[131, 139, 131], "LavenderBlush1"=>[255, 240, 245], "LavenderBlush2"=>[238, 224, 229], "LavenderBlush3"=>[205, 193, 197], "LavenderBlush4"=>[139, 131, 134], "MistyRose1"=>[255, 228, 225], "MistyRose2"=>[238, 213, 210], "MistyRose3"=>[205, 183, 181], "MistyRose4"=>[139, 125, 123], "azure1"=>[240, 255, 255], "azure2"=>[224, 238, 238], "azure3"=>[193, 205, 205], "azure4"=>[131, 139, 139], "SlateBlue1"=>[131, 111, 255], "SlateBlue2"=>[122, 103, 238], "SlateBlue3"=>[105, 89, 205], "SlateBlue4"=>[71, 60, 139], "RoyalBlue1"=>[72, 118, 255], "RoyalBlue2"=>[67, 110, 238], "RoyalBlue3"=>[58, 95, 205], "RoyalBlue4"=>[39, 64, 139], "blue1"=>[0, 0, 255], "blue2"=>[0, 0, 238], "blue3"=>[0, 0, 205], "blue4"=>[0, 0, 139], "DodgerBlue1"=>[30, 144, 255], "DodgerBlue2"=>[28, 134, 238], "DodgerBlue3"=>[24, 116, 205], "DodgerBlue4"=>[16, 78, 139], "SteelBlue1"=>[99, 184, 255], "SteelBlue2"=>[92, 172, 238], "SteelBlue3"=>[79, 148, 205], "SteelBlue4"=>[54, 100, 139], "DeepSkyBlue1"=>[0, 191, 255], "DeepSkyBlue2"=>[0, 178, 238], "DeepSkyBlue3"=>[0, 154, 205], "DeepSkyBlue4"=>[0, 104, 139], "SkyBlue1"=>[135, 206, 255], "SkyBlue2"=>[126, 192, 238], "SkyBlue3"=>[108, 166, 205], "SkyBlue4"=>[74, 112, 139], "LightSkyBlue1"=>[176, 226, 255], "LightSkyBlue2"=>[164, 211, 238], "LightSkyBlue3"=>[141, 182, 205], "LightSkyBlue4"=>[96, 123, 139], "SlateGray1"=>[198, 226, 255], "SlateGray2"=>[185, 211, 238], "SlateGray3"=>[159, 182, 205], "SlateGray4"=>[108, 123, 139], "LightSteelBlue1"=>[202, 225, 255], "LightSteelBlue2"=>[188, 210, 238], "LightSteelBlue3"=>[162, 181, 205], "LightSteelBlue4"=>[110, 123, 139], "LightBlue1"=>[191, 239, 255], "LightBlue2"=>[178, 223, 238], "LightBlue3"=>[154, 192, 205], "LightBlue4"=>[104, 131, 139], "LightCyan1"=>[224, 255, 255], "LightCyan2"=>[209, 238, 238], "LightCyan3"=>[180, 205, 205], "LightCyan4"=>[122, 139, 139], "PaleTurquoise1"=>[187, 255, 255], "PaleTurquoise2"=>[174, 238, 238], "PaleTurquoise3"=>[150, 205, 205], "PaleTurquoise4"=>[102, 139, 139], "CadetBlue1"=>[152, 245, 255], "CadetBlue2"=>[142, 229, 238], "CadetBlue3"=>[122, 197, 205], "CadetBlue4"=>[83, 134, 139], "turquoise1"=>[0, 245, 255], "turquoise2"=>[0, 229, 238], "turquoise3"=>[0, 197, 205], "turquoise4"=>[0, 134, 139], "cyan1"=>[0, 255, 255], "cyan2"=>[0, 238, 238], "cyan3"=>[0, 205, 205], "cyan4"=>[0, 139, 139], "DarkSlateGray1"=>[151, 255, 255], "DarkSlateGray2"=>[141, 238, 238], "DarkSlateGray3"=>[121, 205, 205], "DarkSlateGray4"=>[82, 139, 139], "aquamarine1"=>[127, 255, 212], "aquamarine2"=>[118, 238, 198], "aquamarine3"=>[102, 205, 170], "aquamarine4"=>[69, 139, 116], "DarkSeaGreen1"=>[193, 255, 193], "DarkSeaGreen2"=>[180, 238, 180], "DarkSeaGreen3"=>[155, 205, 155], "DarkSeaGreen4"=>[105, 139, 105], "SeaGreen1"=>[84, 255, 159], "SeaGreen2"=>[78, 238, 148], "SeaGreen3"=>[67, 205, 128], "SeaGreen4"=>[46, 139, 87], "PaleGreen1"=>[154, 255, 154], "PaleGreen2"=>[144, 238, 144], "PaleGreen3"=>[124, 205, 124], "PaleGreen4"=>[84, 139, 84], "SpringGreen1"=>[0, 255, 127], "SpringGreen2"=>[0, 238, 118], "SpringGreen3"=>[0, 205, 102], "SpringGreen4"=>[0, 139, 69], "green1"=>[0, 255, 0], "green2"=>[0, 238, 0], "green3"=>[0, 205, 0], "green4"=>[0, 139, 0], "chartreuse1"=>[127, 255, 0], "chartreuse2"=>[118, 238, 0], "chartreuse3"=>[102, 205, 0], "chartreuse4"=>[69, 139, 0], "OliveDrab1"=>[192, 255, 62], "OliveDrab2"=>[179, 238, 58], "OliveDrab3"=>[154, 205, 50], "OliveDrab4"=>[105, 139, 34], "DarkOliveGreen1"=>[202, 255, 112], "DarkOliveGreen2"=>[188, 238, 104], "DarkOliveGreen3"=>[162, 205, 90], "DarkOliveGreen4"=>[110, 139, 61], "khaki1"=>[255, 246, 143], "khaki2"=>[238, 230, 133], "khaki3"=>[205, 198, 115], "khaki4"=>[139, 134, 78], "LightGoldenrod1"=>[255, 236, 139], "LightGoldenrod2"=>[238, 220, 130], "LightGoldenrod3"=>[205, 190, 112], "LightGoldenrod4"=>[139, 129, 76], "LightYellow1"=>[255, 255, 224], "LightYellow2"=>[238, 238, 209], "LightYellow3"=>[205, 205, 180], "LightYellow4"=>[139, 139, 122], "yellow1"=>[255, 255, 0], "yellow2"=>[238, 238, 0], "yellow3"=>[205, 205, 0], "yellow4"=>[139, 139, 0], "gold1"=>[255, 215, 0], "gold2"=>[238, 201, 0], "gold3"=>[205, 173, 0], "gold4"=>[139, 117, 0], "goldenrod1"=>[255, 193, 37], "goldenrod2"=>[238, 180, 34], "goldenrod3"=>[205, 155, 29], "goldenrod4"=>[139, 105, 20], "DarkGoldenrod1"=>[255, 185, 15], "DarkGoldenrod2"=>[238, 173, 14], "DarkGoldenrod3"=>[205, 149, 12], "DarkGoldenrod4"=>[139, 101, 8], "RosyBrown1"=>[255, 193, 193], "RosyBrown2"=>[238, 180, 180], "RosyBrown3"=>[205, 155, 155], "RosyBrown4"=>[139, 105, 105], "IndianRed1"=>[255, 106, 106], "IndianRed2"=>[238, 99, 99], "IndianRed3"=>[205, 85, 85], "IndianRed4"=>[139, 58, 58], "sienna1"=>[255, 130, 71], "sienna2"=>[238, 121, 66], "sienna3"=>[205, 104, 57], "sienna4"=>[139, 71, 38], "burlywood1"=>[255, 211, 155], "burlywood2"=>[238, 197, 145], "burlywood3"=>[205, 170, 125], "burlywood4"=>[139, 115, 85], "wheat1"=>[255, 231, 186], "wheat2"=>[238, 216, 174], "wheat3"=>[205, 186, 150], "wheat4"=>[139, 126, 102], "tan1"=>[255, 165, 79], "tan2"=>[238, 154, 73], "tan3"=>[205, 133, 63], "tan4"=>[139, 90, 43], "chocolate1"=>[255, 127, 36], "chocolate2"=>[238, 118, 33], "chocolate3"=>[205, 102, 29], "chocolate4"=>[139, 69, 19], "firebrick1"=>[255, 48, 48], "firebrick2"=>[238, 44, 44], "firebrick3"=>[205, 38, 38], "firebrick4"=>[139, 26, 26], "brown1"=>[255, 64, 64], "brown2"=>[238, 59, 59], "brown3"=>[205, 51, 51], "brown4"=>[139, 35, 35], "salmon1"=>[255, 140, 105], "salmon2"=>[238, 130, 98], "salmon3"=>[205, 112, 84], "salmon4"=>[139, 76, 57], "LightSalmon1"=>[255, 160, 122], "LightSalmon2"=>[238, 149, 114], "LightSalmon3"=>[205, 129, 98], "LightSalmon4"=>[139, 87, 66], "orange1"=>[255, 165, 0], "orange2"=>[238, 154, 0], "orange3"=>[205, 133, 0], "orange4"=>[139, 90, 0], "DarkOrange1"=>[255, 127, 0], "DarkOrange2"=>[238, 118, 0], "DarkOrange3"=>[205, 102, 0], "DarkOrange4"=>[139, 69, 0], "coral1"=>[255, 114, 86], "coral2"=>[238, 106, 80], "coral3"=>[205, 91, 69], "coral4"=>[139, 62, 47], "tomato1"=>[255, 99, 71], "tomato2"=>[238, 92, 66], "tomato3"=>[205, 79, 57], "tomato4"=>[139, 54, 38], "OrangeRed1"=>[255, 69, 0], "OrangeRed2"=>[238, 64, 0], "OrangeRed3"=>[205, 55, 0], "OrangeRed4"=>[139, 37, 0], "red1"=>[255, 0, 0], "red2"=>[238, 0, 0], "red3"=>[205, 0, 0], "red4"=>[139, 0, 0], "DebianRed"=>[215, 7, 81], "DeepPink1"=>[255, 20, 147], "DeepPink2"=>[238, 18, 137], "DeepPink3"=>[205, 16, 118], "DeepPink4"=>[139, 10, 80], "HotPink1"=>[255, 110, 180], "HotPink2"=>[238, 106, 167], "HotPink3"=>[205, 96, 144], "HotPink4"=>[139, 58, 98], "pink1"=>[255, 181, 197], "pink2"=>[238, 169, 184], "pink3"=>[205, 145, 158], "pink4"=>[139, 99, 108], "LightPink1"=>[255, 174, 185], "LightPink2"=>[238, 162, 173], "LightPink3"=>[205, 140, 149], "LightPink4"=>[139, 95, 101], "PaleVioletRed1"=>[255, 130, 171], "PaleVioletRed2"=>[238, 121, 159], "PaleVioletRed3"=>[205, 104, 137], "PaleVioletRed4"=>[139, 71, 93], "maroon1"=>[255, 52, 179], "maroon2"=>[238, 48, 167], "maroon3"=>[205, 41, 144], "maroon4"=>[139, 28, 98], "VioletRed1"=>[255, 62, 150], "VioletRed2"=>[238, 58, 140], "VioletRed3"=>[205, 50, 120], "VioletRed4"=>[139, 34, 82], "magenta1"=>[255, 0, 255], "magenta2"=>[238, 0, 238], "magenta3"=>[205, 0, 205], "magenta4"=>[139, 0, 139], "orchid1"=>[255, 131, 250], "orchid2"=>[238, 122, 233], "orchid3"=>[205, 105, 201], "orchid4"=>[139, 71, 137], "plum1"=>[255, 187, 255], "plum2"=>[238, 174, 238], "plum3"=>[205, 150, 205], "plum4"=>[139, 102, 139], "MediumOrchid1"=>[224, 102, 255], "MediumOrchid2"=>[209, 95, 238], "MediumOrchid3"=>[180, 82, 205], "MediumOrchid4"=>[122, 55, 139], "DarkOrchid1"=>[191, 62, 255], "DarkOrchid2"=>[178, 58, 238], "DarkOrchid3"=>[154, 50, 205], "DarkOrchid4"=>[104, 34, 139], "purple1"=>[155, 48, 255], "purple2"=>[145, 44, 238], "purple3"=>[125, 38, 205], "purple4"=>[85, 26, 139], "MediumPurple1"=>[171, 130, 255], "MediumPurple2"=>[159, 121, 238], "MediumPurple3"=>[137, 104, 205], "MediumPurple4"=>[93, 71, 139], "thistle1"=>[255, 225, 255], "thistle2"=>[238, 210, 238], "thistle3"=>[205, 181, 205], "thistle4"=>[139, 123, 139], "gray0"=>[0, 0, 0], "grey0"=>[0, 0, 0], "gray1"=>[3, 3, 3], "grey1"=>[3, 3, 3], "gray2"=>[5, 5, 5], "grey2"=>[5, 5, 5], "gray3"=>[8, 8, 8], "grey3"=>[8, 8, 8], "gray4"=>[10, 10, 10], "grey4"=>[10, 10, 10], "gray5"=>[13, 13, 13], "grey5"=>[13, 13, 13], "gray6"=>[15, 15, 15], "grey6"=>[15, 15, 15], "gray7"=>[18, 18, 18], "grey7"=>[18, 18, 18], "gray8"=>[20, 20, 20], "grey8"=>[20, 20, 20], "gray9"=>[23, 23, 23], "grey9"=>[23, 23, 23], "gray10"=>[26, 26, 26], "grey10"=>[26, 26, 26], "gray11"=>[28, 28, 28], "grey11"=>[28, 28, 28], "gray12"=>[31, 31, 31], "grey12"=>[31, 31, 31], "gray13"=>[33, 33, 33], "grey13"=>[33, 33, 33], "gray14"=>[36, 36, 36], "grey14"=>[36, 36, 36], "gray15"=>[38, 38, 38], "grey15"=>[38, 38, 38], "gray16"=>[41, 41, 41], "grey16"=>[41, 41, 41], "gray17"=>[43, 43, 43], "grey17"=>[43, 43, 43], "gray18"=>[46, 46, 46], "grey18"=>[46, 46, 46], "gray19"=>[48, 48, 48], "grey19"=>[48, 48, 48], "gray20"=>[51, 51, 51], "grey20"=>[51, 51, 51], "gray21"=>[54, 54, 54], "grey21"=>[54, 54, 54], "gray22"=>[56, 56, 56], "grey22"=>[56, 56, 56], "gray23"=>[59, 59, 59], "grey23"=>[59, 59, 59], "gray24"=>[61, 61, 61], "grey24"=>[61, 61, 61], "gray25"=>[64, 64, 64], "grey25"=>[64, 64, 64], "gray26"=>[66, 66, 66], "grey26"=>[66, 66, 66], "gray27"=>[69, 69, 69], "grey27"=>[69, 69, 69], "gray28"=>[71, 71, 71], "grey28"=>[71, 71, 71], "gray29"=>[74, 74, 74], "grey29"=>[74, 74, 74], "gray30"=>[77, 77, 77], "grey30"=>[77, 77, 77], "gray31"=>[79, 79, 79], "grey31"=>[79, 79, 79], "gray32"=>[82, 82, 82], "grey32"=>[82, 82, 82], "gray33"=>[84, 84, 84], "grey33"=>[84, 84, 84], "gray34"=>[87, 87, 87], "grey34"=>[87, 87, 87], "gray35"=>[89, 89, 89], "grey35"=>[89, 89, 89], "gray36"=>[92, 92, 92], "grey36"=>[92, 92, 92], "gray37"=>[94, 94, 94], "grey37"=>[94, 94, 94], "gray38"=>[97, 97, 97], "grey38"=>[97, 97, 97], "gray39"=>[99, 99, 99], "grey39"=>[99, 99, 99], "gray40"=>[102, 102, 102], "grey40"=>[102, 102, 102], "gray41"=>[105, 105, 105], "grey41"=>[105, 105, 105], "gray42"=>[107, 107, 107], "grey42"=>[107, 107, 107], "gray43"=>[110, 110, 110], "grey43"=>[110, 110, 110], "gray44"=>[112, 112, 112], "grey44"=>[112, 112, 112], "gray45"=>[115, 115, 115], "grey45"=>[115, 115, 115], "gray46"=>[117, 117, 117], "grey46"=>[117, 117, 117], "gray47"=>[120, 120, 120], "grey47"=>[120, 120, 120], "gray48"=>[122, 122, 122], "grey48"=>[122, 122, 122], "gray49"=>[125, 125, 125], "grey49"=>[125, 125, 125], "gray50"=>[127, 127, 127], "grey50"=>[127, 127, 127], "gray51"=>[130, 130, 130], "grey51"=>[130, 130, 130], "gray52"=>[133, 133, 133], "grey52"=>[133, 133, 133], "gray53"=>[135, 135, 135], "grey53"=>[135, 135, 135], "gray54"=>[138, 138, 138], "grey54"=>[138, 138, 138], "gray55"=>[140, 140, 140], "grey55"=>[140, 140, 140], "gray56"=>[143, 143, 143], "grey56"=>[143, 143, 143], "gray57"=>[145, 145, 145], "grey57"=>[145, 145, 145], "gray58"=>[148, 148, 148], "grey58"=>[148, 148, 148], "gray59"=>[150, 150, 150], "grey59"=>[150, 150, 150], "gray60"=>[153, 153, 153], "grey60"=>[153, 153, 153], "gray61"=>[156, 156, 156], "grey61"=>[156, 156, 156], "gray62"=>[158, 158, 158], "grey62"=>[158, 158, 158], "gray63"=>[161, 161, 161], "grey63"=>[161, 161, 161], "gray64"=>[163, 163, 163], "grey64"=>[163, 163, 163], "gray65"=>[166, 166, 166], "grey65"=>[166, 166, 166], "gray66"=>[168, 168, 168], "grey66"=>[168, 168, 168], "gray67"=>[171, 171, 171], "grey67"=>[171, 171, 171], "gray68"=>[173, 173, 173], "grey68"=>[173, 173, 173], "gray69"=>[176, 176, 176], "grey69"=>[176, 176, 176], "gray70"=>[179, 179, 179], "grey70"=>[179, 179, 179], "gray71"=>[181, 181, 181], "grey71"=>[181, 181, 181], "gray72"=>[184, 184, 184], "grey72"=>[184, 184, 184], "gray73"=>[186, 186, 186], "grey73"=>[186, 186, 186], "gray74"=>[189, 189, 189], "grey74"=>[189, 189, 189], "gray75"=>[191, 191, 191], "grey75"=>[191, 191, 191], "gray76"=>[194, 194, 194], "grey76"=>[194, 194, 194], "gray77"=>[196, 196, 196], "grey77"=>[196, 196, 196], "gray78"=>[199, 199, 199], "grey78"=>[199, 199, 199], "gray79"=>[201, 201, 201], "grey79"=>[201, 201, 201], "gray80"=>[204, 204, 204], "grey80"=>[204, 204, 204], "gray81"=>[207, 207, 207], "grey81"=>[207, 207, 207], "gray82"=>[209, 209, 209], "grey82"=>[209, 209, 209], "gray83"=>[212, 212, 212], "grey83"=>[212, 212, 212], "gray84"=>[214, 214, 214], "grey84"=>[214, 214, 214], "gray85"=>[217, 217, 217], "grey85"=>[217, 217, 217], "gray86"=>[219, 219, 219], "grey86"=>[219, 219, 219], "gray87"=>[222, 222, 222], "grey87"=>[222, 222, 222], "gray88"=>[224, 224, 224], "grey88"=>[224, 224, 224], "gray89"=>[227, 227, 227], "grey89"=>[227, 227, 227], "gray90"=>[229, 229, 229], "grey90"=>[229, 229, 229], "gray91"=>[232, 232, 232], "grey91"=>[232, 232, 232], "gray92"=>[235, 235, 235], "grey92"=>[235, 235, 235], "gray93"=>[237, 237, 237], "grey93"=>[237, 237, 237], "gray94"=>[240, 240, 240], "grey94"=>[240, 240, 240], "gray95"=>[242, 242, 242], "grey95"=>[242, 242, 242], "gray96"=>[245, 245, 245], "grey96"=>[245, 245, 245], "gray97"=>[247, 247, 247], "grey97"=>[247, 247, 247], "gray98"=>[250, 250, 250], "grey98"=>[250, 250, 250], "gray99"=>[252, 252, 252], "grey99"=>[252, 252, 252], "gray100"=>[255, 255, 255], "grey100"=>[255, 255, 255], "dark grey"=>[169, 169, 169], "DarkGrey"=>[169, 169, 169], "dark gray"=>[169, 169, 169], "DarkGray"=>[169, 169, 169], "dark blue"=>[0, 0, 139], "DarkBlue"=>[0, 0, 139], "dark cyan"=>[0, 139, 139], "DarkCyan"=>[0, 139, 139], "dark magenta"=>[139, 0, 139], "DarkMagenta"=>[139, 0, 139], "dark red"=>[139, 0, 0], "DarkRed"=>[139, 0, 0], "light green"=>[144, 238, 144], "LightGreen"=>[144, 238, 144]}
|
6
6
|
end
|
7
7
|
|
8
8
|
# J-_-L
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Paint
|
2
|
+
# A list of color names for standard ansi colors, needed for 16/8 color fallback mode
|
3
|
+
# See http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
|
4
|
+
RGB_COLORS_ANSI = {
|
5
|
+
:black => [0,0,0],
|
6
|
+
:red => [205,0,0],
|
7
|
+
:green => [0,205,0],
|
8
|
+
:yellow => [205,205,0],
|
9
|
+
:blue => [0,0,238],
|
10
|
+
:magenta => [205,0,205],
|
11
|
+
:cyan => [0,205,205],
|
12
|
+
:white => [229,229,229],
|
13
|
+
}
|
14
|
+
|
15
|
+
# A list of color names for standard bright ansi colors, needed for 16 color fallback mode
|
16
|
+
# See http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
|
17
|
+
RGB_COLORS_ANSI_BRIGHT = {
|
18
|
+
:black => [127,127,127],
|
19
|
+
:red => [255,0,0],
|
20
|
+
:green => [0,255,0],
|
21
|
+
:yellow => [255,255,0],
|
22
|
+
:blue => [92,92,255],
|
23
|
+
:magenta => [255,0,255],
|
24
|
+
:cyan => [0,255,255],
|
25
|
+
:white => [255,255,255],
|
26
|
+
}
|
27
|
+
end
|
data/lib/paint/util.rb
CHANGED
@@ -8,8 +8,8 @@ module Paint
|
|
8
8
|
|
9
9
|
# Tries to print all 256 colors
|
10
10
|
def rainbow
|
11
|
-
(0
|
12
|
-
print Paint[' ',48,5,color] # print empty bg color field
|
11
|
+
(0...256).each{ |color|
|
12
|
+
print Paint[' ', 48, 5, color] # print empty bg color field
|
13
13
|
}
|
14
14
|
puts
|
15
15
|
end
|
@@ -22,13 +22,40 @@ module Paint
|
|
22
22
|
File.open(path, 'r') do |file|
|
23
23
|
file.each_line{ |line|
|
24
24
|
line.chomp =~ /(\d+)\s+(\d+)\s+(\d+)\s+(.*)$/
|
25
|
-
Paint::RGB_COLORS[$4] =
|
25
|
+
Paint::RGB_COLORS[$4] = [$1.to_i, $2.to_i, $3.to_i] if $4
|
26
26
|
}
|
27
27
|
end
|
28
28
|
else
|
29
29
|
raise ArgumentError, "Not a valid file: #{path}"
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
# Determine supported colors
|
34
|
+
# This is just a naive approach, based on some things I could test
|
35
|
+
# Please open issues if it does not work correctly for you
|
36
|
+
def detect_mode
|
37
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ # windows
|
38
|
+
if ENV['ANSICON']
|
39
|
+
16
|
40
|
+
else
|
41
|
+
false
|
42
|
+
end
|
43
|
+
else
|
44
|
+
# case ENV['COLORTERM']
|
45
|
+
# when 'gnome-terminal'
|
46
|
+
# 256
|
47
|
+
# else
|
48
|
+
case ENV['TERM']
|
49
|
+
when /-256color$/, 'xterm'
|
50
|
+
256
|
51
|
+
when /-color$/, 'rxvt'
|
52
|
+
16
|
53
|
+
else # optimistic default
|
54
|
+
256
|
55
|
+
end
|
56
|
+
# end
|
57
|
+
end
|
58
|
+
end
|
32
59
|
end
|
33
60
|
end
|
34
61
|
|
data/lib/paint/version.rb
CHANGED
data/paint.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors = ["Jan Lelis"]
|
9
9
|
s.email = "mail@janlelis.de"
|
10
10
|
s.homepage = "https://github.com/janlelis/paint"
|
11
|
-
s.summary = "
|
12
|
-
s.description =
|
11
|
+
s.summary = "Terminal painter!"
|
12
|
+
s.description = "Terminal painter / no string extensions / 256 color support / effect support / define custom shortcuts / basic usage: Paint['string', :red, :bright]"
|
13
13
|
s.required_ruby_version = '>= 1.8.7'
|
14
14
|
s.files = Dir.glob(%w[{lib,test,spec}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c}]) + %w{Rakefile paint.gemspec .gemtest}
|
15
15
|
s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
|
data/spec/paint_methods_spec.rb
CHANGED
@@ -13,18 +13,26 @@ describe 'Paint.simple' do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe 'Paint.rgb' do
|
16
|
+
before do
|
17
|
+
Paint.mode = 256
|
18
|
+
end
|
19
|
+
|
16
20
|
it 'returns ansi code sequence for one of 256 colors' do
|
17
|
-
Paint.rgb(1,2,3).should == '38;5;
|
21
|
+
Paint.rgb(1,2,3).should == '38;5;232'
|
18
22
|
end
|
19
23
|
|
20
24
|
it 'returns background ansi code sequence for one of 256 colors if last parameter is true' do
|
21
|
-
Paint.rgb(1, 2, 3, true).should == '48;5;
|
25
|
+
Paint.rgb(1, 2, 3, true).should == '48;5;232'
|
22
26
|
end
|
23
27
|
end
|
24
28
|
|
25
29
|
describe 'Paint.hex' do
|
30
|
+
before do
|
31
|
+
Paint.mode = 256
|
32
|
+
end
|
33
|
+
|
26
34
|
it 'returns ansi code sequence for one of 256 colors' do
|
27
|
-
Paint.hex("#fff").should == "38;5;
|
35
|
+
Paint.hex("#fff").should == "38;5;255"
|
28
36
|
end
|
29
37
|
|
30
38
|
it 'returns background ansi code sequence for one of 256 colors if second parameter is true' do
|
@@ -32,13 +40,17 @@ describe 'Paint.hex' do
|
|
32
40
|
end
|
33
41
|
end
|
34
42
|
|
35
|
-
describe 'Paint.
|
43
|
+
describe 'Paint.rbb_name' do
|
44
|
+
before do
|
45
|
+
Paint.mode = 256
|
46
|
+
end
|
47
|
+
|
36
48
|
it 'returns ansi code sequence for one of 256 colors' do
|
37
|
-
Paint.
|
49
|
+
Paint.rgb_name("gold").should == "38;5;226"
|
38
50
|
end
|
39
51
|
|
40
52
|
it 'returns background ansi code sequence for one of 256 colors if second parameter is true' do
|
41
|
-
Paint.
|
53
|
+
Paint.rgb_name("gold", true).should == "48;5;226"
|
42
54
|
end
|
43
55
|
end
|
44
56
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
describe 'Paint.mode' do
|
2
|
+
it "works normally if mode is 256 or another unknown true value" do
|
3
|
+
Paint.mode = 256
|
4
|
+
Paint['J-_-L', 'gold'].should == "\e[38;5;226mJ-_-L\e[0m"
|
5
|
+
end
|
6
|
+
|
7
|
+
it "doesn't colorize anything if mode is false" do
|
8
|
+
Paint.mode = false
|
9
|
+
Paint['J-_-L', 'gold'].should == "J-_-L"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "only uses the 8 ansi colors if mode is 8" do
|
13
|
+
Paint.mode = 8
|
14
|
+
Paint['J-_-L', 'gold'].should == "\e[33mJ-_-L\e[0m"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "only uses the 8 ansi colors with bright effect if mode is 16" do
|
18
|
+
Paint.mode = 16
|
19
|
+
Paint['J-_-L', 'gold'].should == "\e[33;1mJ-_-L\e[0m"
|
20
|
+
end
|
21
|
+
end
|
data/spec/paint_spec.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
describe 'Paint.[]' do
|
2
|
+
before do
|
3
|
+
Paint.mode = 256
|
4
|
+
end
|
5
|
+
|
2
6
|
context '(with no options)' do
|
3
7
|
it 'colorizes using a random ansi foreground color' do
|
4
8
|
Paint['J-_-L'].should =~ /\e\[3\dmJ-_-L\e\[0m/
|
@@ -23,11 +27,11 @@ describe 'Paint.[]' do
|
|
23
27
|
end
|
24
28
|
|
25
29
|
it 'understands a hex string (with #, 3 digits) as rgb color definition and use it as foreground color' do
|
26
|
-
Paint['J-_-L', "#fff"].should == "\e[38;5;
|
30
|
+
Paint['J-_-L', "#fff"].should == "\e[38;5;255mJ-_-L\e[0m"
|
27
31
|
end
|
28
32
|
|
29
33
|
it 'understands a hex string (no #, 3 digits) as rgb color definition and use it as foreground color' do
|
30
|
-
Paint['J-_-L', "fff"].should == "\e[38;5;
|
34
|
+
Paint['J-_-L', "fff"].should == "\e[38;5;255mJ-_-L\e[0m"
|
31
35
|
end
|
32
36
|
|
33
37
|
it 'understands a non-hex string as rgb color name (rgb.txt) and use it as foreground color' do
|
@@ -41,7 +45,7 @@ describe 'Paint.[]' do
|
|
41
45
|
end
|
42
46
|
|
43
47
|
it 'interprets the first color as foreground color and the second one as background color (rgb)' do
|
44
|
-
Paint['J-_-L', '#424242', [42, 142, 242]].should == "\e[38;5;
|
48
|
+
Paint['J-_-L', '#424242', [42, 142, 242]].should == "\e[38;5;238;48;5;39mJ-_-L\e[0m"
|
45
49
|
end
|
46
50
|
|
47
51
|
it 'sets only a background color, if first color is nil' do
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: paint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.8.
|
5
|
+
version: 0.8.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jan Lelis
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-07 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
version: "0"
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
|
-
description:
|
48
|
+
description: "Terminal painter / no string extensions / 256 color support / effect support / define custom shortcuts / basic usage: Paint['string', :red, :bright]"
|
49
49
|
email: mail@janlelis.de
|
50
50
|
executables: []
|
51
51
|
|
@@ -59,8 +59,10 @@ files:
|
|
59
59
|
- lib/paint/util.rb
|
60
60
|
- lib/paint/shortcuts.rb
|
61
61
|
- lib/paint/pa.rb
|
62
|
+
- lib/paint/rgb_colors_ansi.rb
|
62
63
|
- lib/paint/version.rb
|
63
64
|
- lib/paint.rb
|
65
|
+
- spec/paint_mode_spec.rb
|
64
66
|
- spec/spec_helper.rb
|
65
67
|
- spec/paint_methods_spec.rb
|
66
68
|
- spec/paint_spec.rb
|
@@ -97,6 +99,6 @@ rubyforge_project:
|
|
97
99
|
rubygems_version: 1.8.1
|
98
100
|
signing_key:
|
99
101
|
specification_version: 3
|
100
|
-
summary:
|
102
|
+
summary: Terminal painter!
|
101
103
|
test_files: []
|
102
104
|
|