l43_simple_color 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10eeebfdefb2b76a9368c0e9dff8af58c2a4e2898b53212b0fb1df37541be809
4
- data.tar.gz: b98c3bf606f3421855b385dba90dd3ed41aac941c65656053e4c627d18e263bc
3
+ metadata.gz: bff60b5a27296ad1f63e044e336e345e761de3421632cd1ec36b3be1af95f42b
4
+ data.tar.gz: e1a6f5991a0fb3f12f3bf0589192f21cd351f12611b0d4c2a8cfdb7e803030ee
5
5
  SHA512:
6
- metadata.gz: bc0f9f77944abe101cad1851f5c81a4b14ed7aa02719b494ad374714e47cdce11060467a15fe57e9bd63158ac3907697a1c524247db7b9eba59dec349bc2777b
7
- data.tar.gz: dda276f2001d5e90932606dda820d8df70f59be2263b6d73139c6acbf08fa612f9b5dbd0b5aedfae50824d1d571b1c113be5b356c0a2a534120fe3e323ce3754
6
+ metadata.gz: f754bcaa42b71a486d8b50feac43efb1e1f08eaed3e6fd54ec9597d9a47e636c5b2e55918dfb8351661366bbafe163068ed0849ad6e442362be54953b6509257
7
+ data.tar.gz: 1507d8f78ca055beacdd9d0ddc578d9871ad536f33b52d6aff6a36cced5d95f082c2dc355e39e47cb82cc4186e3e2918dd709de7fd3e96b991e22d4a7150f88d
@@ -1,262 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'l43/simple_color/color_definitions'
3
4
  module L43
4
5
  module SimpleColor
5
6
  BadColor = Class.new(RuntimeError)
6
7
 
7
8
  module ColorData
8
- ANSI_CODE_SPLITTING_STRING = "__"
9
-
10
- CSI = "\e["
11
-
12
- Bold = "\x1b[1m"
13
- Dim = "\x1b[2m"
14
- Reset = "\x1b[0m"
15
- Underline = "\x1b[4m"
16
-
17
- Colors = {
18
- black: "\x1b[30m",
19
- blue: "\x1b[34m",
20
- cyan: "\x1b[36m",
21
- green: "\x1b[32m",
22
- magenta: "\x1b[35m",
23
- red: "\x1b[31m",
24
- white: "\x1b[37m",
25
- yellow: "\x1b[33m",
26
-
27
- bgblack: "\x1b[40m",
28
- bgblue: "\x1b[44m",
29
- bgcyan: "\x1b[46m",
30
- bggreen: "\x1b[42m",
31
- bgmagenta: "\x1b[45m",
32
- bgred: "\x1b[41m",
33
- bgwhite: "\x1b[47m",
34
- bgyellow: "\x1b[43m",
35
-
36
- b: Bold,
37
- bold: Bold,
38
- d: Dim,
39
- dim: Dim,
40
- r: Reset,
41
- reset: Reset,
42
- ul: Underline,
43
- underline: Underline,
44
- }
45
9
 
