e621stream 0.0.0
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 +7 -0
- data/LICENSE +21 -0
- data/README.md +35 -0
- data/lib/e621stream/client/options.rb +20 -0
- data/lib/e621stream/client.rb +211 -0
- data/lib/e621stream/close_codes.rb +23 -0
- data/lib/e621stream/event.rb +24 -0
- data/lib/e621stream/events.rb +29 -0
- data/lib/e621stream/stream_error.rb +18 -0
- data/lib/e621stream/version.rb +5 -0
- data/lib/e621stream.rb +18 -0
- data/sorbet/config +6 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/minitest.rbi +120 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/ast@2.4.3.rbi +550 -0
- data/sorbet/rbi/gems/async-http@0.105.0.rbi +1649 -0
- data/sorbet/rbi/gems/async-pool@0.12.0.rbi +219 -0
- data/sorbet/rbi/gems/async-websocket@0.30.2.rbi +271 -0
- data/sorbet/rbi/gems/async@2.46.0.rbi +2193 -0
- data/sorbet/rbi/gems/benchmark@0.5.0.rbi +495 -0
- data/sorbet/rbi/gems/console@1.38.0.rbi +1552 -0
- data/sorbet/rbi/gems/erb@6.0.7.rbi +1581 -0
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +153 -0
- data/sorbet/rbi/gems/fiber-annotation@0.2.0.rbi +62 -0
- data/sorbet/rbi/gems/fiber-local@1.1.0.rbi +36 -0
- data/sorbet/rbi/gems/fiber-storage@1.0.1.rbi +43 -0
- data/sorbet/rbi/gems/io-console@0.9.5.rbi +9 -0
- data/sorbet/rbi/gems/io-endpoint@0.19.0.rbi +1079 -0
- data/sorbet/rbi/gems/io-event@1.22.3.rbi +971 -0
- data/sorbet/rbi/gems/io-stream@0.14.0.rbi +805 -0
- data/sorbet/rbi/gems/json@3.1.0.rbi +1929 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.6.rbi +9 -0
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +189 -0
- data/sorbet/rbi/gems/logger@1.7.0.rbi +896 -0
- data/sorbet/rbi/gems/minitest@5.27.0.rbi +1499 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +147 -0
- data/sorbet/rbi/gems/openssl@4.0.2.rbi +4366 -0
- data/sorbet/rbi/gems/parallel@2.3.0.rbi +332 -0
- data/sorbet/rbi/gems/parser@3.3.13.0.rbi +5146 -0
- data/sorbet/rbi/gems/pp@0.6.4.rbi +373 -0
- data/sorbet/rbi/gems/prettyprint@0.2.1.rbi +476 -0
- data/sorbet/rbi/gems/prism@1.9.0.rbi +42213 -0
- data/sorbet/rbi/gems/protocol-hpack@1.5.1.rbi +418 -0
- data/sorbet/rbi/gems/protocol-http1@0.41.1.rbi +894 -0
- data/sorbet/rbi/gems/protocol-http2@0.29.2.rbi +2277 -0
- data/sorbet/rbi/gems/protocol-http@0.72.1.rbi +3801 -0
- data/sorbet/rbi/gems/protocol-rack@0.23.0.rbi +9 -0
- data/sorbet/rbi/gems/protocol-url@0.19.0.rbi +9 -0
- data/sorbet/rbi/gems/protocol-websocket@0.21.3.rbi +1087 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +169 -0
- data/sorbet/rbi/gems/rack@3.2.8.rbi +9 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +362 -0
- data/sorbet/rbi/gems/rake@13.4.2.rbi +3127 -0
- data/sorbet/rbi/gems/rbi@0.5.0.rbi +5875 -0
- data/sorbet/rbi/gems/rbs@4.2.0.rbi +7133 -0
- data/sorbet/rbi/gems/rdoc@8.1.0.rbi +9 -0
- data/sorbet/rbi/gems/regexp_parser@2.13.1.rbi +3500 -0
- data/sorbet/rbi/gems/reline@0.7.0.rbi +2449 -0
- data/sorbet/rbi/gems/require-hooks@0.5.1.rbi +152 -0
- data/sorbet/rbi/gems/rexml@3.4.4.rbi +4905 -0
- data/sorbet/rbi/gems/rubocop-ast@1.51.0.rbi +7230 -0
- data/sorbet/rbi/gems/rubocop-rake@0.7.1.rbi +314 -0
- data/sorbet/rbi/gems/rubocop@1.92.2.rbi +69094 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
- data/sorbet/rbi/gems/rubydex@0.4.4.rbi +1620 -0
- data/sorbet/rbi/gems/spoom@1.8.13.rbi +7380 -0
- data/sorbet/rbi/gems/tapioca@0.20.0.rbi +3752 -0
- data/sorbet/rbi/gems/thor@1.5.0.rbi +3870 -0
- data/sorbet/rbi/gems/tsort@0.2.0.rbi +389 -0
- data/sorbet/rbi/gems/unicode-display_width@3.3.0.rbi +130 -0
- data/sorbet/rbi/gems/unicode-emoji@4.3.0.rbi +254 -0
- data/sorbet/rbi/gems/zeitwerk@2.8.3.rbi +1178 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +4 -0
- metadata +175 -0
|
@@ -0,0 +1,1620 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `rubydex` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem rubydex`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# frozen_string_literal: true
|
|
9
|
+
# typed: strict
|
|
10
|
+
|
|
11
|
+
# This file is generated by `generate_ruby_rules.rs`. Do not edit this manually.
|
|
12
|
+
#
|
|
13
|
+
# pkg:gem/rubydex#lib/rubydex/version.rb:3
|
|
14
|
+
module Rubydex; end
|
|
15
|
+
|
|
16
|
+
# Raised when `MethodAliasDefinition#target` walks an alias chain that loops back on itself.
|
|
17
|
+
#
|
|
18
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:7
|
|
19
|
+
class Rubydex::AliasCycleError < ::Rubydex::Error; end
|
|
20
|
+
|
|
21
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
22
|
+
class Rubydex::AttrAccessorDefinition < ::Rubydex::Definition; end
|
|
23
|
+
|
|
24
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
25
|
+
class Rubydex::AttrReaderDefinition < ::Rubydex::Definition; end
|
|
26
|
+
|
|
27
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
28
|
+
class Rubydex::AttrWriterDefinition < ::Rubydex::Definition; end
|
|
29
|
+
|
|
30
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
31
|
+
class Rubydex::Class < ::Rubydex::Namespace
|
|
32
|
+
include ::Rubydex::Visibility
|
|
33
|
+
|
|
34
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
35
|
+
def visibility; end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
39
|
+
class Rubydex::ClassDefinition < ::Rubydex::Definition
|
|
40
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
41
|
+
sig { returns(T::Array[Rubydex::Mixin]) }
|
|
42
|
+
def mixins; end
|
|
43
|
+
|
|
44
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
45
|
+
sig { returns(String) }
|
|
46
|
+
def raw_name; end
|
|
47
|
+
|
|
48
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
49
|
+
sig { returns(T.nilable(Rubydex::ConstantReference)) }
|
|
50
|
+
def superclass; end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
54
|
+
class Rubydex::ClassVariable < ::Rubydex::Declaration
|
|
55
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
56
|
+
sig { returns(T::Array[T.untyped]) }
|
|
57
|
+
def references; end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
61
|
+
class Rubydex::ClassVariableDefinition < ::Rubydex::Definition; end
|
|
62
|
+
|
|
63
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
64
|
+
class Rubydex::Comment
|
|
65
|
+
# pkg:gem/rubydex#lib/rubydex/comment.rb:12
|
|
66
|
+
sig { params(string: String, location: Rubydex::Location).void }
|
|
67
|
+
def initialize(string:, location:); end
|
|
68
|
+
|
|
69
|
+
# pkg:gem/rubydex#lib/rubydex/comment.rb:9
|
|
70
|
+
sig { returns(Rubydex::Location) }
|
|
71
|
+
def location; end
|
|
72
|
+
|
|
73
|
+
# pkg:gem/rubydex#lib/rubydex/comment.rb:6
|
|
74
|
+
sig { returns(String) }
|
|
75
|
+
def string; end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
79
|
+
# The configuration of a workspace, parsed from its `rubydex.toml`. It carries both the settings that are global to
|
|
80
|
+
# every built-in tool, such as the workspace being analyzed, and the typed settings of each tool's own section (e.g.
|
|
81
|
+
# `[graph]`, `[linter]`).
|
|
82
|
+
class Rubydex::Config
|
|
83
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
84
|
+
# The linter's settings, read from the `[linter]` section.
|
|
85
|
+
sig { returns(Rubydex::LinterConfig) }
|
|
86
|
+
def linter; end
|
|
87
|
+
|
|
88
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
89
|
+
# The configured workspace path, which is usually PWD, except for editors that spawn language servers outside of pwd.
|
|
90
|
+
sig { returns(String) }
|
|
91
|
+
def workspace_path; end
|
|
92
|
+
|
|
93
|
+
class << self
|
|
94
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
95
|
+
# Loads the configuration file for `workspace_path/rubydex.toml` if it exists or uses the defaults.
|
|
96
|
+
sig { params(workspace_path: String).returns(Rubydex::Config) }
|
|
97
|
+
def load(workspace_path); end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Raised by `Config.load` when the workspace does not exist, or when its config file cannot be read or is malformed.
|
|
102
|
+
# A workspace with no config file at all is not an error.
|
|
103
|
+
#
|
|
104
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:11
|
|
105
|
+
class Rubydex::ConfigError < ::Rubydex::Error; end
|
|
106
|
+
|
|
107
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
108
|
+
class Rubydex::Constant < ::Rubydex::Declaration
|
|
109
|
+
include ::Rubydex::Visibility
|
|
110
|
+
|
|
111
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
112
|
+
sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
|
|
113
|
+
def references; end
|
|
114
|
+
|
|
115
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
116
|
+
def visibility; end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
120
|
+
class Rubydex::ConstantAlias < ::Rubydex::Declaration
|
|
121
|
+
include ::Rubydex::Visibility
|
|
122
|
+
|
|
123
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
124
|
+
sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
|
|
125
|
+
def references; end
|
|
126
|
+
|
|
127
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
128
|
+
sig { returns(T.nilable(Rubydex::Declaration)) }
|
|
129
|
+
def target; end
|
|
130
|
+
|
|
131
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
132
|
+
def visibility; end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
136
|
+
class Rubydex::ConstantAliasDefinition < ::Rubydex::Definition
|
|
137
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
138
|
+
sig { returns(String) }
|
|
139
|
+
def raw_name; end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
143
|
+
class Rubydex::ConstantDefinition < ::Rubydex::Definition
|
|
144
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
145
|
+
sig { returns(String) }
|
|
146
|
+
def raw_name; end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
150
|
+
class Rubydex::ConstantReference < ::Rubydex::Reference
|
|
151
|
+
abstract!
|
|
152
|
+
|
|
153
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
154
|
+
def initialize(_arg0, _arg1); end
|
|
155
|
+
|
|
156
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
157
|
+
sig { returns(Rubydex::Document) }
|
|
158
|
+
def document; end
|
|
159
|
+
|
|
160
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
161
|
+
sig { returns(Rubydex::Location) }
|
|
162
|
+
def location; end
|
|
163
|
+
|
|
164
|
+
class << self
|
|
165
|
+
def new(*args); end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
170
|
+
class Rubydex::ConstantVisibilityDefinition < ::Rubydex::Definition; end
|
|
171
|
+
|
|
172
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
173
|
+
class Rubydex::Declaration
|
|
174
|
+
abstract!
|
|
175
|
+
|
|
176
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
177
|
+
def initialize(_arg0, _arg1); end
|
|
178
|
+
|
|
179
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
180
|
+
sig { returns(T::Enumerable[Rubydex::Definition]) }
|
|
181
|
+
def definitions; end
|
|
182
|
+
|
|
183
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
184
|
+
sig { returns(String) }
|
|
185
|
+
def name; end
|
|
186
|
+
|
|
187
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
188
|
+
sig { returns(Rubydex::Declaration) }
|
|
189
|
+
def owner; end
|
|
190
|
+
|
|
191
|
+
# @abstract
|
|
192
|
+
#
|
|
193
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:18
|
|
194
|
+
sig { returns(T::Enumerable[Rubydex::Reference]) }
|
|
195
|
+
def references; end
|
|
196
|
+
|
|
197
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
198
|
+
sig { returns(String) }
|
|
199
|
+
def unqualified_name; end
|
|
200
|
+
|
|
201
|
+
class << self
|
|
202
|
+
private
|
|
203
|
+
|
|
204
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
205
|
+
def new(*_arg0); end
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
210
|
+
class Rubydex::Definition
|
|
211
|
+
abstract!
|
|
212
|
+
|
|
213
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
214
|
+
def initialize(_arg0, _arg1); end
|
|
215
|
+
|
|
216
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
217
|
+
sig { returns(T::Array[Rubydex::Comment]) }
|
|
218
|
+
def comments; end
|
|
219
|
+
|
|
220
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
221
|
+
sig { returns(T.nilable(Rubydex::Declaration)) }
|
|
222
|
+
def declaration; end
|
|
223
|
+
|
|
224
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
225
|
+
sig { returns(T::Boolean) }
|
|
226
|
+
def deprecated?; end
|
|
227
|
+
|
|
228
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
229
|
+
sig { returns(Rubydex::Document) }
|
|
230
|
+
def document; end
|
|
231
|
+
|
|
232
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
233
|
+
sig { returns(T::Array[Rubydex::Definition]) }
|
|
234
|
+
def lexical_nesting; end
|
|
235
|
+
|
|
236
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
237
|
+
sig { returns(T.nilable(Rubydex::Definition)) }
|
|
238
|
+
def lexical_owner; end
|
|
239
|
+
|
|
240
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
241
|
+
sig { returns(Rubydex::Location) }
|
|
242
|
+
def location; end
|
|
243
|
+
|
|
244
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
245
|
+
sig { returns(String) }
|
|
246
|
+
def name; end
|
|
247
|
+
|
|
248
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
249
|
+
sig { returns(T.nilable(Rubydex::Location)) }
|
|
250
|
+
def name_location; end
|
|
251
|
+
|
|
252
|
+
class << self
|
|
253
|
+
private
|
|
254
|
+
|
|
255
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
256
|
+
def new(*_arg0); end
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
261
|
+
class Rubydex::Diagnostic
|
|
262
|
+
# pkg:gem/rubydex#lib/rubydex/diagnostic.rb:23
|
|
263
|
+
sig do
|
|
264
|
+
params(
|
|
265
|
+
rule: T.class_of(Rubydex::Rule),
|
|
266
|
+
message: String,
|
|
267
|
+
location: Rubydex::Location,
|
|
268
|
+
related_information: T::Array[Rubydex::RelatedInformation]
|
|
269
|
+
).void
|
|
270
|
+
end
|
|
271
|
+
def initialize(rule:, message:, location:, related_information: []); end
|
|
272
|
+
|
|
273
|
+
# pkg:gem/rubydex#lib/rubydex/diagnostic.rb:12
|
|
274
|
+
sig { returns(Rubydex::Location) }
|
|
275
|
+
def location; end
|
|
276
|
+
|
|
277
|
+
# pkg:gem/rubydex#lib/rubydex/diagnostic.rb:9
|
|
278
|
+
sig { returns(String) }
|
|
279
|
+
def message; end
|
|
280
|
+
|
|
281
|
+
# pkg:gem/rubydex#lib/rubydex/diagnostic.rb:15
|
|
282
|
+
sig { returns(T::Array[Rubydex::RelatedInformation]) }
|
|
283
|
+
def related_information; end
|
|
284
|
+
|
|
285
|
+
# pkg:gem/rubydex#lib/rubydex/diagnostic.rb:6
|
|
286
|
+
sig { returns(T.class_of(Rubydex::Rule)) }
|
|
287
|
+
def rule; end
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
# A one based location intended for display purposes. This is what should be used when displaying a location to users,
|
|
291
|
+
# like in CLIs
|
|
292
|
+
#
|
|
293
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:86
|
|
294
|
+
class Rubydex::DisplayLocation < ::Rubydex::Location
|
|
295
|
+
# Normalize to zero-based for comparison with Location
|
|
296
|
+
#
|
|
297
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:108
|
|
298
|
+
sig { returns([String, Integer, Integer, Integer, Integer]) }
|
|
299
|
+
def comparable_values; end
|
|
300
|
+
|
|
301
|
+
# Returns itself
|
|
302
|
+
#
|
|
303
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:101
|
|
304
|
+
sig { returns(Rubydex::DisplayLocation) }
|
|
305
|
+
def to_display; end
|
|
306
|
+
|
|
307
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:113
|
|
308
|
+
sig { returns(String) }
|
|
309
|
+
def to_s; end
|
|
310
|
+
|
|
311
|
+
class << self
|
|
312
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:89
|
|
313
|
+
sig { params(prism_location: Prism::Location, uri: String).returns(T.noreturn) }
|
|
314
|
+
def from_prism(prism_location, uri:); end
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
319
|
+
class Rubydex::Document
|
|
320
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
321
|
+
def initialize(_arg0, _arg1); end
|
|
322
|
+
|
|
323
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
324
|
+
sig { returns(T::Enumerable[Rubydex::Definition]) }
|
|
325
|
+
def definitions; end
|
|
326
|
+
|
|
327
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
328
|
+
sig { returns(T::Enumerable[Rubydex::MethodReference]) }
|
|
329
|
+
def method_references; end
|
|
330
|
+
|
|
331
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
332
|
+
sig { returns(String) }
|
|
333
|
+
def uri; end
|
|
334
|
+
|
|
335
|
+
class << self
|
|
336
|
+
private
|
|
337
|
+
|
|
338
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
339
|
+
def new(*_arg0); end
|
|
340
|
+
end
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:4
|
|
344
|
+
class Rubydex::Error < ::StandardError; end
|
|
345
|
+
|
|
346
|
+
# Represents `extend SomeModule`
|
|
347
|
+
#
|
|
348
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:21
|
|
349
|
+
class Rubydex::Extend < ::Rubydex::Mixin; end
|
|
350
|
+
|
|
351
|
+
# pkg:gem/rubydex#lib/rubydex/failures.rb:4
|
|
352
|
+
class Rubydex::Failure
|
|
353
|
+
# pkg:gem/rubydex#lib/rubydex/failures.rb:9
|
|
354
|
+
sig { params(message: String).void }
|
|
355
|
+
def initialize(message); end
|
|
356
|
+
|
|
357
|
+
# pkg:gem/rubydex#lib/rubydex/failures.rb:6
|
|
358
|
+
sig { returns(String) }
|
|
359
|
+
def message; end
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
363
|
+
class Rubydex::GlobalVariable < ::Rubydex::Declaration
|
|
364
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
365
|
+
sig { returns(T::Array[T.untyped]) }
|
|
366
|
+
def references; end
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
370
|
+
class Rubydex::GlobalVariableAliasDefinition < ::Rubydex::Definition; end
|
|
371
|
+
|
|
372
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
373
|
+
class Rubydex::GlobalVariableDefinition < ::Rubydex::Definition; end
|
|
374
|
+
|
|
375
|
+
# The global graph representing all declarations and their relationships for the workspace
|
|
376
|
+
#
|
|
377
|
+
# Note: this class is partially defined in C to integrate with the Rust backend
|
|
378
|
+
#
|
|
379
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
380
|
+
class Rubydex::Graph
|
|
381
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
382
|
+
sig { params(fully_qualified_name: String).returns(T.nilable(Rubydex::Declaration)) }
|
|
383
|
+
def [](fully_qualified_name); end
|
|
384
|
+
|
|
385
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
386
|
+
sig { returns(T::Array[Rubydex::Failure]) }
|
|
387
|
+
def check_integrity; end
|
|
388
|
+
|
|
389
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
390
|
+
def complete_expression(*_arg0); end
|
|
391
|
+
|
|
392
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
393
|
+
def complete_method_argument(*_arg0); end
|
|
394
|
+
|
|
395
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
396
|
+
def complete_method_call(*_arg0); end
|
|
397
|
+
|
|
398
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
399
|
+
def complete_namespace_access(*_arg0); end
|
|
400
|
+
|
|
401
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
402
|
+
sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
|
|
403
|
+
def constant_references; end
|
|
404
|
+
|
|
405
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
406
|
+
sig { returns(T::Enumerable[Rubydex::Declaration]) }
|
|
407
|
+
def dead_code_candidates; end
|
|
408
|
+
|
|
409
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
410
|
+
sig { returns(T::Enumerable[Rubydex::Declaration]) }
|
|
411
|
+
def declarations; end
|
|
412
|
+
|
|
413
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
414
|
+
sig { params(uri: String).returns(T.nilable(Rubydex::Document)) }
|
|
415
|
+
def delete_document(uri); end
|
|
416
|
+
|
|
417
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
418
|
+
sig { returns(T::Array[Rubydex::Diagnostic]) }
|
|
419
|
+
def diagnostics; end
|
|
420
|
+
|
|
421
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
422
|
+
sig { params(uri: String).returns(T.nilable(Rubydex::Document)) }
|
|
423
|
+
def document(uri); end
|
|
424
|
+
|
|
425
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
426
|
+
sig { returns(T::Enumerable[Rubydex::Document]) }
|
|
427
|
+
def documents; end
|
|
428
|
+
|
|
429
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
430
|
+
sig { params(encoding: String).void }
|
|
431
|
+
def encoding=(encoding); end
|
|
432
|
+
|
|
433
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
434
|
+
sig { params(patterns: T::Array[String]).void }
|
|
435
|
+
def exclude_patterns(patterns); end
|
|
436
|
+
|
|
437
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
438
|
+
sig { returns(T::Array[String]) }
|
|
439
|
+
def excluded_patterns; end
|
|
440
|
+
|
|
441
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
442
|
+
sig { params(queries: String).returns(T::Enumerable[Rubydex::Declaration]) }
|
|
443
|
+
def fuzzy_search(*queries); end
|
|
444
|
+
|
|
445
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
446
|
+
sig { params(file_paths: T::Array[String]).returns(T::Array[String]) }
|
|
447
|
+
def index_all(file_paths); end
|
|
448
|
+
|
|
449
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
450
|
+
sig { params(uri: String, source: String, language_id: String).void }
|
|
451
|
+
def index_source(uri, source, language_id); end
|
|
452
|
+
|
|
453
|
+
# Index all files and dependencies of the workspace that exists in `workspace_path`
|
|
454
|
+
#
|
|
455
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:24
|
|
456
|
+
sig { returns(T::Array[String]) }
|
|
457
|
+
def index_workspace; end
|
|
458
|
+
|
|
459
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
460
|
+
# Returns the keyword object for the name, or `nil` if it is not a Ruby keyword
|
|
461
|
+
sig { params(name: String).returns(T.nilable(Rubydex::Keyword)) }
|
|
462
|
+
def keyword(name); end
|
|
463
|
+
|
|
464
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
465
|
+
# Loads the configuration in the graph.
|
|
466
|
+
sig { params(config: Rubydex::Config).void }
|
|
467
|
+
def load_config(config); end
|
|
468
|
+
|
|
469
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
470
|
+
sig { returns(T::Enumerable[Rubydex::MethodReference]) }
|
|
471
|
+
def method_references; end
|
|
472
|
+
|
|
473
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
474
|
+
sig { params(load_paths: T::Array[String]).returns(T::Array[String]) }
|
|
475
|
+
def require_paths(load_paths); end
|
|
476
|
+
|
|
477
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
478
|
+
sig { returns(T.self_type) }
|
|
479
|
+
def resolve; end
|
|
480
|
+
|
|
481
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
482
|
+
sig do
|
|
483
|
+
params(
|
|
484
|
+
name: String,
|
|
485
|
+
context: T.any(
|
|
486
|
+
T::Array[String],
|
|
487
|
+
Rubydex::ClassDefinition,
|
|
488
|
+
Rubydex::SingletonClassDefinition,
|
|
489
|
+
Rubydex::ModuleDefinition,
|
|
490
|
+
)
|
|
491
|
+
).returns(T.nilable(Rubydex::Declaration))
|
|
492
|
+
end
|
|
493
|
+
def resolve_constant(name, context); end
|
|
494
|
+
|
|
495
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
496
|
+
sig { params(require_path: String, load_paths: T::Array[String]).returns(T.nilable(Rubydex::Document)) }
|
|
497
|
+
def resolve_require_path(require_path, load_paths); end
|
|
498
|
+
|
|
499
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
500
|
+
sig { params(queries: String).returns(T::Enumerable[Rubydex::Declaration]) }
|
|
501
|
+
def search(*queries); end
|
|
502
|
+
|
|
503
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
504
|
+
# The root directory of the workspace being analyzed, which comes from the loaded `Rubydex::Config`
|
|
505
|
+
sig { returns(String) }
|
|
506
|
+
def workspace_path; end
|
|
507
|
+
|
|
508
|
+
# Returns all workspace paths that should be indexed
|
|
509
|
+
#
|
|
510
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:31
|
|
511
|
+
sig { returns(T::Array[String]) }
|
|
512
|
+
def workspace_paths; end
|
|
513
|
+
|
|
514
|
+
private
|
|
515
|
+
|
|
516
|
+
# Searches for the latest installation of the `rbs` gem and adds the paths for the core and stdlib RBS definitions
|
|
517
|
+
# to the list of paths. This method does not require `rbs` to be a part of the bundle. It searches for whatever
|
|
518
|
+
# latest installation of `rbs` exists in the system and fails silently if we can't find one
|
|
519
|
+
#
|
|
520
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:77
|
|
521
|
+
sig { params(paths: T::Array[String]).void }
|
|
522
|
+
def add_core_rbs_definition_paths(paths); end
|
|
523
|
+
|
|
524
|
+
# Gathers the paths we have to index for all workspace dependencies
|
|
525
|
+
#
|
|
526
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:53
|
|
527
|
+
sig { params(paths: T::Array[String]).void }
|
|
528
|
+
def add_workspace_dependency_paths(paths); end
|
|
529
|
+
|
|
530
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
531
|
+
def initialize_clone(_arg0); end
|
|
532
|
+
|
|
533
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
534
|
+
def initialize_copy(_arg0); end
|
|
535
|
+
|
|
536
|
+
class << self
|
|
537
|
+
# Creates a new graph with the loaded configuration. For use cases where the graph must be shared between
|
|
538
|
+
# different tools, do not use this. Create and own a `Config` object instead.
|
|
539
|
+
#
|
|
540
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:15
|
|
541
|
+
sig { params(workspace_path: String).returns(T.attached_class) }
|
|
542
|
+
def configure_for_workspace(workspace_path); end
|
|
543
|
+
end
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
# pkg:gem/rubydex#lib/rubydex/graph.rb:8
|
|
547
|
+
Rubydex::Graph::INDEXABLE_EXTENSIONS = T.let(T.unsafe(nil), Array)
|
|
548
|
+
|
|
549
|
+
# Represents `include SomeModule`
|
|
550
|
+
#
|
|
551
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:15
|
|
552
|
+
class Rubydex::Include < ::Rubydex::Mixin; end
|
|
553
|
+
|
|
554
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
555
|
+
class Rubydex::InstanceVariable < ::Rubydex::Declaration
|
|
556
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
557
|
+
sig { returns(T::Array[T.untyped]) }
|
|
558
|
+
def references; end
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
562
|
+
class Rubydex::InstanceVariableDefinition < ::Rubydex::Definition; end
|
|
563
|
+
|
|
564
|
+
# pkg:gem/rubydex#lib/rubydex/failures.rb:14
|
|
565
|
+
class Rubydex::IntegrityFailure < ::Rubydex::Failure; end
|
|
566
|
+
|
|
567
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
568
|
+
class Rubydex::Keyword
|
|
569
|
+
# pkg:gem/rubydex#lib/rubydex/keyword.rb:12
|
|
570
|
+
sig { params(name: String, documentation: String).void }
|
|
571
|
+
def initialize(name, documentation); end
|
|
572
|
+
|
|
573
|
+
# pkg:gem/rubydex#lib/rubydex/keyword.rb:9
|
|
574
|
+
sig { returns(String) }
|
|
575
|
+
def documentation; end
|
|
576
|
+
|
|
577
|
+
# pkg:gem/rubydex#lib/rubydex/keyword.rb:6
|
|
578
|
+
sig { returns(String) }
|
|
579
|
+
def name; end
|
|
580
|
+
end
|
|
581
|
+
|
|
582
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
583
|
+
class Rubydex::KeywordParameter
|
|
584
|
+
# pkg:gem/rubydex#lib/rubydex/keyword_parameter.rb:9
|
|
585
|
+
sig { params(name: String).void }
|
|
586
|
+
def initialize(name); end
|
|
587
|
+
|
|
588
|
+
# pkg:gem/rubydex#lib/rubydex/keyword_parameter.rb:6
|
|
589
|
+
sig { returns(String) }
|
|
590
|
+
def name; end
|
|
591
|
+
end
|
|
592
|
+
|
|
593
|
+
module Rubydex::Linter; end
|
|
594
|
+
|
|
595
|
+
# Base class for semantic lint rules, which collect their diagnostics by walking a resolved graph.
|
|
596
|
+
class Rubydex::Linter::CustomRule < Rubydex::Rule
|
|
597
|
+
abstract!
|
|
598
|
+
|
|
599
|
+
sig { params(graph: Rubydex::Graph, config: Rubydex::LinterConfig).void }
|
|
600
|
+
def initialize(graph, config:); end
|
|
601
|
+
|
|
602
|
+
sig do
|
|
603
|
+
params(
|
|
604
|
+
message: String,
|
|
605
|
+
location: Rubydex::Location,
|
|
606
|
+
related_information: T::Array[Rubydex::RelatedInformation]
|
|
607
|
+
).void
|
|
608
|
+
end
|
|
609
|
+
def add_diagnostic(message, location, related_information: []); end
|
|
610
|
+
|
|
611
|
+
sig { params(base_name: String).returns(T::Enumerable[Rubydex::Class]) }
|
|
612
|
+
def child_classes(base_name); end
|
|
613
|
+
|
|
614
|
+
sig { returns(Rubydex::LinterConfig) }
|
|
615
|
+
def config; end
|
|
616
|
+
|
|
617
|
+
sig { params(definition: Rubydex::Definition).returns(Rubydex::Location) }
|
|
618
|
+
def diagnostic_location(definition); end
|
|
619
|
+
|
|
620
|
+
sig { returns(T::Array[Rubydex::Diagnostic]) }
|
|
621
|
+
def diagnostics; end
|
|
622
|
+
|
|
623
|
+
sig { returns(Rubydex::Graph) }
|
|
624
|
+
def graph; end
|
|
625
|
+
|
|
626
|
+
sig { abstract.void }
|
|
627
|
+
def lint; end
|
|
628
|
+
|
|
629
|
+
sig { params(namespace: Rubydex::Namespace, method_name: String).returns(Rubydex::Method) }
|
|
630
|
+
def required_method(namespace, method_name); end
|
|
631
|
+
|
|
632
|
+
sig { params(name: String).returns(Rubydex::Namespace) }
|
|
633
|
+
def required_namespace(name); end
|
|
634
|
+
|
|
635
|
+
sig { returns(String) }
|
|
636
|
+
def rule_name; end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
module Rubydex::Linter::Helpers; end
|
|
640
|
+
|
|
641
|
+
module Rubydex::Linter::Helpers::PathHelpers
|
|
642
|
+
extend T::Helpers
|
|
643
|
+
|
|
644
|
+
requires_ancestor { Rubydex::Linter::CustomRule }
|
|
645
|
+
|
|
646
|
+
sig { params(definition: Rubydex::Definition).returns(T.nilable(String)) }
|
|
647
|
+
def path_for_definition(definition); end
|
|
648
|
+
|
|
649
|
+
sig { params(path: String, patterns: T::Array[String]).returns(T::Boolean) }
|
|
650
|
+
def path_matches_patterns?(path, patterns); end
|
|
651
|
+
|
|
652
|
+
sig do
|
|
653
|
+
params(
|
|
654
|
+
definitions: T::Enumerable[Rubydex::Definition],
|
|
655
|
+
excluded_patterns: T::Array[String]
|
|
656
|
+
).returns(T::Array[Rubydex::Definition])
|
|
657
|
+
end
|
|
658
|
+
def reject_definitions_in_paths(definitions, excluded_patterns); end
|
|
659
|
+
|
|
660
|
+
sig do
|
|
661
|
+
params(
|
|
662
|
+
definitions: T::Enumerable[Rubydex::Definition],
|
|
663
|
+
patterns: T::Array[String]
|
|
664
|
+
).returns(T::Array[Rubydex::Definition])
|
|
665
|
+
end
|
|
666
|
+
def select_definitions_in_paths(definitions, patterns); end
|
|
667
|
+
|
|
668
|
+
sig { params(path: String).returns(T::Boolean) }
|
|
669
|
+
def test_path?(path); end
|
|
670
|
+
|
|
671
|
+
class << self
|
|
672
|
+
sig { params(location: Rubydex::Location, workspace: String).returns(String) }
|
|
673
|
+
def display_path(location, workspace:); end
|
|
674
|
+
|
|
675
|
+
sig { params(path: String, patterns: T::Array[String], workspace: String, flags: Integer).returns(T::Boolean) }
|
|
676
|
+
def path_matches_patterns?(path, patterns, workspace:, flags: 0); end
|
|
677
|
+
end
|
|
678
|
+
|
|
679
|
+
EXCLUDE_FNMATCH_FLAGS = T.let(T.unsafe(nil), Integer)
|
|
680
|
+
TEST_PATHS = T.let(T.unsafe(nil), T::Array[String])
|
|
681
|
+
end
|
|
682
|
+
|
|
683
|
+
module Rubydex::Linter::Helpers::SourceAccessHelpers
|
|
684
|
+
sig { params(uri: String).returns(Rubydex::Location) }
|
|
685
|
+
def file_location(uri); end
|
|
686
|
+
|
|
687
|
+
sig { params(uri: String).returns(String) }
|
|
688
|
+
def path_for_uri(uri); end
|
|
689
|
+
|
|
690
|
+
sig { params(location: Rubydex::Location).returns(T.nilable(String)) }
|
|
691
|
+
def source_for_location(location); end
|
|
692
|
+
end
|
|
693
|
+
|
|
694
|
+
class Rubydex::Linter::MissingGraphDependencyError < StandardError
|
|
695
|
+
sig { params(rule_name: String, dependency: String).void }
|
|
696
|
+
def initialize(rule_name, dependency); end
|
|
697
|
+
end
|
|
698
|
+
|
|
699
|
+
class Rubydex::Linter::RuleLoadError < StandardError; end
|
|
700
|
+
|
|
701
|
+
class Rubydex::Linter::RuleLoader
|
|
702
|
+
class << self
|
|
703
|
+
sig { params(workspace_path: String).void }
|
|
704
|
+
def load(workspace_path); end
|
|
705
|
+
end
|
|
706
|
+
|
|
707
|
+
RULE_GLOB = T.let(T.unsafe(nil), String)
|
|
708
|
+
end
|
|
709
|
+
|
|
710
|
+
module Rubydex::Linter::Rules; end
|
|
711
|
+
|
|
712
|
+
class Rubydex::Linter::Rules::RuleStructure < Rubydex::Linter::CustomRule
|
|
713
|
+
include Rubydex::Linter::Helpers::SourceAccessHelpers
|
|
714
|
+
|
|
715
|
+
sig { override.void }
|
|
716
|
+
def lint; end
|
|
717
|
+
|
|
718
|
+
class << self
|
|
719
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
720
|
+
def default_severity; end
|
|
721
|
+
end
|
|
722
|
+
|
|
723
|
+
BASE_RULE_NAME = T.let(T.unsafe(nil), String)
|
|
724
|
+
RULE_FILE_PATTERNS = T.let(T.unsafe(nil), T::Array[String])
|
|
725
|
+
RULE_NAMESPACE = T.let(T.unsafe(nil), String)
|
|
726
|
+
TEST_FILE_PATTERNS = T.let(T.unsafe(nil), T::Array[String])
|
|
727
|
+
end
|
|
728
|
+
|
|
729
|
+
class Rubydex::Linter::Runner
|
|
730
|
+
sig do
|
|
731
|
+
params(
|
|
732
|
+
graph: Rubydex::Graph,
|
|
733
|
+
custom_rules: T::Array[T.class_of(Rubydex::Linter::CustomRule)],
|
|
734
|
+
config: Rubydex::LinterConfig
|
|
735
|
+
).void
|
|
736
|
+
end
|
|
737
|
+
def initialize(graph, custom_rules:, config:); end
|
|
738
|
+
|
|
739
|
+
sig { returns(T::Array[T.class_of(Rubydex::Linter::CustomRule)]) }
|
|
740
|
+
def custom_rules; end
|
|
741
|
+
|
|
742
|
+
sig { returns(Rubydex::Graph) }
|
|
743
|
+
def graph; end
|
|
744
|
+
|
|
745
|
+
sig { returns(T::Array[Rubydex::Diagnostic]) }
|
|
746
|
+
def run; end
|
|
747
|
+
end
|
|
748
|
+
|
|
749
|
+
# The linter's settings, read from the `[linter]` section of the configuration file.
|
|
750
|
+
#
|
|
751
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
752
|
+
class Rubydex::LinterConfig
|
|
753
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:13
|
|
754
|
+
sig { params(rules: T::Hash[String, Rubydex::RuleConfig]).void }
|
|
755
|
+
def initialize(rules); end
|
|
756
|
+
|
|
757
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:25
|
|
758
|
+
sig { params(rule_class: T.class_of(Rubydex::Rule)).returns(T::Array[String]) }
|
|
759
|
+
def excludes_for(rule_class); end
|
|
760
|
+
|
|
761
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:19
|
|
762
|
+
sig { params(rule_class: T.class_of(Rubydex::Rule)).returns(T::Boolean) }
|
|
763
|
+
def rule_enabled?(rule_class); end
|
|
764
|
+
|
|
765
|
+
# The configured rules, keyed by rule name. Only rules the configuration file mentions appear here, so a rule that
|
|
766
|
+
# was never configured is absent rather than present with its defaults.
|
|
767
|
+
#
|
|
768
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:10
|
|
769
|
+
def rules; end
|
|
770
|
+
|
|
771
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:30
|
|
772
|
+
sig { params(rule_class: T.class_of(Rubydex::Rule)).returns(T.nilable(T.class_of(Rubydex::Severity::Base))) }
|
|
773
|
+
def severity_for(rule_class); end
|
|
774
|
+
end
|
|
775
|
+
|
|
776
|
+
# A zero based internal location. Intended to be used for tool-to-tool communication, such as a language server
|
|
777
|
+
# communicating with an editor.
|
|
778
|
+
#
|
|
779
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
780
|
+
class Rubydex::Location
|
|
781
|
+
include ::Comparable
|
|
782
|
+
|
|
783
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:31
|
|
784
|
+
sig { params(uri: String, start_line: Integer, end_line: Integer, start_column: Integer, end_column: Integer).void }
|
|
785
|
+
def initialize(uri:, start_line:, end_line:, start_column:, end_column:); end
|
|
786
|
+
|
|
787
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:54
|
|
788
|
+
sig { params(other: T.untyped).returns(T.nilable(Integer)) }
|
|
789
|
+
def <=>(other); end
|
|
790
|
+
|
|
791
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:61
|
|
792
|
+
sig { returns([String, Integer, Integer, Integer, Integer]) }
|
|
793
|
+
def comparable_values; end
|
|
794
|
+
|
|
795
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:15
|
|
796
|
+
sig { returns(Integer) }
|
|
797
|
+
def end_column; end
|
|
798
|
+
|
|
799
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:15
|
|
800
|
+
sig { returns(Integer) }
|
|
801
|
+
def end_line; end
|
|
802
|
+
|
|
803
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:15
|
|
804
|
+
sig { returns(Integer) }
|
|
805
|
+
def start_column; end
|
|
806
|
+
|
|
807
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:15
|
|
808
|
+
sig { returns(Integer) }
|
|
809
|
+
def start_line; end
|
|
810
|
+
|
|
811
|
+
# Turns this zero based location into a one based location for display purposes.
|
|
812
|
+
#
|
|
813
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:68
|
|
814
|
+
sig { returns(Rubydex::DisplayLocation) }
|
|
815
|
+
def to_display; end
|
|
816
|
+
|
|
817
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:40
|
|
818
|
+
sig { returns(String) }
|
|
819
|
+
def to_file_path; end
|
|
820
|
+
|
|
821
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:79
|
|
822
|
+
sig { returns(String) }
|
|
823
|
+
def to_s; end
|
|
824
|
+
|
|
825
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:12
|
|
826
|
+
sig { returns(String) }
|
|
827
|
+
def uri; end
|
|
828
|
+
|
|
829
|
+
class << self
|
|
830
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:19
|
|
831
|
+
sig { params(prism_location: Prism::Location, uri: String).returns(Rubydex::Location) }
|
|
832
|
+
def from_prism(prism_location, uri:); end
|
|
833
|
+
end
|
|
834
|
+
end
|
|
835
|
+
|
|
836
|
+
# pkg:gem/rubydex#lib/rubydex/location.rb:7
|
|
837
|
+
class Rubydex::Location::NotFileUriError < ::StandardError; end
|
|
838
|
+
|
|
839
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
840
|
+
class Rubydex::Method < ::Rubydex::Declaration
|
|
841
|
+
include ::Rubydex::Visibility
|
|
842
|
+
|
|
843
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
844
|
+
sig { returns(T::Enumerable[Rubydex::MethodReference]) }
|
|
845
|
+
def references; end
|
|
846
|
+
|
|
847
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
848
|
+
def visibility; end
|
|
849
|
+
end
|
|
850
|
+
|
|
851
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
852
|
+
class Rubydex::MethodAliasDefinition < ::Rubydex::Definition
|
|
853
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
854
|
+
sig { returns(T::Array[Rubydex::Signature]) }
|
|
855
|
+
def signatures; end
|
|
856
|
+
|
|
857
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
858
|
+
sig { returns(T.nilable(Rubydex::Method)) }
|
|
859
|
+
def target; end
|
|
860
|
+
end
|
|
861
|
+
|
|
862
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
863
|
+
class Rubydex::MethodDefinition < ::Rubydex::Definition
|
|
864
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
865
|
+
sig { returns(T::Array[Rubydex::Signature]) }
|
|
866
|
+
def signatures; end
|
|
867
|
+
end
|
|
868
|
+
|
|
869
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
870
|
+
class Rubydex::MethodReference < ::Rubydex::Reference
|
|
871
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
872
|
+
def initialize(_arg0, _arg1); end
|
|
873
|
+
|
|
874
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
875
|
+
sig { returns(Rubydex::Document) }
|
|
876
|
+
def document; end
|
|
877
|
+
|
|
878
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
879
|
+
sig { returns(Rubydex::Location) }
|
|
880
|
+
def location; end
|
|
881
|
+
|
|
882
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
883
|
+
sig { returns(String) }
|
|
884
|
+
def name; end
|
|
885
|
+
|
|
886
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
887
|
+
sig { returns(T.nilable(Rubydex::Declaration)) }
|
|
888
|
+
def receiver; end
|
|
889
|
+
end
|
|
890
|
+
|
|
891
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
892
|
+
class Rubydex::MethodVisibilityDefinition < ::Rubydex::Definition; end
|
|
893
|
+
|
|
894
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:4
|
|
895
|
+
class Rubydex::Mixin
|
|
896
|
+
abstract!
|
|
897
|
+
|
|
898
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:9
|
|
899
|
+
sig { params(constant_reference: Rubydex::ConstantReference).void }
|
|
900
|
+
def initialize(constant_reference); end
|
|
901
|
+
|
|
902
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:6
|
|
903
|
+
def constant_reference; end
|
|
904
|
+
end
|
|
905
|
+
|
|
906
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
907
|
+
class Rubydex::Module < ::Rubydex::Namespace
|
|
908
|
+
include ::Rubydex::Visibility
|
|
909
|
+
|
|
910
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
911
|
+
def visibility; end
|
|
912
|
+
end
|
|
913
|
+
|
|
914
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
915
|
+
class Rubydex::ModuleDefinition < ::Rubydex::Definition
|
|
916
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
917
|
+
sig { returns(T::Array[Rubydex::Mixin]) }
|
|
918
|
+
def mixins; end
|
|
919
|
+
|
|
920
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
921
|
+
sig { returns(String) }
|
|
922
|
+
def raw_name; end
|
|
923
|
+
end
|
|
924
|
+
|
|
925
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
926
|
+
class Rubydex::Namespace < ::Rubydex::Declaration
|
|
927
|
+
abstract!
|
|
928
|
+
|
|
929
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
930
|
+
sig { returns(T::Enumerable[Rubydex::Namespace]) }
|
|
931
|
+
def ancestors; end
|
|
932
|
+
|
|
933
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
934
|
+
sig { returns(T::Enumerable[Rubydex::Namespace]) }
|
|
935
|
+
def descendants; end
|
|
936
|
+
|
|
937
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
938
|
+
def find_member(*_arg0); end
|
|
939
|
+
|
|
940
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:25
|
|
941
|
+
sig { params(ancestor_names: String).returns(T::Boolean) }
|
|
942
|
+
def has_ancestor?(*ancestor_names); end
|
|
943
|
+
|
|
944
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
945
|
+
sig { params(name: String).returns(T.nilable(Rubydex::Declaration)) }
|
|
946
|
+
def member(name); end
|
|
947
|
+
|
|
948
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
949
|
+
sig { returns(T::Enumerable[Rubydex::Declaration]) }
|
|
950
|
+
def members; end
|
|
951
|
+
|
|
952
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
953
|
+
sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
|
|
954
|
+
def references; end
|
|
955
|
+
|
|
956
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
957
|
+
sig { returns(T.nilable(Rubydex::SingletonClass)) }
|
|
958
|
+
def singleton_class; end
|
|
959
|
+
end
|
|
960
|
+
|
|
961
|
+
# Represents `prepend SomeModule`
|
|
962
|
+
#
|
|
963
|
+
# pkg:gem/rubydex#lib/rubydex/mixin.rb:18
|
|
964
|
+
class Rubydex::Prepend < ::Rubydex::Mixin; end
|
|
965
|
+
|
|
966
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
967
|
+
class Rubydex::Query
|
|
968
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
969
|
+
sig { params(graph: Rubydex::Graph).returns(Rubydex::Query::Result) }
|
|
970
|
+
def run(graph); end
|
|
971
|
+
|
|
972
|
+
class << self
|
|
973
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
974
|
+
sig { params(query: String).returns(Rubydex::Query) }
|
|
975
|
+
def parse(query); end
|
|
976
|
+
|
|
977
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
978
|
+
sig { params(format: T.any(String, Symbol)).returns(String) }
|
|
979
|
+
def schema(format = :table); end
|
|
980
|
+
end
|
|
981
|
+
end
|
|
982
|
+
|
|
983
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
984
|
+
# The columns and rows produced by one run of a query. Enumerable over its rows.
|
|
985
|
+
class Rubydex::Query::Result
|
|
986
|
+
include ::Enumerable
|
|
987
|
+
include Enumerable
|
|
988
|
+
extend T::Generic
|
|
989
|
+
|
|
990
|
+
Elem = type_member { { fixed: T::Hash[String, T.untyped] } }
|
|
991
|
+
|
|
992
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
993
|
+
sig { returns(T::Array[String]) }
|
|
994
|
+
def columns; end
|
|
995
|
+
|
|
996
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
997
|
+
def each; end
|
|
998
|
+
|
|
999
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1000
|
+
sig { returns(T::Boolean) }
|
|
1001
|
+
def empty?; end
|
|
1002
|
+
|
|
1003
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1004
|
+
sig { returns(Integer) }
|
|
1005
|
+
def length; end
|
|
1006
|
+
|
|
1007
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1008
|
+
sig { params(format: T.any(String, Symbol)).returns(String) }
|
|
1009
|
+
def render(format = :table); end
|
|
1010
|
+
|
|
1011
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1012
|
+
sig { returns(T::Array[T::Hash[String, T.untyped]]) }
|
|
1013
|
+
def rows; end
|
|
1014
|
+
|
|
1015
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1016
|
+
sig { returns(Integer) }
|
|
1017
|
+
def size; end
|
|
1018
|
+
|
|
1019
|
+
class << self
|
|
1020
|
+
# A result only comes from `Query#run`. The C extension undefines `new`, so a call raises.
|
|
1021
|
+
sig { returns(T.noreturn) }
|
|
1022
|
+
def new; end
|
|
1023
|
+
end
|
|
1024
|
+
end
|
|
1025
|
+
|
|
1026
|
+
# Raised when a Cypher query cannot be parsed or cannot run. `Rubydex::Query` raises one of its
|
|
1027
|
+
# subclasses; rescue this class to catch either.
|
|
1028
|
+
#
|
|
1029
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:27
|
|
1030
|
+
class Rubydex::QueryError < ::Rubydex::Error; end
|
|
1031
|
+
|
|
1032
|
+
# Raised by `Query#run` when a parsed query fails while it runs against a graph, for example
|
|
1033
|
+
# because it names an unknown property or relationship type.
|
|
1034
|
+
#
|
|
1035
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:34
|
|
1036
|
+
class Rubydex::QueryExecutionError < ::Rubydex::QueryError; end
|
|
1037
|
+
|
|
1038
|
+
# Raised by `Query.parse` when the query is not valid Cypher.
|
|
1039
|
+
#
|
|
1040
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:30
|
|
1041
|
+
class Rubydex::QuerySyntaxError < ::Rubydex::QueryError; end
|
|
1042
|
+
|
|
1043
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1044
|
+
class Rubydex::Reference
|
|
1045
|
+
abstract!
|
|
1046
|
+
|
|
1047
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1048
|
+
def initialize(_arg0, _arg1); end
|
|
1049
|
+
|
|
1050
|
+
# pkg:gem/rubydex#lib/rubydex/reference.rb:6
|
|
1051
|
+
def location; end
|
|
1052
|
+
|
|
1053
|
+
class << self
|
|
1054
|
+
private
|
|
1055
|
+
|
|
1056
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1057
|
+
def new(*_arg0); end
|
|
1058
|
+
end
|
|
1059
|
+
end
|
|
1060
|
+
|
|
1061
|
+
# pkg:gem/rubydex#lib/rubydex/related_information.rb:4
|
|
1062
|
+
class Rubydex::RelatedInformation
|
|
1063
|
+
# pkg:gem/rubydex#lib/rubydex/related_information.rb:12
|
|
1064
|
+
sig { params(message: String, location: Rubydex::Location).void }
|
|
1065
|
+
def initialize(message, location); end
|
|
1066
|
+
|
|
1067
|
+
# pkg:gem/rubydex#lib/rubydex/related_information.rb:9
|
|
1068
|
+
sig { returns(Rubydex::Location) }
|
|
1069
|
+
def location; end
|
|
1070
|
+
|
|
1071
|
+
# pkg:gem/rubydex#lib/rubydex/related_information.rb:6
|
|
1072
|
+
sig { returns(String) }
|
|
1073
|
+
def message; end
|
|
1074
|
+
end
|
|
1075
|
+
|
|
1076
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1077
|
+
class Rubydex::ResolvedConstantReference < ::Rubydex::ConstantReference
|
|
1078
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1079
|
+
sig { returns(Rubydex::Declaration) }
|
|
1080
|
+
def declaration; end
|
|
1081
|
+
end
|
|
1082
|
+
|
|
1083
|
+
# The identity of a rule. We have different mechanisms for collecting diagnostics, but they all share the same
|
|
1084
|
+
# fundamental identity: a unique name and a default severity that may be overridden by the user's configuration.
|
|
1085
|
+
#
|
|
1086
|
+
# By keeping this identity concept unified, we are able to treat rules consistently regardless of whether they were
|
|
1087
|
+
# collected by the graph during the analysis or by the linter afterwards.
|
|
1088
|
+
#
|
|
1089
|
+
# @abstract
|
|
1090
|
+
#
|
|
1091
|
+
# pkg:gem/rubydex#lib/rubydex/rule.rb:11
|
|
1092
|
+
class Rubydex::Rule
|
|
1093
|
+
abstract!
|
|
1094
|
+
|
|
1095
|
+
class << self
|
|
1096
|
+
abstract!
|
|
1097
|
+
|
|
1098
|
+
# @abstract
|
|
1099
|
+
#
|
|
1100
|
+
# pkg:gem/rubydex#lib/rubydex/rule.rb:21
|
|
1101
|
+
sig { abstract.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1102
|
+
def default_severity; end
|
|
1103
|
+
|
|
1104
|
+
# pkg:gem/rubydex#lib/rubydex/rule.rb:14
|
|
1105
|
+
sig { returns(String) }
|
|
1106
|
+
def rule_name; end
|
|
1107
|
+
|
|
1108
|
+
# Returns the resolved severity of the rule based on the given configuration.
|
|
1109
|
+
#
|
|
1110
|
+
# pkg:gem/rubydex#lib/rubydex/rule.rb:28
|
|
1111
|
+
sig { params(config: Rubydex::LinterConfig).returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1112
|
+
def severity(config); end
|
|
1113
|
+
end
|
|
1114
|
+
end
|
|
1115
|
+
|
|
1116
|
+
# The settings of a single linter rule, read from a `[linter.rules.RuleName]` table.
|
|
1117
|
+
#
|
|
1118
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1119
|
+
class Rubydex::RuleConfig
|
|
1120
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:47
|
|
1121
|
+
sig do
|
|
1122
|
+
params(
|
|
1123
|
+
name: String,
|
|
1124
|
+
enabled: T::Boolean,
|
|
1125
|
+
exclude_patterns: T::Array[String],
|
|
1126
|
+
severity: T.nilable(T.class_of(Rubydex::Severity::Base))
|
|
1127
|
+
).void
|
|
1128
|
+
end
|
|
1129
|
+
def initialize(name, enabled, exclude_patterns = [], severity = nil); end
|
|
1130
|
+
|
|
1131
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:55
|
|
1132
|
+
sig { returns(T::Boolean) }
|
|
1133
|
+
def enabled?; end
|
|
1134
|
+
|
|
1135
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:41
|
|
1136
|
+
def exclude_patterns; end
|
|
1137
|
+
|
|
1138
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:38
|
|
1139
|
+
def name; end
|
|
1140
|
+
|
|
1141
|
+
# pkg:gem/rubydex#lib/rubydex/config.rb:44
|
|
1142
|
+
def severity; end
|
|
1143
|
+
end
|
|
1144
|
+
|
|
1145
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1146
|
+
module Rubydex::Rules; end
|
|
1147
|
+
|
|
1148
|
+
# Dynamic ancestor references cannot be reasoned about statically because they depend on runtime values. The
|
|
1149
|
+
# program may still be valid, but the quality of the analysis degrades. In the case of ancestors, since they
|
|
1150
|
+
# influence constant resolution, the degradation may be more impactful than other dynamic references.
|
|
1151
|
+
#
|
|
1152
|
+
# ```ruby
|
|
1153
|
+
# class Foo < var
|
|
1154
|
+
# ^^^ Dynamic ancestor reference. This might be correct, but it cannot be understood by the analysis.
|
|
1155
|
+
# include SomeClass.method_call
|
|
1156
|
+
# ^^^^^^^^^^^^^^^^^^^^^ Dynamic ancestor reference.
|
|
1157
|
+
# end
|
|
1158
|
+
# ```
|
|
1159
|
+
#
|
|
1160
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_ancestor.rb:19
|
|
1161
|
+
class Rubydex::Rules::DynamicAncestor < ::Rubydex::Rule
|
|
1162
|
+
class << self
|
|
1163
|
+
# @override
|
|
1164
|
+
#
|
|
1165
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_ancestor.rb:23
|
|
1166
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1167
|
+
def default_severity; end
|
|
1168
|
+
end
|
|
1169
|
+
end
|
|
1170
|
+
|
|
1171
|
+
# Dynamic constant references cannot be reasoned about statically because they depend on runtime values. The
|
|
1172
|
+
# program may still be valid, but the quality of the analysis degrades.
|
|
1173
|
+
#
|
|
1174
|
+
# ```ruby
|
|
1175
|
+
# var::Foo
|
|
1176
|
+
# ^^^^^^^^ Dynamic constant reference. This might be correct, but it cannot be understood by the analysis.
|
|
1177
|
+
# ```
|
|
1178
|
+
#
|
|
1179
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_constant_reference.rb:15
|
|
1180
|
+
class Rubydex::Rules::DynamicConstantReference < ::Rubydex::Rule
|
|
1181
|
+
class << self
|
|
1182
|
+
# @override
|
|
1183
|
+
#
|
|
1184
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_constant_reference.rb:19
|
|
1185
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1186
|
+
def default_severity; end
|
|
1187
|
+
end
|
|
1188
|
+
end
|
|
1189
|
+
|
|
1190
|
+
# Dynamic singleton targets cannot be reasoned about statically because they depend on runtime values. The program
|
|
1191
|
+
# may still be valid, but the quality of the analysis degrades.
|
|
1192
|
+
#
|
|
1193
|
+
# ```ruby
|
|
1194
|
+
# class << var
|
|
1195
|
+
# ^^^ Dynamic singleton target. This might be correct, but it cannot be understood by the analysis.
|
|
1196
|
+
# end
|
|
1197
|
+
#
|
|
1198
|
+
# def var.bar
|
|
1199
|
+
# ^^^ Dynamic singleton target.
|
|
1200
|
+
# end
|
|
1201
|
+
# ```
|
|
1202
|
+
#
|
|
1203
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_singleton_definition.rb:20
|
|
1204
|
+
class Rubydex::Rules::DynamicSingletonDefinition < ::Rubydex::Rule
|
|
1205
|
+
class << self
|
|
1206
|
+
# @override
|
|
1207
|
+
#
|
|
1208
|
+
# pkg:gem/rubydex#lib/rubydex/rules/dynamic_singleton_definition.rb:24
|
|
1209
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1210
|
+
def default_severity; end
|
|
1211
|
+
end
|
|
1212
|
+
end
|
|
1213
|
+
|
|
1214
|
+
# Constant visibility operations that depend on dynamic values cannot be reasoned about statically because they
|
|
1215
|
+
# depend on runtime values. The program may still be valid, but the quality of the analysis degrades.
|
|
1216
|
+
#
|
|
1217
|
+
# ```ruby
|
|
1218
|
+
# var.private_constant :Foo
|
|
1219
|
+
# ^^^ Invalid constant visibility. This might be correct, but it cannot be understood by the analysis.
|
|
1220
|
+
#
|
|
1221
|
+
# private_constant(var)
|
|
1222
|
+
# ^^^ Invalid constant visibility.
|
|
1223
|
+
# ```
|
|
1224
|
+
#
|
|
1225
|
+
# pkg:gem/rubydex#lib/rubydex/rules/invalid_constant_visibility.rb:18
|
|
1226
|
+
class Rubydex::Rules::InvalidConstantVisibility < ::Rubydex::Rule
|
|
1227
|
+
class << self
|
|
1228
|
+
# @override
|
|
1229
|
+
#
|
|
1230
|
+
# pkg:gem/rubydex#lib/rubydex/rules/invalid_constant_visibility.rb:22
|
|
1231
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1232
|
+
def default_severity; end
|
|
1233
|
+
end
|
|
1234
|
+
end
|
|
1235
|
+
|
|
1236
|
+
# Method visibility operations that depend on dynamic values cannot be reasoned about statically because they
|
|
1237
|
+
# depend on runtime values. The program may still be valid, but the quality of the analysis degrades.
|
|
1238
|
+
#
|
|
1239
|
+
# ```ruby
|
|
1240
|
+
# var.private :foo
|
|
1241
|
+
# ^^^ Invalid method visibility. This might be correct, but it cannot be understood by the analysis.
|
|
1242
|
+
#
|
|
1243
|
+
# private(var)
|
|
1244
|
+
# ^^^ Invalid method visibility.
|
|
1245
|
+
# ```
|
|
1246
|
+
#
|
|
1247
|
+
# pkg:gem/rubydex#lib/rubydex/rules/invalid_method_visibility.rb:18
|
|
1248
|
+
class Rubydex::Rules::InvalidMethodVisibility < ::Rubydex::Rule
|
|
1249
|
+
class << self
|
|
1250
|
+
# @override
|
|
1251
|
+
#
|
|
1252
|
+
# pkg:gem/rubydex#lib/rubydex/rules/invalid_method_visibility.rb:22
|
|
1253
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1254
|
+
def default_severity; end
|
|
1255
|
+
end
|
|
1256
|
+
end
|
|
1257
|
+
|
|
1258
|
+
# A parse error represents invalid Ruby syntax and a program that will fail to execute. For example, a missing
|
|
1259
|
+
# `end`, an unterminated string, a missing parenthesis.
|
|
1260
|
+
#
|
|
1261
|
+
# ```ruby
|
|
1262
|
+
# class Foo
|
|
1263
|
+
# ^^^^^ Syntax error. Missing end token
|
|
1264
|
+
# ```
|
|
1265
|
+
#
|
|
1266
|
+
# pkg:gem/rubydex#lib/rubydex/rules/parse_error.rb:15
|
|
1267
|
+
class Rubydex::Rules::ParseError < ::Rubydex::Rule
|
|
1268
|
+
class << self
|
|
1269
|
+
# @override
|
|
1270
|
+
#
|
|
1271
|
+
# pkg:gem/rubydex#lib/rubydex/rules/parse_error.rb:19
|
|
1272
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1273
|
+
def default_severity; end
|
|
1274
|
+
end
|
|
1275
|
+
end
|
|
1276
|
+
|
|
1277
|
+
# Parse warnings represent code that has valid syntax, but may not do what the developer expects. For example,
|
|
1278
|
+
# local variables that are completely unused or usage in a void context (creating a line of code that does
|
|
1279
|
+
# nothing).
|
|
1280
|
+
#
|
|
1281
|
+
# ```ruby
|
|
1282
|
+
# CONST = 1
|
|
1283
|
+
# CONST
|
|
1284
|
+
# ^^^^^ Constant used in void context (the expression does nothing).
|
|
1285
|
+
# puts CONST + 2
|
|
1286
|
+
# ```
|
|
1287
|
+
#
|
|
1288
|
+
# pkg:gem/rubydex#lib/rubydex/rules/parse_warning.rb:18
|
|
1289
|
+
class Rubydex::Rules::ParseWarning < ::Rubydex::Rule
|
|
1290
|
+
class << self
|
|
1291
|
+
# @override
|
|
1292
|
+
#
|
|
1293
|
+
# pkg:gem/rubydex#lib/rubydex/rules/parse_warning.rb:22
|
|
1294
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1295
|
+
def default_severity; end
|
|
1296
|
+
end
|
|
1297
|
+
end
|
|
1298
|
+
|
|
1299
|
+
# The top level of a Ruby program is the special <main> object. It is not possible to use `include self` or
|
|
1300
|
+
# `extend self` on that object.
|
|
1301
|
+
#
|
|
1302
|
+
# ```ruby
|
|
1303
|
+
# include self
|
|
1304
|
+
# ^^^^ Cannot include self at the top level
|
|
1305
|
+
# extend self
|
|
1306
|
+
# ^^^^ Cannot extend self at the top level
|
|
1307
|
+
# ```
|
|
1308
|
+
#
|
|
1309
|
+
# pkg:gem/rubydex#lib/rubydex/rules/top_level_mixin_self.rb:17
|
|
1310
|
+
class Rubydex::Rules::TopLevelMixinSelf < ::Rubydex::Rule
|
|
1311
|
+
class << self
|
|
1312
|
+
# @override
|
|
1313
|
+
#
|
|
1314
|
+
# pkg:gem/rubydex#lib/rubydex/rules/top_level_mixin_self.rb:21
|
|
1315
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1316
|
+
def default_severity; end
|
|
1317
|
+
end
|
|
1318
|
+
end
|
|
1319
|
+
|
|
1320
|
+
# Undefined constant visibility target means the analysis couldn't find the definition for the constant the code is
|
|
1321
|
+
# attempting to change visibility of. It could be defined through meta-programming or it indeed does not exist.
|
|
1322
|
+
#
|
|
1323
|
+
# ```ruby
|
|
1324
|
+
# class Foo
|
|
1325
|
+
# private_constant :Bar
|
|
1326
|
+
# ^^^ Undefined constant visibility target. The constant `Bar` is not defined.
|
|
1327
|
+
# end
|
|
1328
|
+
# ```
|
|
1329
|
+
#
|
|
1330
|
+
# pkg:gem/rubydex#lib/rubydex/rules/undefined_constant_visibility_target.rb:17
|
|
1331
|
+
class Rubydex::Rules::UndefinedConstantVisibilityTarget < ::Rubydex::Rule
|
|
1332
|
+
class << self
|
|
1333
|
+
# @override
|
|
1334
|
+
#
|
|
1335
|
+
# pkg:gem/rubydex#lib/rubydex/rules/undefined_constant_visibility_target.rb:21
|
|
1336
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1337
|
+
def default_severity; end
|
|
1338
|
+
end
|
|
1339
|
+
end
|
|
1340
|
+
|
|
1341
|
+
# Undefined method visibility target means the analysis couldn't find the definition for the method the code is
|
|
1342
|
+
# attempting to change visibility of. It could be defined through meta-programming or it indeed does not exist.
|
|
1343
|
+
#
|
|
1344
|
+
# ```ruby
|
|
1345
|
+
# class Foo
|
|
1346
|
+
# private :bar
|
|
1347
|
+
# ^^^ Undefined method visibility target. The method `bar` is not defined.
|
|
1348
|
+
# end
|
|
1349
|
+
# ```
|
|
1350
|
+
#
|
|
1351
|
+
# pkg:gem/rubydex#lib/rubydex/rules/undefined_method_visibility_target.rb:17
|
|
1352
|
+
class Rubydex::Rules::UndefinedMethodVisibilityTarget < ::Rubydex::Rule
|
|
1353
|
+
class << self
|
|
1354
|
+
# @override
|
|
1355
|
+
#
|
|
1356
|
+
# pkg:gem/rubydex#lib/rubydex/rules/undefined_method_visibility_target.rb:21
|
|
1357
|
+
sig { override.returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1358
|
+
def default_severity; end
|
|
1359
|
+
end
|
|
1360
|
+
end
|
|
1361
|
+
|
|
1362
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:4
|
|
1363
|
+
module Rubydex::Severity
|
|
1364
|
+
class << self
|
|
1365
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:62
|
|
1366
|
+
sig { params(value: Symbol).returns(T.class_of(Rubydex::Severity::Base)) }
|
|
1367
|
+
def from_value(value); end
|
|
1368
|
+
end
|
|
1369
|
+
end
|
|
1370
|
+
|
|
1371
|
+
# All severities order based on their importance.
|
|
1372
|
+
#
|
|
1373
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:57
|
|
1374
|
+
Rubydex::Severity::ALL = T.let(T.unsafe(nil), Array)
|
|
1375
|
+
|
|
1376
|
+
# @abstract
|
|
1377
|
+
#
|
|
1378
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:6
|
|
1379
|
+
class Rubydex::Severity::Base
|
|
1380
|
+
abstract!
|
|
1381
|
+
|
|
1382
|
+
class << self
|
|
1383
|
+
# @abstract
|
|
1384
|
+
#
|
|
1385
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:10
|
|
1386
|
+
sig { returns(Symbol) }
|
|
1387
|
+
def value; end
|
|
1388
|
+
end
|
|
1389
|
+
end
|
|
1390
|
+
|
|
1391
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:16
|
|
1392
|
+
class Rubydex::Severity::Error < ::Rubydex::Severity::Base
|
|
1393
|
+
class << self
|
|
1394
|
+
# @override
|
|
1395
|
+
#
|
|
1396
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:20
|
|
1397
|
+
def value; end
|
|
1398
|
+
end
|
|
1399
|
+
end
|
|
1400
|
+
|
|
1401
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:46
|
|
1402
|
+
class Rubydex::Severity::Hint < ::Rubydex::Severity::Base
|
|
1403
|
+
class << self
|
|
1404
|
+
# @override
|
|
1405
|
+
#
|
|
1406
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:50
|
|
1407
|
+
def value; end
|
|
1408
|
+
end
|
|
1409
|
+
end
|
|
1410
|
+
|
|
1411
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:36
|
|
1412
|
+
class Rubydex::Severity::Information < ::Rubydex::Severity::Base
|
|
1413
|
+
class << self
|
|
1414
|
+
# @override
|
|
1415
|
+
#
|
|
1416
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:40
|
|
1417
|
+
def value; end
|
|
1418
|
+
end
|
|
1419
|
+
end
|
|
1420
|
+
|
|
1421
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:58
|
|
1422
|
+
Rubydex::Severity::VALUE_MAP = T.let(T.unsafe(nil), Hash)
|
|
1423
|
+
|
|
1424
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:26
|
|
1425
|
+
class Rubydex::Severity::Warning < ::Rubydex::Severity::Base
|
|
1426
|
+
class << self
|
|
1427
|
+
# @override
|
|
1428
|
+
#
|
|
1429
|
+
# pkg:gem/rubydex#lib/rubydex/severity.rb:30
|
|
1430
|
+
def value; end
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
|
|
1434
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1435
|
+
class Rubydex::Signature
|
|
1436
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:33
|
|
1437
|
+
sig { params(parameters: T::Array[Rubydex::Signature::Parameter]).void }
|
|
1438
|
+
def initialize(parameters); end
|
|
1439
|
+
|
|
1440
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:128
|
|
1441
|
+
sig { returns(T.nilable(Rubydex::Signature::BlockParameter)) }
|
|
1442
|
+
def block_parameter; end
|
|
1443
|
+
|
|
1444
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:38
|
|
1445
|
+
sig do
|
|
1446
|
+
returns([
|
|
1447
|
+
T::Array[Rubydex::Signature::PositionalParameter],
|
|
1448
|
+
T::Array[Rubydex::Signature::OptionalPositionalParameter],
|
|
1449
|
+
T.nilable(Rubydex::Signature::RestPositionalParameter),
|
|
1450
|
+
T::Array[Rubydex::Signature::PostParameter],
|
|
1451
|
+
T::Array[Rubydex::Signature::KeywordParameter],
|
|
1452
|
+
T::Array[Rubydex::Signature::OptionalKeywordParameter],
|
|
1453
|
+
T.nilable(Rubydex::Signature::RestKeywordParameter),
|
|
1454
|
+
T.nilable(Rubydex::Signature::ForwardParameter),
|
|
1455
|
+
T.nilable(Rubydex::Signature::BlockParameter),
|
|
1456
|
+
])
|
|
1457
|
+
end
|
|
1458
|
+
def deconstruct; end
|
|
1459
|
+
|
|
1460
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:80
|
|
1461
|
+
sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
|
|
1462
|
+
def deconstruct_keys(keys); end
|
|
1463
|
+
|
|
1464
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:125
|
|
1465
|
+
sig { returns(T.nilable(Rubydex::Signature::ForwardParameter)) }
|
|
1466
|
+
def forward_parameter; end
|
|
1467
|
+
|
|
1468
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:116
|
|
1469
|
+
sig { returns(T::Array[Rubydex::Signature::KeywordParameter]) }
|
|
1470
|
+
def keyword_parameters; end
|
|
1471
|
+
|
|
1472
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:119
|
|
1473
|
+
sig { returns(T::Array[Rubydex::Signature::OptionalKeywordParameter]) }
|
|
1474
|
+
def optional_keyword_parameters; end
|
|
1475
|
+
|
|
1476
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:107
|
|
1477
|
+
sig { returns(T::Array[Rubydex::Signature::OptionalPositionalParameter]) }
|
|
1478
|
+
def optional_positional_parameters; end
|
|
1479
|
+
|
|
1480
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:30
|
|
1481
|
+
sig { returns(T::Array[Rubydex::Signature::Parameter]) }
|
|
1482
|
+
def parameters; end
|
|
1483
|
+
|
|
1484
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:104
|
|
1485
|
+
sig { returns(T::Array[Rubydex::Signature::PositionalParameter]) }
|
|
1486
|
+
def positional_parameters; end
|
|
1487
|
+
|
|
1488
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:113
|
|
1489
|
+
sig { returns(T::Array[Rubydex::Signature::PostParameter]) }
|
|
1490
|
+
def post_parameters; end
|
|
1491
|
+
|
|
1492
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:122
|
|
1493
|
+
sig { returns(T.nilable(Rubydex::Signature::RestKeywordParameter)) }
|
|
1494
|
+
def rest_keyword_parameter; end
|
|
1495
|
+
|
|
1496
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:110
|
|
1497
|
+
sig { returns(T.nilable(Rubydex::Signature::RestPositionalParameter)) }
|
|
1498
|
+
def rest_positional_parameter; end
|
|
1499
|
+
end
|
|
1500
|
+
|
|
1501
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1502
|
+
class Rubydex::Signature::BlockParameter < ::Rubydex::Signature::Parameter; end
|
|
1503
|
+
|
|
1504
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:66
|
|
1505
|
+
Rubydex::Signature::DECONSTRUCT_KEYS = T.let(T.unsafe(nil), Array)
|
|
1506
|
+
|
|
1507
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1508
|
+
class Rubydex::Signature::ForwardParameter < ::Rubydex::Signature::Parameter; end
|
|
1509
|
+
|
|
1510
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1511
|
+
class Rubydex::Signature::KeywordParameter < ::Rubydex::Signature::Parameter; end
|
|
1512
|
+
|
|
1513
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1514
|
+
class Rubydex::Signature::OptionalKeywordParameter < ::Rubydex::Signature::Parameter; end
|
|
1515
|
+
|
|
1516
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1517
|
+
class Rubydex::Signature::OptionalPositionalParameter < ::Rubydex::Signature::Parameter; end
|
|
1518
|
+
|
|
1519
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1520
|
+
class Rubydex::Signature::Parameter
|
|
1521
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:13
|
|
1522
|
+
sig { params(name: Symbol, location: Rubydex::Location).void }
|
|
1523
|
+
def initialize(name, location); end
|
|
1524
|
+
|
|
1525
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:10
|
|
1526
|
+
sig { returns(Rubydex::Location) }
|
|
1527
|
+
def location; end
|
|
1528
|
+
|
|
1529
|
+
# pkg:gem/rubydex#lib/rubydex/signature.rb:7
|
|
1530
|
+
sig { returns(Symbol) }
|
|
1531
|
+
def name; end
|
|
1532
|
+
end
|
|
1533
|
+
|
|
1534
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1535
|
+
class Rubydex::Signature::PositionalParameter < ::Rubydex::Signature::Parameter; end
|
|
1536
|
+
|
|
1537
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1538
|
+
class Rubydex::Signature::PostParameter < ::Rubydex::Signature::Parameter; end
|
|
1539
|
+
|
|
1540
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1541
|
+
class Rubydex::Signature::RestKeywordParameter < ::Rubydex::Signature::Parameter; end
|
|
1542
|
+
|
|
1543
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1544
|
+
class Rubydex::Signature::RestPositionalParameter < ::Rubydex::Signature::Parameter; end
|
|
1545
|
+
|
|
1546
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1547
|
+
class Rubydex::SingletonClass < ::Rubydex::Namespace
|
|
1548
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:40
|
|
1549
|
+
sig { returns(Rubydex::Declaration) }
|
|
1550
|
+
def attached_class; end
|
|
1551
|
+
end
|
|
1552
|
+
|
|
1553
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1554
|
+
class Rubydex::SingletonClassDefinition < ::Rubydex::Definition
|
|
1555
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1556
|
+
sig { returns(T::Array[Rubydex::Mixin]) }
|
|
1557
|
+
def mixins; end
|
|
1558
|
+
end
|
|
1559
|
+
|
|
1560
|
+
# Raised by `Skill.load` when the file cannot be read, is missing frontmatter, has malformed YAML, or lacks the
|
|
1561
|
+
# required `name` or `description` fields.
|
|
1562
|
+
# Every failure to produce a Skill is a `SkillError`, so a caller rescues one class instead
|
|
1563
|
+
# of the union of what `File.read` and Psych happen to raise.
|
|
1564
|
+
#
|
|
1565
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:17
|
|
1566
|
+
class Rubydex::SkillError < ::Rubydex::Error; end
|
|
1567
|
+
|
|
1568
|
+
# Raised when a query result names a node that the graph no longer holds, because the graph
|
|
1569
|
+
# changed after the query ran. Reading the rows would silently turn that column from a
|
|
1570
|
+
# `Declaration`, `Definition`, or `Document` handle into a plain String, so it raises instead.
|
|
1571
|
+
# `render`, `columns`, `size`, and `empty?` still work, because they read the executed result set
|
|
1572
|
+
# and never touch the graph.
|
|
1573
|
+
#
|
|
1574
|
+
# The check runs while a row is built, so it covers the rows that a walk has not reached yet. Two
|
|
1575
|
+
# cases fall outside it:
|
|
1576
|
+
#
|
|
1577
|
+
# - A handle that a walk already handed out. Such a handle resolves against the graph on each
|
|
1578
|
+
# call, so a later change to the graph can make it stale. Handles from `Graph#[]` share that
|
|
1579
|
+
# property. This error says nothing about them.
|
|
1580
|
+
# - A re-index that keeps the ids. A declaration id comes from the name, so a file indexed again
|
|
1581
|
+
# under the same names still resolves, and this error does not fire, even though the
|
|
1582
|
+
# definitions and ancestors behind that name may differ.
|
|
1583
|
+
#
|
|
1584
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:51
|
|
1585
|
+
class Rubydex::StaleQueryResultError < ::Rubydex::QueryError; end
|
|
1586
|
+
|
|
1587
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1588
|
+
class Rubydex::Todo < ::Rubydex::Namespace; end
|
|
1589
|
+
|
|
1590
|
+
# Raised by `SkillRegistry.load` when the skill directory doesn't exist.
|
|
1591
|
+
#
|
|
1592
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:23
|
|
1593
|
+
class Rubydex::UnknownSkillDirectoryError < ::Rubydex::SkillError; end
|
|
1594
|
+
|
|
1595
|
+
# Raised by `SkillRegistry#fetch` when the library has no skill under the requested id.
|
|
1596
|
+
#
|
|
1597
|
+
# pkg:gem/rubydex#lib/rubydex/errors.rb:20
|
|
1598
|
+
class Rubydex::UnknownSkillError < ::Rubydex::SkillError; end
|
|
1599
|
+
|
|
1600
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1601
|
+
class Rubydex::UnresolvedConstantReference < ::Rubydex::ConstantReference
|
|
1602
|
+
# pkg:gem/rubydex#lib/rubydex.rb:14
|
|
1603
|
+
sig { returns(String) }
|
|
1604
|
+
def name; end
|
|
1605
|
+
end
|
|
1606
|
+
|
|
1607
|
+
# pkg:gem/rubydex#lib/rubydex/version.rb:4
|
|
1608
|
+
Rubydex::VERSION = T.let(T.unsafe(nil), String)
|
|
1609
|
+
|
|
1610
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:4
|
|
1611
|
+
module Rubydex::Visibility
|
|
1612
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:9
|
|
1613
|
+
def private?; end
|
|
1614
|
+
|
|
1615
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:12
|
|
1616
|
+
def protected?; end
|
|
1617
|
+
|
|
1618
|
+
# pkg:gem/rubydex#lib/rubydex/declaration.rb:6
|
|
1619
|
+
def public?; end
|
|
1620
|
+
end
|