Module: Paint
- Defined in:
- lib/paint.rb,
lib/paint/util.rb,
lib/paint/version.rb,
lib/paint/rgb_colors.rb,
lib/paint/rgb_colors_ansi.rb
Constant Summary collapse
- NOTHING =
"\033[0m".freeze
- ANSI_COLORS =
Basic colors (often, the color differs when using the bright effect) Final color will be 30 + value for foreground and 40 + value for background
{ :black => 0, :red => 1, :green => 2, :yellow => 3, :blue => 4, :magenta => 5, :cyan => 6, :white => 7, :default => 9, }.freeze
- ANSI_EFFECTS =
Terminal effects - most of them are not supported ;) See en.wikipedia.org/wiki/ANSI_escape_code
{ :reset => 0, :nothing => 0, # usually supported :bright => 1, :bold => 1, # usually supported :faint => 2, :italic => 3, :underline => 4, # usually supported :blink => 5, :slow_blink => 5, :rapid_blink => 6, :inverse => 7, :swap => 7, # usually supported :conceal => 8, :hide => 9, :default_font => 10, :font0 => 10, :font1 => 11, :font2 => 12, :font3 => 13, :font4 => 14, :font5 => 15, :font6 => 16, :font7 => 17, :font8 => 18, :font9 => 19, :fraktur => 20, :bright_off => 21, :bold_off => 21, :double_underline => 21, :clean => 22, :italic_off => 23, :fraktur_off => 23, :underline_off => 24, :blink_off => 25, :inverse_off => 26, :positive => 26, :conceal_off => 27, :show => 27, :reveal => 27, :crossed_off => 29, :crossed_out_off => 29, :frame => 51, :encircle => 52, :overline => 53, :frame_off => 54, :encircle_off => 54, :overline_off => 55, }.freeze
- ANSI_COLORS_FOREGROUND =
{ :black => 30, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35, :cyan => 36, :white => 37, :default => 39, }.freeze
- ANSI_COLORS_BACKGROUND =
{ :black => 40, :red => 41, :green => 42, :yellow => 43, :blue => 44, :magenta => 45, :cyan => 46, :white => 47, :default => 49, }.freeze
- VERSION =
'1.0.0'
- RGB_COLORS =
A list of color names, based on X11’s rgb.txt Can be used with Paint.[] by passing a string containing the color name See Paint::Util::update_rgb_colors for generating
{"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]}
- RGB_COLORS_ANSI =
A list of color names for standard ansi colors, needed for 16/8 color fallback mode See en.wikipedia.org/wiki/ANSI_escape_code#Colors
{ :black => [0,0,0], :red => [205,0,0], :green => [0,205,0], :yellow => [205,205,0], :blue => [0,0,238], :magenta => [205,0,205], :cyan => [0,205,205], :white => [229,229,229], }.each { |k, v| v.freeze }.freeze
- RGB_COLORS_ANSI_BRIGHT =
A list of color names for standard bright ansi colors, needed for 16 color fallback mode See en.wikipedia.org/wiki/ANSI_escape_code#Colors
{ :black => [127,127,127], :red => [255,0,0], :green => [0,255,0], :yellow => [255,255,0], :blue => [92,92,255], :magenta => [255,0,255], :cyan => [0,255,255], :white => [255,255,255], }.each { |k, v| v.freeze }.freeze
Class Attribute Summary collapse
-
.mode ⇒ Object
This variable influences the color code generation Currently supported values: * 256 - 256 colors * 16 - only ansi colors and bright effect * 8 - only ansi colors * 0 - no colorization!.
Class Method Summary collapse
-
.[](string, *options) ⇒ Object
Takes a string and color options and colorizes the string See README.rdoc for details.
-
.color(*options) ⇒ Object
Transforms options into the desired color.
-
.detect_mode ⇒ Object
Determine supported colors.
-
.effect(effect_name) ⇒ Object
Creates the specified effect by looking it up in Paint::ANSI_EFFECTS.
-
.hex(string, background = false) ⇒ Object
Creates 256-compatible color from a html-like color string.
-
.rainbow ⇒ Object
Tries to print all 256 colors.
-
.random(background = false) ⇒ Object
Creates a random ansi color.
-
.rgb(red, green, blue, background = false) ⇒ Object
Creates a 256-compatible color from rgb values.
-
.rgb_name(color_name, background = false) ⇒ Object
Creates a 256-color from a name found in Paint::RGB_COLORS (based on rgb.txt).
-
.simple(color_name, background = false) ⇒ Object
Creates simple ansi color by looking it up on Paint::ANSI_COLORS.
-
.unpaint(string) ⇒ Object
Removes any color and effect strings.
-
.update_rgb_colors(path = '/etc/X11/rgb.txt') ⇒ Object
Updates color names.
-
.wrap(*ansi_codes) ⇒ Object
Adds ansi sequence.
Class Attribute Details
.mode ⇒ Object
This variable influences the color code generation Currently supported values:
-
256 - 256 colors
-
16 - only ansi colors and bright effect
-
8 - only ansi colors
-
0 - no colorization!
153 154 155 |
# File 'lib/paint.rb', line 153 def mode @mode end |
Class Method Details
.[](string, *options) ⇒ Object
Takes a string and color options and colorizes the string See README.rdoc for details
83 84 85 86 87 |
# File 'lib/paint.rb', line 83 def [](string, *) return string.to_s if @mode.zero? || .empty? = .first if .size == 1 && !.first.respond_to?(:to_ary) @cache[] + string.to_s + NOTHING end |
.color(*options) ⇒ Object
Transforms options into the desired color. Used by @cache
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/paint.rb', line 90 def color(*) return '' if @mode.zero? || .empty? mix = [] color_seen = false colors = ANSI_COLORS_FOREGROUND .each{ |option| case option when Symbol if color = colors[option] mix << color color_seen = :set elsif ANSI_EFFECTS.key?(option) mix << effect(option) else raise ArgumentError, "Unknown color or effect: #{ option }" end when Array if option.size == 3 && option.all?{ |n| n.is_a? Numeric } mix << rgb(*[*option, color_seen]) color_seen = :set else raise ArgumentError, "Array argument must contain 3 numerals" end when ::String if option =~ /^#?(?:[0-9a-f]{3}){1,2}$/i mix << hex(option, color_seen) color_seen = :set else mix << rgb_name(option, color_seen) color_seen = :set end when Numeric integer = option.to_i color_seen = :set if (30..49).include?(integer) mix << integer when nil color_seen = :set else raise ArgumentError, "Invalid argument: #{ option.inspect }" end if color_seen == :set colors = ANSI_COLORS_BACKGROUND color_seen = true end } wrap(*mix) end |
.detect_mode ⇒ Object
Determine supported colors
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/paint.rb', line 204 def detect_mode if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ # windows if ENV['ANSICON'] 16 elsif ENV['ConEmuANSI'] == 'ON' 256 else 0 end else case ENV['TERM'] when /-256color$/, 'xterm' 256 when /-color$/, 'rxvt' 16 else # optimistic default 256 end end end |
.effect(effect_name) ⇒ Object
Creates the specified effect by looking it up in Paint::ANSI_EFFECTS
199 200 201 |
# File 'lib/paint.rb', line 199 def effect(effect_name) ANSI_EFFECTS[effect_name] end |
.hex(string, background = false) ⇒ Object
Creates 256-compatible color from a html-like color string
176 177 178 179 180 181 182 183 184 |
# File 'lib/paint.rb', line 176 def hex(string, background = false) string.tr! '#','' color_code = if string.size == 6 string.each_char.each_slice(2).map{ |hex_color| hex_color.join.to_i(16) } else string.each_char.map{ |hex_color_half| (hex_color_half*2).to_i(16) } end rgb(*[*color_code, background]) end |
.rainbow ⇒ Object
Tries to print all 256 colors
12 13 14 15 16 17 |
# File 'lib/paint/util.rb', line 12 def rainbow (0...256).each{ |color| print Paint[' ', 48, 5, color] # print empty bg color field } puts end |
.random(background = false) ⇒ Object
Creates a random ansi color
194 195 196 |
# File 'lib/paint.rb', line 194 def random(background = false) (background ? 40 : 30) + rand(8) end |
.rgb(red, green, blue, background = false) ⇒ Object
Creates a 256-compatible color from rgb values
167 168 169 170 171 172 173 |
# File 'lib/paint.rb', line 167 def rgb(red, green, blue, background = false) if @mode == 8 || @mode == 16 "#{background ? 4 : 3}#{rgb_like_value(red, green, blue, @mode == 16)}" else "#{background ? 48 : 38}#{rgb_value(red, green, blue)}" end end |
.rgb_name(color_name, background = false) ⇒ Object
Creates a 256-color from a name found in Paint::RGB_COLORS (based on rgb.txt)
187 188 189 190 191 |
# File 'lib/paint.rb', line 187 def rgb_name(color_name, background = false) if color_code = RGB_COLORS[color_name] rgb(*[*color_code, background]) end end |
.simple(color_name, background = false) ⇒ Object
Creates simple ansi color by looking it up on Paint::ANSI_COLORS
162 163 164 |
# File 'lib/paint.rb', line 162 def simple(color_name, background = false) (background ? 40 : 30) + ANSI_COLORS[color_name] end |
.unpaint(string) ⇒ Object
Removes any color and effect strings
7 8 9 |
# File 'lib/paint/util.rb', line 7 def unpaint(string) string.gsub(/\e\[(?:[0-9];?)+m/, '') end |
.update_rgb_colors(path = '/etc/X11/rgb.txt') ⇒ Object
Updates color names
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/paint/util.rb', line 20 def update_rgb_colors(path = '/etc/X11/rgb.txt') if File.file?(path) Paint::RGB_COLORS.clear File.open(path, 'r') do |file| file.each_line{ |line| line.chomp =~ /(\d+)\s+(\d+)\s+(\d+)\s+(.*)$/ Paint::RGB_COLORS[$4] = [$1.to_i, $2.to_i, $3.to_i] if $4 } end else raise ArgumentError, "Not a valid file: #{path}" end end |
.wrap(*ansi_codes) ⇒ Object
Adds ansi sequence
157 158 159 |
# File 'lib/paint.rb', line 157 def wrap(*ansi_codes) "\033[" + ansi_codes*";" + "m" end |