46
- RGB_COLORS = {
47
- aqua: [0, 255, 255],
48
- aquamarine1: [95, 255, 215],
49
- aquamarine3: [95, 215, 175],
50
- azure1: [240, 255, 255],
51
- blue1: [0, 0, 255],
52
- blue3: [0, 0, 175],
53
- blue_violet: [95, 0, 255],
54
- cadet_blue: [95, 175, 135],
55
- chartreuse1: [135, 255, 0],
56
- chartreuse2: [95, 255, 0],
57
- chartreuse3: [95, 175, 0],
58
- chartreuse4: [95, 135, 0],
59
- cornflower_blue: [95, 135, 255],
60
- cornsilk1: [255, 255, 215],
61
- cyan1: [0, 255, 255],
62
- cyan2: [0, 255, 215],
63
- cyan3: [0, 215, 175],
64
- dark_blue: [0, 0, 135],
65
- dark_cyan: [0, 175, 135],
66
- dark_goldenrod: [175, 135, 0],
67
- dark_green: [0, 95, 0],
68
- dark_khaki: [175, 175, 95],
69
- dark_magenta: [135, 0, 135],
70
- dark_olive_green1: [215, 255, 95],
71
- dark_olive_green2: [175, 255, 95],
72
- dark_olive_green3: [135, 175, 95],
73
- dark_orange3: [175, 95, 0],
74
- dark_orange: [255, 135, 0],
75
- dark_red: [95, 0, 0],
76
- dark_sea_green1: [175, 255, 215],
77
- dark_sea_green2: [175, 215, 175],
78
- dark_sea_green3: [135, 215, 175],
79
- dark_sea_green4: [95, 135, 95],
80
- dark_sea_green: [135, 175, 135],
81
- dark_slate_gray1: [135, 255, 255],
82
- dark_slate_gray2: [95, 255, 255],
83
- dark_slate_gray3: [135, 215, 215],
84
- dark_turquoise: [0, 215, 215],
85
- dark_violet: [135, 0, 215],
86
- deep_pink1: [255, 0, 135],
87
- deep_pink2: [255, 0, 95],
88
- deep_pink3: [215, 0, 95],
89
- deep_pink4: [95, 0, 95],
90
- deep_sky_blue1: [0, 175, 255],
91
- deep_sky_blue2: [0, 175, 215],
92
- deep_sky_blue3: [0, 135, 175],
93
- deep_sky_blue4: [0, 95, 95],
94
- dodger_blue1: [0, 135, 255],
95
- dodger_blue2: [0, 95, 255],
96
- dodger_blue3: [0, 95, 215],
97
- fuchsia: [255, 0, 255],
98
- gold1: [255, 215, 0],
99
- gold3: [175, 175, 0],
100
- green1: [0, 255, 0],
101
- green3: [0, 175, 0],
102
- green4: [0, 135, 0],
103
- green_yellow: [175, 255, 0],
104
- grey0: [0, 0, 0],
105
- grey100: [255, 255, 255],
106
- grey11: [28, 28, 28],
107
- grey15: [38, 38, 38],
108
- grey19: [48, 48, 48],
109
- grey23: [58, 58, 58],
110
- grey27: [68, 68, 68],
111
- grey30: [78, 78, 78],
112
- grey35: [88, 88, 88],
113
- grey37: [95, 95, 95],
114
- grey39: [98, 98, 98],
115
- grey3: [8, 8, 8],
116
- grey42: [108, 108, 108],
117
- grey46: [118, 118, 118],
118
- grey50: [128, 128, 128],
119
- grey53: [135, 135, 135],
120
- grey54: [138, 138, 138],
121
- grey58: [148, 148, 148],
122
- grey62: [158, 158, 158],
123
- grey63: [175, 135, 175],
124
- grey66: [168, 168, 168],
125
- grey69: [175, 175, 175],
126
- grey70: [178, 178, 178],
127
- grey74: [188, 188, 188],
128
- grey78: [198, 198, 198],
129
- grey7: [18, 18, 18],
130
- grey82: [208, 208, 208],
131
- grey84: [215, 215, 215],
132
- grey85: [218, 218, 218],
133
- grey89: [228, 228, 228],
134
- grey93: [238, 238, 238],
135
- grey: [128, 128, 128],
136
- honeydew2: [215, 255, 215],
137
- hot_pink2: [215, 95, 175],
138
- hot_pink3: [175, 95, 135],
139
- hot_pink: [255, 95, 175],
140
- indian_red1: [255, 95, 95],
141
- indian_red: [175, 95, 95],
142
- khaki1: [255, 255, 135],
143
- khaki3: [215, 215, 95],
144
- light_coral: [255, 135, 135],
145
- light_cyan1: [215, 255, 255],
146
- light_cyan3: [175, 215, 215],
147
- light_goldenrod1: [255, 255, 95],
148
- light_goldenrod2: [215, 215, 135],
149
- light_goldenrod3: [215, 175, 95],
150
- light_green: [135, 255, 95],
151
- light_pink1: [255, 175, 175],
152
- light_pink3: [215, 135, 135],
153
- light_pink4: [135, 95, 95],
154
- light_salmon1: [255, 175, 135],
155
- light_salmon3: [175, 135, 95],
156
- light_sea_green: [0, 175, 175],
157
- light_sky_blue1: [175, 215, 255],
158
- light_sky_blue3: [135, 175, 175],
159
- light_slate_blue: [135, 135, 255],
160
- light_slate_grey: [135, 135, 175],
161
- light_steel_blue1: [215, 215, 255],
162
- light_steel_blue3: [175, 175, 215],
163
- light_steel_blue: [175, 175, 255],
164
- light_yellow3: [215, 215, 175],
165
- lime: [0, 255, 0],
166
- magenta1: [255, 0, 255],
167
- magenta2: [215, 0, 255],
168
- magenta3: [175, 0, 175],
169
- maroon: [128, 0, 0],
170
- medium_orchid1: [215, 95, 255],
171
- medium_orchid3: [175, 95, 175],
172
- medium_orchid: [175, 95, 215],
173
- medium_purple1: [175, 135, 255],
174
- medium_purple2: [175, 95, 255],
175
- medium_purple3: [135, 95, 175],
176
- medium_purple4: [95, 95, 135],
177
- medium_purple: [135, 135, 215],
178
- medium_spring_green: [0, 255, 175],
179
- medium_turquoise: [95, 215, 215],
180
- medium_violet_red: [175, 0, 135],
181
- misty_rose1: [255, 215, 215],
182
- misty_rose3: [215, 175, 175],
183
- navajo_white1: [255, 215, 175],
184
- navajo_white3: [175, 175, 135],
185
- navy: [0, 0, 128],
186
- navy_blue: [0, 0, 95],
187
- olive: [128, 128, 0],
188
- orange: [255, 128, 0],
189
- orange1: [255, 175, 0],
190
- orange3: [215, 135, 0],
191
- orange4: [95, 95, 0],
192
- orange_red1: [255, 95, 0],
193
- orchid1: [255, 135, 255],
194
- orchid2: [255, 135, 215],
195
- orchid: [215, 95, 215],
196
- pale_green1: [135, 255, 175],
197
- pale_green3: [95, 215, 95],
198
- pale_turquoise1: [175, 255, 255],
199
- pale_turquoise4: [95, 135, 135],
200
- pale_violet_red1: [255, 135, 175],
201
- pink1: [255, 175, 215],
202
- pink3: [215, 135, 175],
203
- plum1: [255, 175, 255],
204
- plum2: [215, 175, 255],
205
- plum3: [215, 135, 215],
206
- plum4: [135, 95, 135],
207
- purple3: [95, 0, 215],
208
- purple4: [95, 0, 135],
209
- purple: [128, 0, 128],
210
- red1: [255, 0, 0],
211
- red3: [175, 0, 0],
212
- rosy_brown: [175, 135, 135],
213
- royal_blue1: [95, 95, 255],
214
- salmon1: [255, 135, 95],
215
- sandy_brown: [255, 175, 95],
216
- sea_green1: [95, 255, 135],
217
- sea_green2: [95, 255, 95],
218
- sea_green3: [95, 215, 135],
219
- silver: [192, 192, 192],
220
- sky_blue1: [135, 215, 255],
221
- sky_blue2: [135, 175, 255],
222
- sky_blue3: [95, 175, 215],
223
- slate_blue1: [135, 95, 255],
224
- slate_blue3: [95, 95, 175],
225
- spring_green1: [0, 255, 135],
226
- spring_green2: [0, 215, 135],
227
- spring_green3: [0, 175, 95],
228
- spring_green4: [0, 135, 95],
229
- steel_blue1: [95, 175, 255],
230
- steel_blue3: [95, 135, 215],
231
- steel_blue: [95, 135, 175],
232
- tan: [215, 175, 135],
233
- teal: [0, 128, 128],
234
- thistle1: [255, 215, 255],
235
- thistle3: [215, 175, 215],
236
- turquoise2: [0, 215, 255],
237
- turquoise4: [0, 135, 135],
238
- violet: [215, 135, 255],
239
- wheat1: [255, 255, 175],
240
- wheat4: [135, 135, 95],
241
- yellow1: [255, 255, 0],
242
- yellow2: [215, 255, 0],
243
- yellow3: [175, 215, 0],
244
- yellow4: [135, 135, 0]
245
- }.map do |k, rgb|
246
- [k, [CSI, "38;2;", *rgb.join(";"), "m"].join]
247
- end.to_h
248
-
249
- ExtendedColors =
250
- (0..255)
251
- .map {["color#{it}".to_sym, [CSI, "38;5;", it, "m"].join ]}
252
- .to_h
253
- .merge(RGB_COLORS)
254
- .freeze
10
+ ANSI_CODE_SPLITTING_STRING = "__"
255
11
 
