optimistic-json 0.1.2 → 0.1.3
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/.ruby-version +1 -0
- data/CHANGELOG.md +6 -0
- data/Rakefile +5 -1
- data/lib/optimistic/json/parser.rb +28 -7
- data/lib/optimistic/json/version.rb +2 -1
- data/lib/optimistic/json.rb +1 -0
- data/sorbet/config +4 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +550 -0
- data/sorbet/rbi/gems/benchmark@0.5.0.rbi +621 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1068 -0
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
- data/sorbet/rbi/gems/gem-release@2.2.2.rbi +1335 -0
- data/sorbet/rbi/gems/io-console@0.6.0.rbi +9 -0
- data/sorbet/rbi/gems/json@2.7.0.rbi +1797 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +12986 -0
- data/sorbet/rbi/gems/logger@1.6.0.rbi +845 -0
- data/sorbet/rbi/gems/multi_json@1.15.0.rbi +218 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +147 -0
- data/sorbet/rbi/gems/parallel@1.28.0.rbi +270 -0
- data/sorbet/rbi/gems/parser@3.2.2.4.rbi +5154 -0
- data/sorbet/rbi/gems/prism@1.9.0.rbi +42224 -0
- data/sorbet/rbi/gems/psych@5.1.1.1.rbi +2321 -0
- data/sorbet/rbi/gems/racc@1.7.3.rbi +169 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +362 -0
- data/sorbet/rbi/gems/rake@13.1.0.rbi +3025 -0
- data/sorbet/rbi/gems/rbi@0.3.11.rbi +5505 -0
- data/sorbet/rbi/gems/rbs@4.0.2.rbi +6908 -0
- data/sorbet/rbi/gems/rdoc@6.6.0.rbi +9 -0
- data/sorbet/rbi/gems/regexp_parser@2.8.2.rbi +3268 -0
- data/sorbet/rbi/gems/reline@0.4.1.rbi +9 -0
- data/sorbet/rbi/gems/require-hooks@0.4.0.rbi +152 -0
- data/sorbet/rbi/gems/rexml@3.2.6.rbi +4798 -0
- data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +9405 -0
- data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +6013 -0
- data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +4750 -0
- data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1261 -0
- data/sorbet/rbi/gems/rspec@3.12.0.rbi +15 -0
- data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +6750 -0
- data/sorbet/rbi/gems/rubocop-capybara@2.19.0.rbi +1058 -0
- data/sorbet/rbi/gems/rubocop-factory_bot@2.24.0.rbi +875 -0
- data/sorbet/rbi/gems/rubocop-rspec@2.25.0.rbi +7696 -0
- data/sorbet/rbi/gems/rubocop@1.58.0.rbi +53790 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
- data/sorbet/rbi/gems/rubydex@0.2.3.rbi +787 -0
- data/sorbet/rbi/gems/spoom@1.7.14.rbi +6151 -0
- data/sorbet/rbi/gems/stringio@3.1.0.rbi +9 -0
- data/sorbet/rbi/gems/tapioca@0.19.1.rbi +3558 -0
- data/sorbet/rbi/gems/thor@1.5.0.rbi +3870 -0
- data/sorbet/rbi/gems/tsort@0.2.0.rbi +387 -0
- data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +64 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +4 -0
- metadata +54 -22
- data/sig/optimistic/json.rbs +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '08ee5067a3b7ef874e5984f616721e9c17bed1290db547aae2e5289ec33b7cd4'
|
|
4
|
+
data.tar.gz: 25fb09be11dac26cb7c51c86793f5c68deb31f1ae571fa866f6c0f85e9784182
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 50b769dc9870c36b4b085cd3829040d7255cfa7c7f2d61ab52f5517829e63f477d29953e725d62f042fd3272654a7c1b2c6c2397ae8e60760dfd16c88a1d0139
|
|
7
|
+
data.tar.gz: baa73fc379e765243fb7570d0b7046a02f1a3af7e7f9d88f07169011fe47dd330e5c3824a6287ce39eb67a268aec663751f6d54c470379ddeae67c9c9a09cb2e
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.4.2
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.1.3] - 2026-05-11
|
|
4
|
+
|
|
5
|
+
- Remove `sorbet-runtime` from runtime dependencies
|
|
6
|
+
- Add inline RBS type annotations to public and private API
|
|
7
|
+
- Expand CI matrix to test Ruby 3.1–3.4
|
|
8
|
+
|
|
3
9
|
## [0.1.2] - 2024-04-09
|
|
4
10
|
|
|
5
11
|
- Remove `debug` from runtime
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: false
|
|
2
3
|
|
|
3
4
|
require "logger"
|
|
4
5
|
require "multi_json"
|
|
@@ -11,6 +12,7 @@ module Optimistic
|
|
|
11
12
|
##
|
|
12
13
|
# Raised when there is no parser for a given token
|
|
13
14
|
class MissingParser < StandardError
|
|
15
|
+
#: (tokens: String, ?msg: String?) -> void
|
|
14
16
|
def initialize(tokens:, msg: nil)
|
|
15
17
|
super(msg || "No registered parser for `#{tokens[0]}`: #{tokens}")
|
|
16
18
|
@tokens = tokens
|
|
@@ -18,10 +20,11 @@ module Optimistic
|
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
##
|
|
21
|
-
# Raised when a supported token is found
|
|
23
|
+
# Raised when a supported token is found but is invalid
|
|
22
24
|
class InvalidToken < StandardError
|
|
25
|
+
#: (tokens: String, ?msg: String?) -> void
|
|
23
26
|
def initialize(tokens:, msg: nil)
|
|
24
|
-
super(msg || "
|
|
27
|
+
super(msg || "Invalid token starting with `#{tokens[0]}`: #{tokens}")
|
|
25
28
|
@tokens = tokens
|
|
26
29
|
end
|
|
27
30
|
end
|
|
@@ -37,13 +40,18 @@ module Optimistic
|
|
|
37
40
|
null: ["n"]
|
|
38
41
|
}.freeze
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
#: Logger
|
|
44
|
+
attr_accessor :logger
|
|
45
|
+
#: Hash[String, Method]
|
|
46
|
+
attr_reader :parsers
|
|
41
47
|
|
|
48
|
+
#: (?logger: Logger?) -> void
|
|
42
49
|
def initialize(logger: nil)
|
|
43
50
|
@logger = logger || ::Logger.new($stdout)
|
|
44
51
|
@parsers = setup_parsers
|
|
45
52
|
end
|
|
46
53
|
|
|
54
|
+
#: (String tokens) -> untyped
|
|
47
55
|
def parse(tokens)
|
|
48
56
|
::MultiJson.load(tokens)
|
|
49
57
|
rescue ::MultiJson::ParseError => e
|
|
@@ -58,12 +66,14 @@ module Optimistic
|
|
|
58
66
|
result[:data]
|
|
59
67
|
end
|
|
60
68
|
|
|
69
|
+
#: (String tokens, untyped data, String remaining_tokens) -> void
|
|
61
70
|
def handle_remaining_tokens(tokens, data, remaining_tokens)
|
|
62
71
|
logger.info({ tokens: tokens, data: data, remaining_tokens: remaining_tokens })
|
|
63
72
|
end
|
|
64
73
|
|
|
65
74
|
private
|
|
66
75
|
|
|
76
|
+
#: () -> Hash[String, Method]
|
|
67
77
|
def setup_parsers
|
|
68
78
|
parsers = {}
|
|
69
79
|
|
|
@@ -76,6 +86,7 @@ module Optimistic
|
|
|
76
86
|
parsers
|
|
77
87
|
end
|
|
78
88
|
|
|
89
|
+
#: (String tokens, StandardError err) -> { data: untyped, remainder: String }
|
|
79
90
|
def parse_any(tokens, err)
|
|
80
91
|
parser = parsers[tokens[0]]
|
|
81
92
|
|
|
@@ -84,11 +95,13 @@ module Optimistic
|
|
|
84
95
|
parser.call(tokens, err)
|
|
85
96
|
end
|
|
86
97
|
|
|
98
|
+
#: (String tokens, StandardError err) -> { data: untyped, remainder: String }
|
|
87
99
|
def parse_space(tokens, err)
|
|
88
100
|
tokens = tokens.lstrip
|
|
89
101
|
parse_any(tokens, err)
|
|
90
102
|
end
|
|
91
103
|
|
|
104
|
+
#: (String tokens, StandardError err) -> { data: Array[untyped], remainder: String }
|
|
92
105
|
def parse_array(tokens, err)
|
|
93
106
|
# Skip the opening bracket & remove any spaces
|
|
94
107
|
tokens = tokens[1..].lstrip
|
|
@@ -114,12 +127,13 @@ module Optimistic
|
|
|
114
127
|
{ data: data, remainder: tokens }
|
|
115
128
|
end
|
|
116
129
|
|
|
130
|
+
#: (String tokens, StandardError err) -> { data: Hash[String, untyped], remainder: String }
|
|
117
131
|
def parse_object(tokens, err)
|
|
118
132
|
tokens = tokens[1..].lstrip
|
|
119
133
|
data = {}
|
|
120
134
|
|
|
121
135
|
while tokens.length.positive?
|
|
122
|
-
# Skip the closing
|
|
136
|
+
# Skip the closing brace
|
|
123
137
|
if tokens[0] == "}"
|
|
124
138
|
tokens = tokens[1..]
|
|
125
139
|
break
|
|
@@ -147,6 +161,7 @@ module Optimistic
|
|
|
147
161
|
{ data: data, remainder: tokens }
|
|
148
162
|
end
|
|
149
163
|
|
|
164
|
+
#: (String tokens, StandardError _err) -> { data: (Integer | Float | String), remainder: String }
|
|
150
165
|
def parse_number(tokens, _err)
|
|
151
166
|
i = 0
|
|
152
167
|
while i < tokens.length
|
|
@@ -165,11 +180,12 @@ module Optimistic
|
|
|
165
180
|
{ data: number_or_tokens(tokens), remainder: "" }
|
|
166
181
|
end
|
|
167
182
|
|
|
183
|
+
#: (String tokens) -> (Integer | Float | String)
|
|
168
184
|
def number_or_tokens(tokens)
|
|
169
185
|
return 0 if tokens == "-"
|
|
170
186
|
|
|
171
187
|
if tokens.include?(".")
|
|
172
|
-
#
|
|
188
|
+
# Drop trailing dot and parse as float (e.g. "12." => 12.0)
|
|
173
189
|
tokens.end_with?(".") ? Float(tokens[0...-1]) : Float(tokens)
|
|
174
190
|
else
|
|
175
191
|
Integer(tokens)
|
|
@@ -179,6 +195,7 @@ module Optimistic
|
|
|
179
195
|
tokens
|
|
180
196
|
end
|
|
181
197
|
|
|
198
|
+
#: (String tokens, StandardError _err) -> { data: String, remainder: String }
|
|
182
199
|
def parse_string(tokens, _err)
|
|
183
200
|
i = 1
|
|
184
201
|
while i < tokens.length
|
|
@@ -192,27 +209,31 @@ module Optimistic
|
|
|
192
209
|
str = tokens[0..i]
|
|
193
210
|
tokens = tokens[(i + 1)..]
|
|
194
211
|
|
|
195
|
-
return { data: MultiJson.load(str), remainder: tokens }
|
|
212
|
+
return { data: ::MultiJson.load(str), remainder: tokens }
|
|
196
213
|
end
|
|
197
214
|
|
|
198
215
|
i += 1
|
|
199
216
|
end
|
|
200
217
|
|
|
201
|
-
{ data: MultiJson.load("#{tokens}\""), remainder: "" }
|
|
218
|
+
{ data: ::MultiJson.load("#{tokens}\""), remainder: "" }
|
|
202
219
|
end
|
|
203
220
|
|
|
221
|
+
#: (String tokens, StandardError err) -> { data: TrueClass, remainder: String }
|
|
204
222
|
def parse_true(tokens, err)
|
|
205
223
|
parse_token(tokens, "true", true, err)
|
|
206
224
|
end
|
|
207
225
|
|
|
226
|
+
#: (String tokens, StandardError err) -> { data: FalseClass, remainder: String }
|
|
208
227
|
def parse_false(tokens, err)
|
|
209
228
|
parse_token(tokens, "false", false, err)
|
|
210
229
|
end
|
|
211
230
|
|
|
231
|
+
#: (String tokens, StandardError err) -> { data: nil, remainder: String }
|
|
212
232
|
def parse_null(tokens, err)
|
|
213
233
|
parse_token(tokens, "null", nil, err)
|
|
214
234
|
end
|
|
215
235
|
|
|
236
|
+
#: [T] (String tokens, String token_str, T token_val, StandardError _err) -> { data: T, remainder: String }
|
|
216
237
|
def parse_token(tokens, token_str, token_val, _err)
|
|
217
238
|
i = token_str.length
|
|
218
239
|
|
data/lib/optimistic/json.rb
CHANGED
data/sorbet/config
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
**/*.rbi linguist-vendored=true
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This file was pulled from a central RBI files repository.
|
|
5
|
+
# Please run `bin/tapioca annotations` to update it.
|
|
6
|
+
|
|
7
|
+
module Rainbow
|
|
8
|
+
# @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12
|
|
9
|
+
sig { returns(T::Boolean) }
|
|
10
|
+
attr_accessor :enabled
|
|
11
|
+
|
|
12
|
+
class Color
|
|
13
|
+
sig { returns(Symbol) }
|
|
14
|
+
attr_reader :ground
|
|
15
|
+
|
|
16
|
+
sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) }
|
|
17
|
+
def self.build(ground, values); end
|
|
18
|
+
|
|
19
|
+
sig { params(hex: String).returns([Integer, Integer, Integer]) }
|
|
20
|
+
def self.parse_hex_color(hex); end
|
|
21
|
+
|
|
22
|
+
class Indexed < Rainbow::Color
|
|
23
|
+
sig { returns(Integer) }
|
|
24
|
+
attr_reader :num
|
|
25
|
+
|
|
26
|
+
sig { params(ground: Symbol, num: Integer).void }
|
|
27
|
+
def initialize(ground, num); end
|
|
28
|
+
|
|
29
|
+
sig { returns(T::Array[Integer]) }
|
|
30
|
+
def codes; end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class Named < Rainbow::Color::Indexed
|
|
34
|
+
NAMES = T.let(nil, T::Hash[Symbol, Integer])
|
|
35
|
+
|
|
36
|
+
sig { params(ground: Symbol, name: Symbol).void }
|
|
37
|
+
def initialize(ground, name); end
|
|
38
|
+
|
|
39
|
+
sig { returns(T::Array[Symbol]) }
|
|
40
|
+
def self.color_names; end
|
|
41
|
+
|
|
42
|
+
sig { returns(String) }
|
|
43
|
+
def self.valid_names; end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class RGB < Rainbow::Color::Indexed
|
|
47
|
+
sig { returns(Integer) }
|
|
48
|
+
attr_reader :r, :g, :b
|
|
49
|
+
|
|
50
|
+
sig { params(ground: Symbol, values: Integer).void }
|
|
51
|
+
def initialize(ground, *values); end
|
|
52
|
+
|
|
53
|
+
sig { returns(T::Array[Integer]) }
|
|
54
|
+
def codes; end
|
|
55
|
+
|
|
56
|
+
sig { params(value: Numeric).returns(Integer) }
|
|
57
|
+
def self.to_ansi_domain(value); end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class X11Named < Rainbow::Color::RGB
|
|
61
|
+
include Rainbow::X11ColorNames
|
|
62
|
+
|
|
63
|
+
sig { params(ground: Symbol, name: Symbol).void }
|
|
64
|
+
def initialize(ground, name); end
|
|
65
|
+
|
|
66
|
+
sig { returns(T::Array[Symbol]) }
|
|
67
|
+
def self.color_names; end
|
|
68
|
+
|
|
69
|
+
sig { returns(String) }
|
|
70
|
+
def self.valid_names; end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
sig { returns(Wrapper) }
|
|
75
|
+
def self.global; end
|
|
76
|
+
|
|
77
|
+
sig { returns(T::Boolean) }
|
|
78
|
+
def self.enabled; end
|
|
79
|
+
|
|
80
|
+
sig { params(value: T::Boolean).returns(T::Boolean) }
|
|
81
|
+
def self.enabled=(value); end
|
|
82
|
+
|
|
83
|
+
sig { params(string: String).returns(String) }
|
|
84
|
+
def self.uncolor(string); end
|
|
85
|
+
|
|
86
|
+
class NullPresenter < String
|
|
87
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
|
88
|
+
def color(*values); end
|
|
89
|
+
|
|
90
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
|
91
|
+
def foreground(*values); end
|
|
92
|
+
|
|
93
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
|
94
|
+
def fg(*values); end
|
|
95
|
+
|
|
96
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
|
97
|
+
def background(*values); end
|
|
98
|
+
|
|
99
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
|
100
|
+
def bg(*values); end
|
|
101
|
+
|
|
102
|
+
sig { returns(NullPresenter) }
|
|
103
|
+
def reset; end
|
|
104
|
+
|
|
105
|
+
sig { returns(NullPresenter) }
|
|
106
|
+
def bright; end
|
|
107
|
+
|
|
108
|
+
sig { returns(NullPresenter) }
|
|
109
|
+
def faint; end
|
|
110
|
+
|
|
111
|
+
sig { returns(NullPresenter) }
|
|
112
|
+
def italic; end
|
|
113
|
+
|
|
114
|
+
sig { returns(NullPresenter) }
|
|
115
|
+
def underline; end
|
|
116
|
+
|
|
117
|
+
sig { returns(NullPresenter) }
|
|
118
|
+
def blink; end
|
|
119
|
+
|
|
120
|
+
sig { returns(NullPresenter) }
|
|
121
|
+
def inverse; end
|
|
122
|
+
|
|
123
|
+
sig { returns(NullPresenter) }
|
|
124
|
+
def hide; end
|
|
125
|
+
|
|
126
|
+
sig { returns(NullPresenter) }
|
|
127
|
+
def cross_out; end
|
|
128
|
+
|
|
129
|
+
sig { returns(NullPresenter) }
|
|
130
|
+
def black; end
|
|
131
|
+
|
|
132
|
+
sig { returns(NullPresenter) }
|
|
133
|
+
def red; end
|
|
134
|
+
|
|
135
|
+
sig { returns(NullPresenter) }
|
|
136
|
+
def green; end
|
|
137
|
+
|
|
138
|
+
sig { returns(NullPresenter) }
|
|
139
|
+
def yellow; end
|
|
140
|
+
|
|
141
|
+
sig { returns(NullPresenter) }
|
|
142
|
+
def blue; end
|
|
143
|
+
|
|
144
|
+
sig { returns(NullPresenter) }
|
|
145
|
+
def magenta; end
|
|
146
|
+
|
|
147
|
+
sig { returns(NullPresenter) }
|
|
148
|
+
def cyan; end
|
|
149
|
+
|
|
150
|
+
sig { returns(NullPresenter) }
|
|
151
|
+
def white; end
|
|
152
|
+
|
|
153
|
+
sig { returns(NullPresenter) }
|
|
154
|
+
def bold; end
|
|
155
|
+
|
|
156
|
+
sig { returns(NullPresenter) }
|
|
157
|
+
def dark; end
|
|
158
|
+
|
|
159
|
+
sig { returns(NullPresenter) }
|
|
160
|
+
def strike; end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
class Presenter < String
|
|
164
|
+
TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer])
|
|
165
|
+
|
|
166
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
|
167
|
+
def color(*values); end
|
|
168
|
+
|
|
169
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
|
170
|
+
def foreground(*values); end
|
|
171
|
+
|
|
172
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
|
173
|
+
def fg(*values); end
|
|
174
|
+
|
|
175
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
|
176
|
+
def background(*values); end
|
|
177
|
+
|
|
178
|
+
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
|
179
|
+
def bg(*values); end
|
|
180
|
+
|
|
181
|
+
sig { returns(Presenter) }
|
|
182
|
+
def reset; end
|
|
183
|
+
|
|
184
|
+
sig { returns(Presenter) }
|
|
185
|
+
def bright; end
|
|
186
|
+
|
|
187
|
+
sig { returns(Presenter) }
|
|
188
|
+
def faint; end
|
|
189
|
+
|
|
190
|
+
sig { returns(Presenter) }
|
|
191
|
+
def italic; end
|
|
192
|
+
|
|
193
|
+
sig { returns(Presenter) }
|
|
194
|
+
def underline; end
|
|
195
|
+
|
|
196
|
+
sig { returns(Presenter) }
|
|
197
|
+
def blink; end
|
|
198
|
+
|
|
199
|
+
sig { returns(Presenter) }
|
|
200
|
+
def inverse; end
|
|
201
|
+
|
|
202
|
+
sig { returns(Presenter) }
|
|
203
|
+
def hide; end
|
|
204
|
+
|
|
205
|
+
sig { returns(Presenter) }
|
|
206
|
+
def cross_out; end
|
|
207
|
+
|
|
208
|
+
sig { returns(Presenter) }
|
|
209
|
+
def black; end
|
|
210
|
+
|
|
211
|
+
sig { returns(Presenter) }
|
|
212
|
+
def red; end
|
|
213
|
+
|
|
214
|
+
sig { returns(Presenter) }
|
|
215
|
+
def green; end
|
|
216
|
+
|
|
217
|
+
sig { returns(Presenter) }
|
|
218
|
+
def yellow; end
|
|
219
|
+
|
|
220
|
+
sig { returns(Presenter) }
|
|
221
|
+
def blue; end
|
|
222
|
+
|
|
223
|
+
sig { returns(Presenter) }
|
|
224
|
+
def magenta; end
|
|
225
|
+
|
|
226
|
+
sig { returns(Presenter) }
|
|
227
|
+
def cyan; end
|
|
228
|
+
|
|
229
|
+
sig { returns(Presenter) }
|
|
230
|
+
def white; end
|
|
231
|
+
|
|
232
|
+
sig { returns(Presenter) }
|
|
233
|
+
def bold; end
|
|
234
|
+
|
|
235
|
+
sig { returns(Presenter) }
|
|
236
|
+
def dark; end
|
|
237
|
+
|
|
238
|
+
sig { returns(Presenter) }
|
|
239
|
+
def strike; end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
class StringUtils
|
|
243
|
+
sig { params(string: String, codes: T::Array[Integer]).returns(String) }
|
|
244
|
+
def self.wrap_with_sgr(string, codes); end
|
|
245
|
+
|
|
246
|
+
sig { params(string: String).returns(String) }
|
|
247
|
+
def self.uncolor(string); end
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
VERSION = T.let(nil, String)
|
|
251
|
+
|
|
252
|
+
class Wrapper
|
|
253
|
+
sig { returns(T::Boolean) }
|
|
254
|
+
attr_accessor :enabled
|
|
255
|
+
|
|
256
|
+
sig { params(enabled: T::Boolean).void }
|
|
257
|
+
def initialize(enabled = true); end
|
|
258
|
+
|
|
259
|
+
sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) }
|
|
260
|
+
def wrap(string); end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
module X11ColorNames
|
|
264
|
+
NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]])
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
sig { params(string: String).returns(Rainbow::Presenter) }
|
|
269
|
+
def Rainbow(string); end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
**/*.rbi linguist-generated=true
|