rubocop-modularization 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -3
  3. data/lib/rubocop/cop/modularization/namespaced_under_package_name/desired_zeitwerk_api.rb +110 -0
  4. data/lib/rubocop/cop/modularization/namespaced_under_package_name.rb +119 -0
  5. data/lib/rubocop/cop/modularization/typed_public_api.rb +39 -0
  6. data/lib/rubocop/cop/modularization_cops.rb +1 -0
  7. data/lib/rubocop/modularization/inject.rb +4 -0
  8. data/lib/rubocop/modularization/private.rb +11 -0
  9. data/lib/rubocop/modularization.rb +8 -4
  10. data/lib/rubocop-modularization.rb +5 -2
  11. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +15914 -0
  12. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  13. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  14. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11263 -0
  15. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  16. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  17. data/sorbet/rbi/gems/json@2.6.2.rbi +1547 -0
  18. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  19. data/sorbet/rbi/gems/minitest@5.16.3.rbi +1459 -0
  20. data/sorbet/rbi/gems/netrc@0.11.0.rbi +161 -0
  21. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  22. data/sorbet/rbi/gems/parse_packwerk@0.12.1.rbi +203 -0
  23. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +8944 -0
  24. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  25. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  26. data/sorbet/rbi/gems/rake@13.0.6.rbi +2899 -0
  27. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3007 -0
  28. data/sorbet/rbi/gems/regexp_parser@2.6.0.rbi +3498 -0
  29. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  30. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +10934 -0
  31. data/sorbet/rbi/gems/rspec-expectations@3.11.1.rbi +8090 -0
  32. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +5291 -0
  33. data/sorbet/rbi/gems/rspec-support@3.11.1.rbi +1610 -0
  34. data/sorbet/rbi/gems/rspec@3.11.0.rbi +88 -0
  35. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6898 -0
  36. data/sorbet/rbi/gems/rubocop-extension-generator@0.5.1.rbi +86 -0
  37. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +1002 -0
  38. data/sorbet/rbi/gems/rubocop@1.36.0.rbi +52209 -0
  39. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1239 -0
  40. data/sorbet/rbi/gems/spoom@1.1.12.rbi +2369 -0
  41. data/sorbet/rbi/gems/tapioca@0.10.2.rbi +3439 -0
  42. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  43. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  44. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +48 -0
  45. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  46. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2586 -0
  47. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +389 -0
  48. data/sorbet/rbi/gems/yard@0.9.28.rbi +17775 -0
  49. data/sorbet/rbi/todo.rbi +0 -3
  50. metadata +104 -6