256
12
  def get_chunk(sym, extended: false)
257
- code = Colors.fetch(sym.to_sym) do
13
+ code = Colors.fetch(sym) do
258
14
  if extended
259
- ExtendedColors.fetch(sym.to_sym) {
15
+ ExtendedColors.fetch(sym) {
260
16
  [:error, "bad color code :#{sym}"]
261
17
  }
262
18
  else
@@ -266,6 +22,16 @@ module L43
266
22
  use_color? ? code : ""
267
23
  end
268
24
 
25
+ # new_sym = scheme.fetch(sym.to_sym) { sym.to_sym }
26
+ # case _get_chunk(new_sym, extended:)
27
+ # in :error, _msg
28
+ # [:error, "bad color code :#{new_sym} (from scheme :#{sym})"]
29
+ # in encoded
30
+ # encoded
31
+ # end
32
+
33
+ # end
34
+
269
35
  def get_chunk!(sym, extended: false)
270
36
  case get_chunk(sym, extended:)
271
37
  in :error, msg
@@ -275,19 +41,43 @@ module L43
275
41
  end
276
42
  end
277
43
 
278
- def get_chunks(sym, extended:)
279
- sym.to_s.split(ANSI_CODE_SPLITTING_STRING).map do
280
- case get_chunk(it, extended:)
44
+ def get_chunks(sym, extended:, scheme: nil)
45
+ scheme ? _get_chunks_with_scheme(sym, extended:, scheme:) : _get_chunks_wo_scheme(sym, extended:)
46
+ end
47
+ def use_color? = @__use_color__ ||= !ENV['NO_COLOR']
48
+
49
+ private
50
+
51
+ def _get_chunks_wo_scheme(sym, extended:)
52
+ sym.to_s.split(ANSI_CODE_SPLITTING_STRING).map do |chunk|
53
+ case get_chunk(chunk.to_sym, extended:)
281
54
  in [:error, _messag] => error
282
55
  return error
283
56
  in encoded
284
57
  encoded
285
58
  end
286
59
  end
287
- .join
60
+ .join
288
61
  end
289
62
 
290
- def use_color? = @__use_color__ ||= !ENV['NO_COLOR']
63
+ def _get_chunks_with_scheme(sym, extended:, scheme:)
64
+ sym.to_s.split(ANSI_CODE_SPLITTING_STRING).map do
65
+ new_sym = scheme.fetch(it.to_sym, nil)
66
+ old_sym = it.to_sym if new_sym
67
+ case _get_chunks_wo_scheme(new_sym || it.to_sym, extended:)
68
+ in [:error, message] => error
69
+ if new_sym
70
+ return [:error, [message, "(from scheme :#{old_sym})"].join(" ")]
71
+ else
72
+ return error
73
+ end
74
+ in encoded
75
+ encoded
76
+ end
77
+ end
78
+ .join
79
+
80
+ end
291
81
  end
292
82
  end
293
83
  end
@@ -0,0 +1,255 @@
1
+ # frozen_string_literal: true
2
+
3
+ module L43
4
+ module SimpleColor
5
+ module ColorData
6
+ CSI = "\e["
7
+
8
+ Bold = "\x1b[1m"
9
+ Dim = "\x1b[2m"
10
+ Reset = "\x1b[0m"
11
+ Underline = "\x1b[4m"
12
+
13
+ Colors = {
14
+ black: "\x1b[30m",
15
+ blue: "\x1b[34m",
16
+ cyan: "\x1b[36m",
17
+ green: "\x1b[32m",
18
+ magenta: "\x1b[35m",
19
+ red: "\x1b[31m",
20
+ white: "\x1b[37m",
21
+ yellow: "\x1b[33m",
22
+
23
+ bgblack: "\x1b[40m",
24
+ bgblue: "\x1b[44m",
25
+ bgcyan: "\x1b[46m",
26
+ bggreen: "\x1b[42m",
27
+ bgmagenta: "\x1b[45m",
28
+ bgred: "\x1b[41m",
29
+ bgwhite: "\x1b[47m",
30
+ bgyellow: "\x1b[43m",
31
+
32
+ b: Bold,
33
+ bold: Bold,
34
+ d: Dim,
35
+ dim: Dim,
36
+ r: Reset,
37
+ reset: Reset,
38
+ ul: Underline,
39
+ underline: Underline,
40
+ }
41
+
42
+ RGB_COLORS = {
43
+ aqua: [0, 255, 255],
44
+ aquamarine1: [95, 255, 215],
45
+ aquamarine3: [95, 215, 175],
46
+ azure1: [240, 255, 255],
47
+ blue1: [0, 0, 255],
48
+ blue3: [0, 0, 175],
49
+ blue_violet: [95, 0, 255],
50
+ cadet_blue: [95, 175, 135],
51
+ chartreuse1: [135, 255, 0],
52
+ chartreuse2: [95, 255, 0],
53
+ chartreuse3: [95, 175, 0],
54
+ chartreuse4: [95, 135, 0],
55
+ cornflower_blue: [95, 135, 255],
56
+ cornsilk1: [255, 255, 215],
57
+ cyan1: [0, 255, 255],
58
+ cyan2: [0, 255, 215],
59
+ cyan3: [0, 215, 175],
60
+ dark_blue: [0, 0, 135],
61
+ dark_cyan: [0, 175, 135],
62
+ dark_goldenrod: [175, 135, 0],
63
+ dark_green: [0, 95, 0],
64
+ dark_khaki: [175, 175, 95],
65
+ dark_magenta: [135, 0, 135],
66
+ dark_olive_green1: [215, 255, 95],
67
+ dark_olive_green2: [175, 255, 95],
68
+ dark_olive_green3: [135, 175, 95],
69
+ dark_orange3: [175, 95, 0],
70
+ dark_orange: [255, 135, 0],
71
+ dark_red: [95, 0, 0],
72
+ dark_sea_green1: [175, 255, 215],
73
+ dark_sea_green2: [175, 215, 175],
74
+ dark_sea_green3: [135, 215, 175],
75
+ dark_sea_green4: [95, 135, 95],
76
+ dark_sea_green: [135, 175, 135],
77
+ dark_slate_gray1: [135, 255, 255],
78
+ dark_slate_gray2: [95, 255, 255],
79
+ dark_slate_gray3: [135, 215, 215],
80
+ dark_turquoise: [0, 215, 215],
81
+ dark_violet: [135, 0, 215],
82
+ deep_pink1: [255, 0, 135],
83
+ deep_pink2: [255, 0, 95],
84
+ deep_pink3: [215, 0, 95],
85
+ deep_pink4: [95, 0, 95],
86
+ deep_sky_blue1: [0, 175, 255],
87
+ deep_sky_blue2: [0, 175, 215],
88
+ deep_sky_blue3: [0, 135, 175],
89
+ deep_sky_blue4: [0, 95, 95],
90
+ dodger_blue1: [0, 135, 255],
91
+ dodger_blue2: [0, 95, 255],
92
+ dodger_blue3: [0, 95, 215],
93
+ fuchsia: [255, 0, 255],
94
+ gold1: [255, 215, 0],
95
+ gold3: [175, 175, 0],
96
+ green1: [0, 255, 0],
97
+ green3: [0, 175, 0],
98
+ green4: [0, 135, 0],
99
+ green_yellow: [175, 255, 0],
100
+ grey0: [0, 0, 0],
101
+ grey100: [255, 255, 255],
102
+ grey11: [28, 28, 28],
103
+ grey15: [38, 38, 38],
104
+ grey19: [48, 48, 48],
105
+ grey23: [58, 58, 58],
106
+ grey27: [68, 68, 68],
107
+ grey30: [78, 78, 78],
108
+ grey35: [88, 88, 88],
109
+ grey37: [95, 95, 95],
110
+ grey39: [98, 98, 98],
111
+ grey3: [8, 8, 8],
112
+ grey42: [108, 108, 108],
113
+ grey46: [118, 118, 118],
114
+ grey50: [128, 128, 128],
115
+ grey53: [135, 135, 135],
116
+ grey54: [138, 138, 138],
117
+ grey58: [148, 148, 148],
118
+ grey62: [158, 158, 158],
119
+ grey63: [175, 135, 175],
120
+ grey66: [168, 168, 168],
121
+ grey69: [175, 175, 175],
122
+ grey70: [178, 178, 178],
123
+ grey74: [188, 188, 188],
124
+ grey78: [198, 198, 198],
125
+ grey7: [18, 18, 18],
126
+ grey82: [208, 208, 208],
127
+ grey84: [215, 215, 215],
128
+ grey85: [218, 218, 218],
129
+ grey89: [228, 228, 228],
130
+ grey93: [238, 238, 238],
131
+ grey: [128, 128, 128],
132
+ honeydew2: [215, 255, 215],
133
+ hot_pink2: [215, 95, 175],
134
+ hot_pink3: [175, 95, 135],
135
+ hot_pink: [255, 95, 175],
136
+ indian_red1: [255, 95, 95],
137
+ indian_red: [175, 95, 95],
138
+ khaki1: [255, 255, 135],
139
+ khaki3: [215, 215, 95],
140
+ light_coral: [255, 135, 135],
141
+ light_cyan1: [215, 255, 255],
142
+ light_cyan3: [175, 215, 215],
143
+ light_goldenrod1: [255, 255, 95],
144
+ light_goldenrod2: [215, 215, 135],
145
+ light_goldenrod3: [215, 175, 95],
146
+ light_green: [135, 255, 95],
147
+ light_pink1: [255, 175, 175],
148
+ light_pink3: [215, 135, 135],
149
+ light_pink4: [135, 95, 95],
150
+ light_salmon1: [255, 175, 135],
151
+ light_salmon3: [175, 135, 95],
152
+ light_sea_green: [0, 175, 175],
153
+ light_sky_blue1: [175, 215, 255],
154
+ light_sky_blue3: [135, 175, 175],
155
+ light_slate_blue: [135, 135, 255],
156
+ light_slate_grey: [135, 135, 175],
157
+ light_steel_blue1: [215, 215, 255],
158
+ light_steel_blue3: [175, 175, 215],
159
+ light_steel_blue: [175, 175, 255],
160
+ light_yellow3: [215, 215, 175],
161
+ lime: [0, 255, 0],
162
+ magenta1: [255, 0, 255],
163
+ magenta2: [215, 0, 255],
164
+ magenta3: [175, 0, 175],
165
+ maroon: [128, 0, 0],
166
+ medium_orchid1: [215, 95, 255],
167
+ medium_orchid3: [175, 95, 175],
168
+ medium_orchid: [175, 95, 215],
169
+ medium_purple1: [175, 135, 255],
170
+ medium_purple2: [175, 95, 255],
171
+ medium_purple3: [135, 95, 175],
172
+ medium_purple4: [95, 95, 135],
173
+ medium_purple: [135, 135, 215],
174
+ medium_spring_green: [0, 255, 175],
175
+ medium_turquoise: [95, 215, 215],
176
+ medium_violet_red: [175, 0, 135],
177
+ misty_rose1: [255, 215, 215],
178
+ misty_rose3: [215, 175, 175],
179
+ navajo_white1: [255, 215, 175],
180
+ navajo_white3: [175, 175, 135],
181
+ navy: [0, 0, 128],
182
+ navy_blue: [0, 0, 95],
183
+ olive: [128, 128, 0],
184
+ orange: [255, 128, 0],
185
+ orange1: [255, 175, 0],
186
+ orange3: [215, 135, 0],
187
+ orange4: [95, 95, 0],
188
+ orange_red1: [255, 95, 0],
189
+ orchid1: [255, 135, 255],
190
+ orchid2: [255, 135, 215],
191
+ orchid: [215, 95, 215],
192
+ pale_green1: [135, 255, 175],
193
+ pale_green3: [95, 215, 95],
194
+ pale_turquoise1: [175, 255, 255],
195
+ pale_turquoise4: [95, 135, 135],
196
+ pale_violet_red1: [255, 135, 175],
197
+ pink1: [255, 175, 215],
198
+ pink3: [215, 135, 175],
199
+ plum1: [255, 175, 255],
200
+ plum2: [215, 175, 255],
201
+ plum3: [215, 135, 215],
202
+ plum4: [135, 95, 135],
203
+ purple3: [95, 0, 215],
204
+ purple4: [95, 0, 135],
205
+ purple: [128, 0, 128],
206
+ red1: [255, 0, 0],
207
+ red3: [175, 0, 0],
208
+ rosy_brown: [175, 135, 135],
209
+ royal_blue1: [95, 95, 255],
210
+ salmon1: [255, 135, 95],
211
+ sandy_brown: [255, 175, 95],
212
+ sea_green1: [95, 255, 135],
213
+ sea_green2: [95, 255, 95],
214
+ sea_green3: [95, 215, 135],
215
+ silver: [192, 192, 192],
216
+ sky_blue1: [135, 215, 255],
217
+ sky_blue2: [135, 175, 255],
218
+ sky_blue3: [95, 175, 215],
219
+ slate_blue1: [135, 95, 255],
220
+ slate_blue3: [95, 95, 175],
221
+ spring_green1: [0, 255, 135],
222
+ spring_green2: [0, 215, 135],
223
+ spring_green3: [0, 175, 95],
224
+ spring_green4: [0, 135, 95],
225
+ steel_blue1: [95, 175, 255],
226
+ steel_blue3: [95, 135, 215],
227
+ steel_blue: [95, 135, 175],
228
+ tan: [215, 175, 135],
229
+ teal: [0, 128, 128],
230
+ thistle1: [255, 215, 255],
231
+ thistle3: [215, 175, 215],
232
+ turquoise2: [0, 215, 255],
233
+ turquoise4: [0, 135, 135],
234
+ violet: [215, 135, 255],
235
+ wheat1: [255, 255, 175],
236
+ wheat4: [135, 135, 95],
237
+ yellow1: [255, 255, 0],
238
+ yellow2: [215, 255, 0],
239
+ yellow3: [175, 215, 0],
240
+ yellow4: [135, 135, 0]
241
+ }.map do |k, rgb|
242
+ [k, [CSI, "38;2;", *rgb.join(";"), "m"].join]
243
+ end.to_h
244
+
245
+ ExtendedColors =
246
+ (0..255)
247
+ .map {["color#{it}".to_sym, [CSI, "38;5;", it, "m"].join ]}
248
+ .to_h
249
+ .merge(RGB_COLORS)
250
+ .freeze
251
+
252
+ end
253
+ end
254
+ end
255
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,8 +14,8 @@ module L43
14
14
  ColorSpecRgx = %r{(?:\s|\A):[__[:alnum:]]+(?:\s|\z)}
15
15
  Meta = %r{[:\s]+}
16
16
 
17
- def colorize(str, reset: true, extended: false, raises: false)
18
- case _colorize(str, extended:)
17
+ def colorize(str, reset: true, extended: false, raises: false, scheme: nil)
18
+ case _colorize(str, extended:, scheme:)
19
19
  in String => encoded
20
20
  reset ? encoded + get_chunk(:reset) : encoded
21
21
  in [:error, msg] => error
@@ -23,13 +23,13 @@ module L43
23
23
  end
24
24
  end
25
25
 
26
- def colorize!(str, reset: true, extended: false) = colorize(str, raises: true, reset:, extended:)
27
- def xcolorize(str, reset: true) = colorize(str, reset:, extended: true)
28
- def xcolorize!(str, reset: true) = colorize(str, reset:, extended: true, raises: true)
26
+ def colorize!(str, reset: true, extended: false, scheme: nil) = colorize(str, raises: true, reset:, extended:, scheme:)
27
+ def xcolorize(str, reset: true, scheme: nil) = colorize(str, reset:, extended: true, scheme:)
28
+ def xcolorize!(str, reset: true, scheme: nil) = colorize(str, reset:, extended: true, raises: true, scheme:)
29
29
 
30
30
  private
31
- def _colorize(str, reset: true, extended: false)
32
- case _replace_color_codes(str, extended:)
31
+ def _colorize(str, scheme:, extended:)
32
+ case _replace_color_codes(str, scheme:, extended:)
33
33
  in [:error, _msg] => error
34
34
  error
35
35
  in coded
@@ -37,10 +37,10 @@ module L43
37
37
  end
38
38
  end
39
39
 
40
- def _replace_color_codes(str, extended: false)
40
+ def _replace_color_codes(str, scheme:, extended:)
41
41
  str.gsub ColorSpecRgx do |match|
42
42
  spec = match.gsub(Meta, "")
43
- case get_chunks(spec, extended:)
43
+ case get_chunks(spec, extended:, scheme:)
44
44
  in [:error, _message] => error
45
45
  return error
46
46
  in code
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  module SimpleColor
5
- VERSION = '0.2.1'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_simple_color
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
@@ -39,6 +39,7 @@ files:
39
39
  - lib/l43/simple_color.rb
40
40
  - lib/l43/simple_color/cli.rb
41
41
  - lib/l43/simple_color/color_data.rb
42
+ - lib/l43/simple_color/color_definitions.rb
42
43
  - lib/l43/simple_color/colorize.rb
43
44
  - lib/l43/simple_color/file_colorizer.rb
44
45
  - lib/l43/simple_color/version.rb