rubocop-modularization 0.0.1 → 0.0.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -3
  3. data/config/default.yml +5 -0
  4. data/lib/rubocop/cop/modularization/namespaced_under_package_name/desired_zeitwerk_api.rb +110 -0
  5. data/lib/rubocop/cop/modularization/namespaced_under_package_name.rb +119 -0
  6. data/lib/rubocop/cop/modularization/typed_public_api.rb +39 -0
  7. data/lib/rubocop/cop/modularization_cops.rb +1 -0
  8. data/lib/rubocop/modularization/inject.rb +4 -0
  9. data/lib/rubocop/modularization/private.rb +11 -0
  10. data/lib/rubocop/modularization.rb +8 -4
  11. data/lib/rubocop-modularization.rb +5 -2
  12. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +15914 -0
  13. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  14. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  15. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11263 -0
  16. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  17. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  18. data/sorbet/rbi/gems/json@2.6.2.rbi +1547 -0
  19. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  20. data/sorbet/rbi/gems/minitest@5.16.3.rbi +1459 -0
  21. data/sorbet/rbi/gems/netrc@0.11.0.rbi +161 -0
  22. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  23. data/sorbet/rbi/gems/parse_packwerk@0.12.1.rbi +203 -0
  24. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +8944 -0
  25. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  26. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  27. data/sorbet/rbi/gems/rake@13.0.6.rbi +2899 -0
  28. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3007 -0
  29. data/sorbet/rbi/gems/regexp_parser@2.6.0.rbi +3498 -0
  30. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  31. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +10934 -0
  32. data/sorbet/rbi/gems/rspec-expectations@3.11.1.rbi +8090 -0
  33. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +5291 -0
  34. data/sorbet/rbi/gems/rspec-support@3.11.1.rbi +1610 -0
  35. data/sorbet/rbi/gems/rspec@3.11.0.rbi +88 -0
  36. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6898 -0
  37. data/sorbet/rbi/gems/rubocop-extension-generator@0.5.1.rbi +86 -0
  38. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +1002 -0
  39. data/sorbet/rbi/gems/rubocop@1.36.0.rbi +52209 -0
  40. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1239 -0
  41. data/sorbet/rbi/gems/spoom@1.1.12.rbi +2369 -0
  42. data/sorbet/rbi/gems/tapioca@0.10.2.rbi +3439 -0
  43. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  44. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  45. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +48 -0
  46. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  47. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2586 -0
  48. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +389 -0
  49. data/sorbet/rbi/gems/yard@0.9.28.rbi +17775 -0
  50. data/sorbet/rbi/todo.rbi +0 -3
  51. metadata +105 -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)