sai 0.3.0 → 0.3.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 +4 -4
- data/CHANGELOG.md +30 -1
- data/README.md +11 -3
- data/docs/USAGE.md +71 -9
- data/lib/sai/ansi/color_parser.rb +109 -0
- data/lib/sai/ansi/sequence_processor.rb +15 -126
- data/lib/sai/ansi/style_parser.rb +66 -0
- data/lib/sai/ansi.rb +0 -27
- data/lib/sai/conversion/color_sequence.rb +4 -4
- data/lib/sai/conversion/rgb/color_classifier.rb +209 -0
- data/lib/sai/conversion/rgb/color_indexer.rb +48 -0
- data/lib/sai/conversion/rgb/color_space.rb +192 -0
- data/lib/sai/conversion/rgb/color_transformer.rb +140 -0
- data/lib/sai/conversion/rgb.rb +23 -269
- data/lib/sai/decorator/color_manipulations.rb +157 -0
- data/lib/sai/decorator/delegation.rb +85 -0
- data/lib/sai/decorator/gradients.rb +363 -0
- data/lib/sai/decorator/hex_colors.rb +56 -0
- data/lib/sai/decorator/named_colors.rb +792 -0
- data/lib/sai/decorator/named_styles.rb +276 -0
- data/lib/sai/decorator/rgb_colors.rb +64 -0
- data/lib/sai/decorator.rb +29 -775
- data/lib/sai/named_colors.rb +522 -0
- data/lib/sai.rb +753 -23
- data/sig/sai/ansi/color_parser.rbs +77 -0
- data/sig/sai/ansi/sequence_processor.rbs +0 -75
- data/sig/sai/ansi/style_parser.rbs +59 -0
- data/sig/sai/ansi.rbs +0 -10
- data/sig/sai/conversion/rgb/color_classifier.rbs +165 -0
- data/sig/sai/conversion/rgb/color_indexer.rbs +41 -0
- data/sig/sai/conversion/rgb/color_space.rbs +129 -0
- data/sig/sai/conversion/rgb/color_transformer.rbs +99 -0
- data/sig/sai/conversion/rgb.rbs +15 -198
- data/sig/sai/decorator/color_manipulations.rbs +125 -0
- data/sig/sai/decorator/delegation.rbs +47 -0
- data/sig/sai/decorator/gradients.rbs +267 -0
- data/sig/sai/decorator/hex_colors.rbs +48 -0
- data/sig/sai/decorator/named_colors.rbs +1504 -0
- data/sig/sai/decorator/named_styles.rbs +72 -0
- data/sig/sai/decorator/rgb_colors.rbs +52 -0
- data/sig/sai/decorator.rbs +21 -195
- data/sig/sai/named_colors.rbs +127 -0
- data/sig/sai.rbs +1488 -44
- metadata +36 -5
@@ -0,0 +1,72 @@
|
|
1
|
+
# Generated from lib/sai/decorator/named_styles.rb with RBS::Inline
|
2
|
+
|
3
|
+
module Sai
|
4
|
+
class Decorator
|
5
|
+
# Named style methods for the {Decorator} class
|
6
|
+
#
|
7
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
8
|
+
# @since 0.3.1
|
9
|
+
#
|
10
|
+
# @abstract This module is meant to be included in the {Decorator} class to provide named style methods
|
11
|
+
# @api private
|
12
|
+
module NamedStyles
|
13
|
+
def blink: () -> Decorator
|
14
|
+
|
15
|
+
def bold: () -> Decorator
|
16
|
+
|
17
|
+
def conceal: () -> Decorator
|
18
|
+
|
19
|
+
def dim: () -> Decorator
|
20
|
+
|
21
|
+
def italic: () -> Decorator
|
22
|
+
|
23
|
+
def no_blink: () -> Decorator
|
24
|
+
|
25
|
+
def no_conceal: () -> Decorator
|
26
|
+
|
27
|
+
def no_italic: () -> Decorator
|
28
|
+
|
29
|
+
def no_reverse: () -> Decorator
|
30
|
+
|
31
|
+
def no_strike: () -> Decorator
|
32
|
+
|
33
|
+
def no_underline: () -> Decorator
|
34
|
+
|
35
|
+
def normal_intensity: () -> Decorator
|
36
|
+
|
37
|
+
def rapid_blink: () -> Decorator
|
38
|
+
|
39
|
+
def reverse: () -> Decorator
|
40
|
+
|
41
|
+
def strike: () -> Decorator
|
42
|
+
|
43
|
+
def underline: () -> Decorator
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
# Apply a style to the text
|
48
|
+
#
|
49
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
50
|
+
# @since 0.1.0
|
51
|
+
#
|
52
|
+
# @api private
|
53
|
+
#
|
54
|
+
# @param style [String, Symbol] the style to apply
|
55
|
+
#
|
56
|
+
# @return [Decorator] a new instance of Decorator with the style applied
|
57
|
+
# @rbs (String | Symbol style) -> Decorator
|
58
|
+
def apply_style: (String | Symbol style) -> Decorator
|
59
|
+
|
60
|
+
# Get style sequences
|
61
|
+
#
|
62
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
63
|
+
# @since 0.3.1
|
64
|
+
#
|
65
|
+
# @api private
|
66
|
+
#
|
67
|
+
# @return [Array<String>] ANSI sequences for styles
|
68
|
+
# @rbs () -> Array[String]
|
69
|
+
def style_sequences: () -> Array[String]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# Generated from lib/sai/decorator/rgb_colors.rb with RBS::Inline
|
2
|
+
|
3
|
+
module Sai
|
4
|
+
class Decorator
|
5
|
+
# RGB color methods for the {Decorator} class
|
6
|
+
#
|
7
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
8
|
+
# @since 0.3.1
|
9
|
+
#
|
10
|
+
# @abstract This module is meant to be included in the {Decorator} class to provide RGB color methods
|
11
|
+
# @api private
|
12
|
+
module RGBColors
|
13
|
+
# Apply an RGB color to the background
|
14
|
+
#
|
15
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
16
|
+
# @since 0.1.0
|
17
|
+
#
|
18
|
+
# @api public
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# decorator.on_rgb(235, 65, 51).decorate('Hello, world!').to_s #=> "\e[48;2;235;65;51mHello, world!\e[0m"
|
22
|
+
#
|
23
|
+
# @param red [Integer] the red component
|
24
|
+
# @param green [Integer] the green component
|
25
|
+
# @param blue [Integer] the blue component
|
26
|
+
#
|
27
|
+
# @raise [ArgumentError] if the RGB values are out of range
|
28
|
+
# @return [Decorator] a new instance of Decorator with the RGB color applied
|
29
|
+
# @rbs (Integer red, Integer green, Integer blue) -> Decorator
|
30
|
+
def on_rgb: (Integer red, Integer green, Integer blue) -> Decorator
|
31
|
+
|
32
|
+
# Apply an RGB color to the foreground
|
33
|
+
#
|
34
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
35
|
+
# @since 0.1.0
|
36
|
+
#
|
37
|
+
# @api public
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# decorator.rgb(235, 65, 51).decorate('Hello, world!').to_s #=> "\e[38;2;235;65;51mHello, world!\e[0m"
|
41
|
+
#
|
42
|
+
# @param red [Integer] the red component
|
43
|
+
# @param green [Integer] the green component
|
44
|
+
# @param blue [Integer] the blue component
|
45
|
+
#
|
46
|
+
# @raise [ArgumentError] if the RGB values are out of range
|
47
|
+
# @return [Decorator] a new instance of Decorator with the RGB color applied
|
48
|
+
# @rbs (Integer red, Integer green, Integer blue) -> Decorator
|
49
|
+
def rgb: (Integer red, Integer green, Integer blue) -> Decorator
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/sig/sai/decorator.rbs
CHANGED
@@ -7,7 +7,28 @@ module Sai
|
|
7
7
|
# @since 0.1.0
|
8
8
|
#
|
9
9
|
# @api public
|
10
|
+
#
|
11
|
+
# @note For each named color, two methods are dynamically generated:
|
12
|
+
# * color_name - Applies the color to the foreground
|
13
|
+
# * on_color_name - Applies the color to the backgroundAll color methods return {Decorator}
|
14
|
+
# @see Sai::NamedColors Sai::NamedColors for available color names
|
15
|
+
#
|
16
|
+
# @example Using a named color
|
17
|
+
# decorator.azure.decorate('Hello') #=> "\e[38;2;0;127;255mHello\e[0m"
|
18
|
+
# decorator.on_azure.decorate('Hello') #=> "\e[48;2;0;127;255mHello\e[0m"
|
10
19
|
class Decorator
|
20
|
+
include ColorManipulations
|
21
|
+
|
22
|
+
include Gradients
|
23
|
+
|
24
|
+
include HexColors
|
25
|
+
|
26
|
+
include NamedColors
|
27
|
+
|
28
|
+
include NamedStyles
|
29
|
+
|
30
|
+
include RGBColors
|
31
|
+
|
11
32
|
# Initialize a new instance of Decorator
|
12
33
|
#
|
13
34
|
# @author {https://aaronmallen.me Aaron Allen}
|
@@ -21,102 +42,6 @@ module Sai
|
|
21
42
|
# @rbs (?mode: Integer) -> void
|
22
43
|
def initialize: (?mode: Integer) -> void
|
23
44
|
|
24
|
-
def black: () -> Decorator
|
25
|
-
|
26
|
-
def blue: () -> Decorator
|
27
|
-
|
28
|
-
def bright_black: () -> Decorator
|
29
|
-
|
30
|
-
def bright_blue: () -> Decorator
|
31
|
-
|
32
|
-
def bright_cyan: () -> Decorator
|
33
|
-
|
34
|
-
def bright_green: () -> Decorator
|
35
|
-
|
36
|
-
def bright_magenta: () -> Decorator
|
37
|
-
|
38
|
-
def bright_red: () -> Decorator
|
39
|
-
|
40
|
-
def bright_white: () -> Decorator
|
41
|
-
|
42
|
-
def bright_yellow: () -> Decorator
|
43
|
-
|
44
|
-
def cyan: () -> Decorator
|
45
|
-
|
46
|
-
def green: () -> Decorator
|
47
|
-
|
48
|
-
def magenta: () -> Decorator
|
49
|
-
|
50
|
-
def on_black: () -> Decorator
|
51
|
-
|
52
|
-
def on_blue: () -> Decorator
|
53
|
-
|
54
|
-
def on_bright_black: () -> Decorator
|
55
|
-
|
56
|
-
def on_bright_blue: () -> Decorator
|
57
|
-
|
58
|
-
def on_bright_cyan: () -> Decorator
|
59
|
-
|
60
|
-
def on_bright_green: () -> Decorator
|
61
|
-
|
62
|
-
def on_bright_magenta: () -> Decorator
|
63
|
-
|
64
|
-
def on_bright_red: () -> Decorator
|
65
|
-
|
66
|
-
def on_bright_white: () -> Decorator
|
67
|
-
|
68
|
-
def on_bright_yellow: () -> Decorator
|
69
|
-
|
70
|
-
def on_cyan: () -> Decorator
|
71
|
-
|
72
|
-
def on_green: () -> Decorator
|
73
|
-
|
74
|
-
def on_magenta: () -> Decorator
|
75
|
-
|
76
|
-
def on_red: () -> Decorator
|
77
|
-
|
78
|
-
def on_white: () -> Decorator
|
79
|
-
|
80
|
-
def on_yellow: () -> Decorator
|
81
|
-
|
82
|
-
def red: () -> Decorator
|
83
|
-
|
84
|
-
def white: () -> Decorator
|
85
|
-
|
86
|
-
def yellow: () -> Decorator
|
87
|
-
|
88
|
-
def blink: () -> Decorator
|
89
|
-
|
90
|
-
def bold: () -> Decorator
|
91
|
-
|
92
|
-
def conceal: () -> Decorator
|
93
|
-
|
94
|
-
def dim: () -> Decorator
|
95
|
-
|
96
|
-
def italic: () -> Decorator
|
97
|
-
|
98
|
-
def no_blink: () -> Decorator
|
99
|
-
|
100
|
-
def no_conceal: () -> Decorator
|
101
|
-
|
102
|
-
def no_italic: () -> Decorator
|
103
|
-
|
104
|
-
def no_reverse: () -> Decorator
|
105
|
-
|
106
|
-
def no_strike: () -> Decorator
|
107
|
-
|
108
|
-
def no_underline: () -> Decorator
|
109
|
-
|
110
|
-
def normal_intensity: () -> Decorator
|
111
|
-
|
112
|
-
def rapid_blink: () -> Decorator
|
113
|
-
|
114
|
-
def reverse: () -> Decorator
|
115
|
-
|
116
|
-
def strike: () -> Decorator
|
117
|
-
|
118
|
-
def underline: () -> Decorator
|
119
|
-
|
120
45
|
# Apply the styles and colors to the text
|
121
46
|
#
|
122
47
|
# @author {https://aaronmallen.me Aaron Allen}
|
@@ -139,78 +64,6 @@ module Sai
|
|
139
64
|
|
140
65
|
alias encode decorate
|
141
66
|
|
142
|
-
# Apply a hexadecimal color to the foreground
|
143
|
-
#
|
144
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
145
|
-
# @since 0.1.0
|
146
|
-
#
|
147
|
-
# @api public
|
148
|
-
#
|
149
|
-
# @example
|
150
|
-
# decorator.hex("#EB4133").decorate('Hello, world!').to_s #=> "\e[38;2;235;65;51mHello, world!\e[0m"
|
151
|
-
#
|
152
|
-
# @param code [String] the hex color code
|
153
|
-
#
|
154
|
-
# @raise [ArgumentError] if the hex code is invalid
|
155
|
-
# @return [Decorator] a new instance of Decorator with the hex color applied
|
156
|
-
# @rbs (String code) -> Decorator
|
157
|
-
def hex: (String code) -> Decorator
|
158
|
-
|
159
|
-
# Apply a hexadecimal color to the background
|
160
|
-
#
|
161
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
162
|
-
# @since 0.1.0
|
163
|
-
#
|
164
|
-
# @api public
|
165
|
-
#
|
166
|
-
# @example
|
167
|
-
# decorator.on_hex("#EB4133").decorate('Hello, world!').to_s #=> "\e[48;2;235;65;51mHello, world!\e[0m"
|
168
|
-
#
|
169
|
-
# @param code [String] the hex color code
|
170
|
-
#
|
171
|
-
# @raise [ArgumentError] if the hex code is invalid
|
172
|
-
# @return [Decorator] a new instance of Decorator with the hex color applied
|
173
|
-
# @rbs (String code) -> Decorator
|
174
|
-
def on_hex: (String code) -> Decorator
|
175
|
-
|
176
|
-
# Apply an RGB color to the background
|
177
|
-
#
|
178
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
179
|
-
# @since 0.1.0
|
180
|
-
#
|
181
|
-
# @api public
|
182
|
-
#
|
183
|
-
# @example
|
184
|
-
# decorator.on_rgb(235, 65, 51).decorate('Hello, world!').to_s #=> "\e[48;2;235;65;51mHello, world!\e[0m"
|
185
|
-
#
|
186
|
-
# @param red [Integer] the red component
|
187
|
-
# @param green [Integer] the green component
|
188
|
-
# @param blue [Integer] the blue component
|
189
|
-
#
|
190
|
-
# @raise [ArgumentError] if the RGB values are out of range
|
191
|
-
# @return [Decorator] a new instance of Decorator with the RGB color applied
|
192
|
-
# @rbs (Integer red, Integer green, Integer blue) -> Decorator
|
193
|
-
def on_rgb: (Integer red, Integer green, Integer blue) -> Decorator
|
194
|
-
|
195
|
-
# Apply an RGB color to the foreground
|
196
|
-
#
|
197
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
198
|
-
# @since 0.1.0
|
199
|
-
#
|
200
|
-
# @api public
|
201
|
-
#
|
202
|
-
# @example
|
203
|
-
# decorator.rgb(235, 65, 51).decorate('Hello, world!').to_s #=> "\e[38;2;235;65;51mHello, world!\e[0m"
|
204
|
-
#
|
205
|
-
# @param red [Integer] the red component
|
206
|
-
# @param green [Integer] the green component
|
207
|
-
# @param blue [Integer] the blue component
|
208
|
-
#
|
209
|
-
# @raise [ArgumentError] if the RGB values are out of range
|
210
|
-
# @return [Decorator] a new instance of Decorator with the RGB color applied
|
211
|
-
# @rbs (Integer red, Integer green, Integer blue) -> Decorator
|
212
|
-
def rgb: (Integer red, Integer green, Integer blue) -> Decorator
|
213
|
-
|
214
67
|
# Apply a specific color mode to the decorator
|
215
68
|
#
|
216
69
|
# @author {https://aaronmallen.me Aaron Allen}
|
@@ -229,33 +82,6 @@ module Sai
|
|
229
82
|
|
230
83
|
private
|
231
84
|
|
232
|
-
# Apply a named color to the specified style type
|
233
|
-
#
|
234
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
235
|
-
# @since 0.1.0
|
236
|
-
#
|
237
|
-
# @api private
|
238
|
-
#
|
239
|
-
# @param style_type [Symbol] the style type to apply the color to
|
240
|
-
# @param color [Symbol] the color to apply
|
241
|
-
#
|
242
|
-
# @return [Decorator] a new instance of Decorator with the color applied
|
243
|
-
# @rbs (Conversion::ColorSequence::style_type style_type, Symbol color) -> Decorator
|
244
|
-
def apply_named_color: (Conversion::ColorSequence::style_type style_type, Symbol color) -> Decorator
|
245
|
-
|
246
|
-
# Apply a style to the text
|
247
|
-
#
|
248
|
-
# @author {https://aaronmallen.me Aaron Allen}
|
249
|
-
# @since 0.1.0
|
250
|
-
#
|
251
|
-
# @api private
|
252
|
-
#
|
253
|
-
# @param style [String, Symbol] the style to apply
|
254
|
-
#
|
255
|
-
# @return [Decorator] a new instance of Decorator with the style applied
|
256
|
-
# @rbs (String | Symbol style) -> self
|
257
|
-
def apply_style: (String | Symbol style) -> self
|
258
|
-
|
259
85
|
# Check if text should be decorated
|
260
86
|
#
|
261
87
|
# @author {https://aaronmallen.me Aaron Allen}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# Generated from lib/sai/named_colors.rb with RBS::Inline
|
2
|
+
|
3
|
+
module Sai
|
4
|
+
# A collection of named colors and their RGB values
|
5
|
+
#
|
6
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
7
|
+
# @since 0.3.1
|
8
|
+
#
|
9
|
+
# @api private
|
10
|
+
module NamedColors
|
11
|
+
# Standard ANSI color names and their RGB values
|
12
|
+
#
|
13
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
14
|
+
# @since 0.3.1
|
15
|
+
#
|
16
|
+
# @api private
|
17
|
+
#
|
18
|
+
# @return [Hash{Symbol => Array<Integer>}] the color names and RGB values
|
19
|
+
ANSI: untyped
|
20
|
+
|
21
|
+
# CSS color names and their RGB values
|
22
|
+
#
|
23
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
24
|
+
# @since 0.3.1
|
25
|
+
#
|
26
|
+
# @api private
|
27
|
+
#
|
28
|
+
# @return [Hash{Symbol => Array<Integer>}] the color names and RGB values
|
29
|
+
CSS: Hash[Symbol, Array[Integer]]
|
30
|
+
|
31
|
+
# XTERM color names and their RGB values
|
32
|
+
#
|
33
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
34
|
+
# @since 0.3.1
|
35
|
+
#
|
36
|
+
# @api private
|
37
|
+
#
|
38
|
+
# @return [Hash{Symbol => Array<Integer>}] the color names and RGB values
|
39
|
+
# rubocop:disable Naming/VariableNumber
|
40
|
+
XTERM: Hash[Symbol, Array[Integer]]
|
41
|
+
|
42
|
+
# Look up an RGB value by color name
|
43
|
+
#
|
44
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
45
|
+
# @since 0.3.1
|
46
|
+
#
|
47
|
+
# @api private
|
48
|
+
#
|
49
|
+
# @param name [String, Symbol] the color name
|
50
|
+
#
|
51
|
+
# @return [Array<Integer>] the RGB value
|
52
|
+
# @rbs (String | Symbol name) -> Array[Integer]?
|
53
|
+
def self.[]: (String | Symbol name) -> Array[Integer]?
|
54
|
+
|
55
|
+
# Get a list of all color names
|
56
|
+
#
|
57
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
58
|
+
# @since 0.3.1
|
59
|
+
#
|
60
|
+
# @api private
|
61
|
+
#
|
62
|
+
# @return [Array<Symbol>] the color names
|
63
|
+
def self.names: () -> untyped
|
64
|
+
|
65
|
+
# Register a named color with an RGB or Hexadecimal value
|
66
|
+
#
|
67
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
68
|
+
# @since 0.3.2
|
69
|
+
#
|
70
|
+
# @api private
|
71
|
+
#
|
72
|
+
# @param name [String, Symbol] the name of the color being registered
|
73
|
+
# @param rgb_or_hex [Array<Integer>, String] the RGB or Hexadecimal value of the color
|
74
|
+
#
|
75
|
+
# @return [Boolean] `true` if the color was registered
|
76
|
+
# @rbs (String | Symbol name, Array[Integer] | String rgb_or_hex) -> void
|
77
|
+
def self.register: (String | Symbol name, Array[Integer] | String rgb_or_hex) -> void
|
78
|
+
|
79
|
+
# Install the color methods onto {Sai} and {Sai::Decorator}
|
80
|
+
#
|
81
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
82
|
+
# @since 0.3.2
|
83
|
+
#
|
84
|
+
# @api private
|
85
|
+
#
|
86
|
+
# @param name [Symbol] the name of the color to install
|
87
|
+
#
|
88
|
+
# @return [void]
|
89
|
+
# @rbs (Symbol name) -> void
|
90
|
+
private def self.install_color: (Symbol name) -> void
|
91
|
+
|
92
|
+
# Provision a color for the registry
|
93
|
+
#
|
94
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
95
|
+
# @since 0.3.2
|
96
|
+
#
|
97
|
+
# @api private
|
98
|
+
#
|
99
|
+
# @param name [Symbol] the name of the color to register
|
100
|
+
# @param rgb_or_hex [Array<Integer>, String] the RGB or Hexadecimal value of the color
|
101
|
+
#
|
102
|
+
# @return [void]
|
103
|
+
# @rbs (Symbol name, Array[Integer] | String rgb_or_hex) -> void
|
104
|
+
private def self.provision_color: (Symbol name, Array[Integer] | String rgb_or_hex) -> void
|
105
|
+
|
106
|
+
# The Sai named colors registry
|
107
|
+
#
|
108
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
109
|
+
# @since 0.3.2
|
110
|
+
#
|
111
|
+
# @api private
|
112
|
+
#
|
113
|
+
# @return [Hash{Symbol => Array<Integer>}] the named colors registry
|
114
|
+
private def self.registry: () -> untyped
|
115
|
+
|
116
|
+
# A Mutex for thread safety
|
117
|
+
#
|
118
|
+
# @author {https://aaronmallen.me Aaron Allen}
|
119
|
+
# @since 0.3.2
|
120
|
+
#
|
121
|
+
# @api private
|
122
|
+
#
|
123
|
+
# @return [Mutex] the thread lock
|
124
|
+
# @rbs () -> Mutex
|
125
|
+
private def self.thread_lock: () -> Mutex
|
126
|
+
end
|
127
|
+
end
|