@@ -0,0 +1,389 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `yard-sorbet` gem.
5
+ # Please instead update this file by running `bin/tapioca gem yard-sorbet`.
6
+
7
+ class YARD::Handlers::Ruby::ClassHandler < ::YARD::Handlers::Ruby::Base
8
+ include ::YARDSorbet::Handlers::StructClassHandler
9
+ end
10
+
11
+ # source://yard-sorbet//lib/yard-sorbet/version.rb#5
12
+ module YARDSorbet; end
13
+
14
+ # Extract & re-add directives to a docstring
15
+ #
16
+ # source://yard-sorbet//lib/yard-sorbet/directives.rb#6
17
+ module YARDSorbet::Directives
18
+ class << self
19
+ # source://yard-sorbet//lib/yard-sorbet/directives.rb#21
20
+ sig { params(docstring: ::String, directives: T::Array[::String]).void }
21
+ def add_directives(docstring, directives); end
22
+
23
+ # source://yard-sorbet//lib/yard-sorbet/directives.rb#10
24
+ sig { params(docstring: T.nilable(::String)).returns([::YARD::Docstring, T::Array[::String]]) }
25
+ def extract_directives(docstring); end
26
+ end
27
+ end
28
+
29
+ # Custom YARD Handlers
30
+ #
31
+ # @see https://rubydoc.info/gems/yard/YARD/Handlers/Base YARD Base Handler documentation
32
+ #
33
+ # source://yard-sorbet//lib/yard-sorbet/handlers.rb#7
34
+ module YARDSorbet::Handlers; end
35
+
36
+ # Apllies an `@abstract` tag to `abstract!`/`interface!` modules (if not alerady present).
37
+ #
38
+ # source://yard-sorbet//lib/yard-sorbet/handlers/abstract_dsl_handler.rb#7
39
+ class YARDSorbet::Handlers::AbstractDSLHandler < ::YARD::Handlers::Ruby::Base
40
+ # source://yard-sorbet//lib/yard-sorbet/handlers/abstract_dsl_handler.rb#21
41
+ sig { void }
42
+ def process; end
43
+ end
44
+
45
+ # Extra text for class namespaces
46
+ #
47
+ # source://yard-sorbet//lib/yard-sorbet/handlers/abstract_dsl_handler.rb#18
48
+ YARDSorbet::Handlers::AbstractDSLHandler::CLASS_TAG_TEXT = T.let(T.unsafe(nil), String)
49
+
50
+ # The text accompanying the `@abstract` tag.
51
+ #
52
+ # @see https://github.com/lsegal/yard/blob/main/templates/default/docstring/html/abstract.erb The `@abstract` tag template
53
+ #
54
+ # source://yard-sorbet//lib/yard-sorbet/handlers/abstract_dsl_handler.rb#16
55
+ YARDSorbet::Handlers::AbstractDSLHandler::TAG_TEXT = T.let(T.unsafe(nil), String)
56
+
57
+ # Handle `enums` calls, registering enum values as constants
58
+ #
59
+ # source://yard-sorbet//lib/yard-sorbet/handlers/enums_handler.rb#7
60
+ class YARDSorbet::Handlers::EnumsHandler < ::YARD::Handlers::Ruby::Base
61
+ # source://yard-sorbet//lib/yard-sorbet/handlers/enums_handler.rb#14
62
+ sig { void }
63
+ def process; end
64
+
65
+ private
66
+
67
+ # source://yard-sorbet//lib/yard-sorbet/handlers/enums_handler.rb#29
68
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Boolean) }
69
+ def const_assign_node?(node); end
70
+ end
71
+
72
+ # Extends any modules included via `mixes_in_class_methods`
73
+ #
74
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
75
+ #
76
+ # source://yard-sorbet//lib/yard-sorbet/handlers/include_handler.rb#9
77
+ class YARDSorbet::Handlers::IncludeHandler < ::YARD::Handlers::Ruby::Base
78
+ # source://yard-sorbet//lib/yard-sorbet/handlers/include_handler.rb#16
79
+ sig { void }
80
+ def process; end
81
+
82
+ private
83
+
84
+ # source://yard-sorbet//lib/yard-sorbet/handlers/include_handler.rb#30
85
+ sig { returns(::YARD::CodeObjects::NamespaceObject) }
86
+ def included_in; end
87
+ end
88
+
89
+ # Tracks modules that invoke `mixes_in_class_methods` for use in {IncludeHandler}
90
+ #
91
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
92
+ #
93
+ # source://yard-sorbet//lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb#9
94
+ class YARDSorbet::Handlers::MixesInClassMethodsHandler < ::YARD::Handlers::Ruby::Base
95
+ # source://yard-sorbet//lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb#23
96
+ sig { void }
97
+ def process; end
98
+
99
+ class << self
100
+ # source://yard-sorbet//lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb#18
101
+ sig { params(code_obj: ::String).returns(T.nilable(::String)) }
102
+ def mixed_in_class_methods(code_obj); end
103
+ end
104
+ end
105
+
106
+ # A YARD Handler for Sorbet type declarations
107
+ #
108
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#7
109
+ class YARDSorbet::Handlers::SigHandler < ::YARD::Handlers::Ruby::Base
110
+ # Swap the method definition docstring and the sig docstring.
111
+ # Parse relevant parts of the `sig` and include them as well.
112
+ #
113
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#20
114
+ sig { void }
115
+ def process; end
116
+
117
+ private
118
+
119
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#52
120
+ sig do
121
+ params(
122
+ method_node: ::YARD::Parser::Ruby::AstNode,
123
+ node: ::YARD::Parser::Ruby::AstNode,
124
+ docstring: ::YARD::Docstring
125
+ ).void
126
+ end
127
+ def parse_params(method_node, node, docstring); end
128
+
129
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#64
130
+ sig { params(node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
131
+ def parse_return(node, docstring); end
132
+
133
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#32
134
+ sig { params(method_node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
135
+ def parse_sig(method_node, docstring); end
136
+ end
137
+
138
+ # These node types attached to sigs represent attr_* declarations
139
+ #
140
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#14
141
+ YARDSorbet::Handlers::SigHandler::ATTR_NODE_TYPES = T.let(T.unsafe(nil), Array)
142
+
143
+ # Class-level handler that folds all `const` and `prop` declarations into the constructor documentation
144
+ # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
145
+ #
146
+ # @note this module is included in `YARD::Handlers::Ruby::ClassHandler`
147
+ #
148
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_class_handler.rb#10
149
+ module YARDSorbet::Handlers::StructClassHandler
150
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_class_handler.rb#14
151
+ sig { void }
152
+ def process; end
153
+
154
+ private
155
+
156
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_class_handler.rb#50
157
+ sig do
158
+ params(
159
+ object: ::YARD::CodeObjects::MethodObject,
160
+ props: T::Array[::YARDSorbet::TStructProp],
161
+ docstring: ::YARD::Docstring,
162
+ directives: T::Array[::String]
163
+ ).void
164
+ end
165
+ def decorate_t_struct_init(object, props, docstring, directives); end
166
+
167
+ # Create a virtual `initialize` method with all the `prop`/`const` arguments
168
+ #
169
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_class_handler.rb#30
170
+ sig { params(props: T::Array[::YARDSorbet::TStructProp], class_ns: ::YARD::CodeObjects::ClassObject).void }
171
+ def process_t_struct_props(props, class_ns); end
172
+
173
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_class_handler.rb#60
174
+ sig { params(props: T::Array[::YARDSorbet::TStructProp]).returns(T::Array[[::String, T.nilable(::String)]]) }
175
+ def to_object_parameters(props); end
176
+ end
177
+
178
+ # Handles all `const`/`prop` calls, creating accessor methods, and compiles them for later usage at the class level
179
+ # in creating a constructor
180
+ #
181
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#8
182
+ class YARDSorbet::Handlers::StructPropHandler < ::YARD::Handlers::Ruby::Base
183
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#15
184
+ sig { void }
185
+ def process; end
186
+
187
+ private
188
+
189
+ # Add the source and docstring to the method object
190
+ #
191
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#28
192
+ sig { params(object: ::YARD::CodeObjects::MethodObject, prop: ::YARDSorbet::TStructProp).void }
193
+ def decorate_object(object, prop); end
194
+
195
+ # Get the default prop value
196
+ #
197
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#39
198
+ sig { returns(T.nilable(::String)) }
199
+ def default_value; end
200
+
201
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#44
202
+ sig { params(name: ::String).returns(::YARDSorbet::TStructProp) }
203
+ def make_prop(name); end
204
+
205
+ # Register the field explicitly as an attribute.
206
+ # While `const` attributes are immutable, `prop` attributes may be reassigned.
207
+ #
208
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#57
209
+ sig { params(object: ::YARD::CodeObjects::MethodObject, name: ::String).void }
210
+ def register_attrs(object, name); end
211
+
212
+ # Store the prop for use in the constructor definition
213
+ #
214
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#65
215
+ sig { params(prop: ::YARDSorbet::TStructProp).void }
216
+ def update_state(prop); end
217
+ end
218
+
219
+ # Helper methods for working with `YARD` AST Nodes
220
+ #
221
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#6
222
+ module YARDSorbet::NodeUtils
223
+ class << self
224
+ # Traverse AST nodes in breadth-first order
225
+ #
226
+ # @note This will skip over some node types.
227
+ # @yield [YARD::Parser::Ruby::AstNode]
228
+ #
229
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#22
230
+ sig do
231
+ params(
232
+ node: ::YARD::Parser::Ruby::AstNode,
233
+ _blk: T.proc.params(n: ::YARD::Parser::Ruby::AstNode).void
234
+ ).void
235
+ end
236
+ def bfs_traverse(node, &_blk); end
237
+
238
+ # Gets the node that a sorbet `sig` can be attached do, bypassing visisbility modifiers and the like
239
+ #
240
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#34
241
+ sig do
242
+ params(
243
+ node: ::YARD::Parser::Ruby::AstNode
244
+ ).returns(T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode))
245
+ end
246
+ def get_method_node(node); end
247
+
248
+ # Find and return the adjacent node (ascending)
249
+ #
250
+ # @raise [IndexError] if the node does not have an adjacent sibling (ascending)
251
+ #
252
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#48
253
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::YARD::Parser::Ruby::AstNode) }
254
+ def sibling_node(node); end
255
+ end
256
+ end
257
+
258
+ # Command node types that can have type signatures
259
+ #
260
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#10
261
+ YARDSorbet::NodeUtils::ATTRIBUTE_METHODS = T.let(T.unsafe(nil), Array)
262
+
263
+ # Skip these method contents during BFS node traversal, they can have their own nested types via `T.Proc`
264
+ #
265
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#12
266
+ YARDSorbet::NodeUtils::SKIP_METHOD_CONTENTS = T.let(T.unsafe(nil), Array)
267
+
268
+ # Node types that can have type signatures
269
+ #
270
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#14
271
+ YARDSorbet::NodeUtils::SigableNode = T.type_alias { T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode) }
272
+
273
+ # Translate `sig` type syntax to `YARD` type syntax.
274
+ #
275
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#6
276
+ module YARDSorbet::SigToYARD
277
+ class << self
278
+ # @see https://yardoc.org/types.html
279
+ #
280
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#21
281
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
282
+ def convert(node); end
283
+
284
+ private
285
+
286
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#54
287
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::String) }
288
+ def build_generic_type(node); end
289
+
290
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#63
291
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
292
+ def convert_aref(node); end
293
+
294
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#75
295
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
296
+ def convert_array(node); end
297
+
298
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#83
299
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
300
+ def convert_call(node); end
301
+
302
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#88
303
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
304
+ def convert_collection(node); end
305
+
306
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#95
307
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
308
+ def convert_hash(node); end
309
+
310
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#103
311
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
312
+ def convert_list(node); end
313
+
314
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#27
315
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
316
+ def convert_node(node); end
317
+
318
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#36
319
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
320
+ def convert_node_type(node); end
321
+
322
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#108
323
+ sig { params(node_source: ::String).returns([::String]) }
324
+ def convert_ref(node_source); end
325
+
326
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#113
327
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
328
+ def convert_t_method(node); end
329
+
330
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#125
331
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
332
+ def convert_unknown(node); end
333
+ end
334
+ end
335
+
336
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#9
337
+ YARDSorbet::SigToYARD::REF_TYPES = T.let(T.unsafe(nil), Hash)
338
+
339
+ # Used to store the details of a `T::Struct` `prop` definition
340
+ #
341
+ # source://yard-sorbet//lib/yard-sorbet/t_struct_prop.rb#6
342
+ class YARDSorbet::TStructProp < ::T::Struct
343
+ const :default, T.nilable(::String)
344
+ const :doc, ::String
345
+ const :prop_name, ::String
346
+ const :source, ::String
347
+ const :types, T::Array[::String]
348
+
349
+ class << self
350
+ # source://sorbet-runtime/0.5.10479/lib/types/struct.rb#13
351
+ def inherited(s); end
352
+ end
353
+ end
354
+
355
+ # Helper methods for working with `YARD` tags
356
+ #
357
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#6
358
+ module YARDSorbet::TagUtils
359
+ class << self
360
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#13
361
+ sig do
362
+ params(
363
+ docstring: ::YARD::Docstring,
364
+ tag_name: ::String,
365
+ name: T.nilable(::String)
366
+ ).returns(T.nilable(::YARD::Tags::Tag))
367
+ end
368
+ def find_tag(docstring, tag_name, name); end
369
+
370
+ # Create or update a `YARD` tag with type information
371
+ #
372
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#27
373
+ sig do
374
+ params(
375
+ docstring: ::YARD::Docstring,
376
+ tag_name: ::String,
377
+ types: T.nilable(T::Array[::String]),
378
+ name: T.nilable(::String),
379
+ text: ::String
380
+ ).void
381
+ end
382
+ def upsert_tag(docstring, tag_name, types = T.unsafe(nil), name = T.unsafe(nil), text = T.unsafe(nil)); end
383
+ end
384
+ end
385
+
386
+ # {https://rubygems.org/gems/yard-sorbet Version history}
387
+ #
388
+ # source://yard-sorbet//lib/yard-sorbet/version.rb#7
389
+ YARDSorbet::VERSION = T.let(T.unsafe(nil), String)