visualize_packwerk 0.0.1

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 (56) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +32 -0
  3. data/lib/visualize_packwerk/graph_interface.rb +17 -0
  4. data/lib/visualize_packwerk/node_interface.rb +29 -0
  5. data/lib/visualize_packwerk/package_graph.rb +48 -0
  6. data/lib/visualize_packwerk/package_node.rb +28 -0
  7. data/lib/visualize_packwerk/package_relationships.rb +158 -0
  8. data/lib/visualize_packwerk/railtie.rb +15 -0
  9. data/lib/visualize_packwerk/tasks/visualize_packwerk.rake +73 -0
  10. data/lib/visualize_packwerk/team_graph.rb +52 -0
  11. data/lib/visualize_packwerk/team_node.rb +27 -0
  12. data/lib/visualize_packwerk.rb +17 -0
  13. data/sorbet/config +2 -0
  14. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +76 -0
  15. data/sorbet/rbi/gems/ast@2.4.2.rbi +522 -0
  16. data/sorbet/rbi/gems/code_ownership@1.28.0.rbi +411 -0
  17. data/sorbet/rbi/gems/code_teams@1.0.0.rbi +138 -0
  18. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  19. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +8 -0
  20. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +866 -0
  21. data/sorbet/rbi/gems/i18n@1.12.0.rbi +8 -0
  22. data/sorbet/rbi/gems/json@2.6.2.rbi +1423 -0
  23. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  24. data/sorbet/rbi/gems/minitest@5.16.2.rbi +9 -0
  25. data/sorbet/rbi/gems/package_protections@1.3.0.rbi +654 -0
  26. data/sorbet/rbi/gems/parallel@1.22.1.rbi +163 -0
  27. data/sorbet/rbi/gems/parse_packwerk@0.11.0.rbi +148 -0
  28. data/sorbet/rbi/gems/parser@3.1.2.0.rbi +4261 -0
  29. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +8 -0
  31. data/sorbet/rbi/gems/rake@13.0.6.rbi +1854 -0
  32. data/sorbet/rbi/gems/rbi@0.0.15.rbi +2340 -0
  33. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +8 -0
  34. data/sorbet/rbi/gems/rexml@3.2.5.rbi +8 -0
  35. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +7698 -0
  36. data/sorbet/rbi/gems/rspec-expectations@3.11.0.rbi +6201 -0
  37. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +3625 -0
  38. data/sorbet/rbi/gems/rspec-support@3.11.0.rbi +1176 -0
  39. data/sorbet/rbi/gems/rspec@3.11.0.rbi +40 -0
  40. data/sorbet/rbi/gems/rubocop-ast@1.19.1.rbi +8 -0
  41. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +8 -0
  42. data/sorbet/rbi/gems/rubocop@1.33.0.rbi +8 -0
  43. data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +840 -0
  44. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +8 -0
  45. data/sorbet/rbi/gems/spoom@1.1.11.rbi +1600 -0
  46. data/sorbet/rbi/gems/tapioca@0.8.3.rbi +1978 -0
  47. data/sorbet/rbi/gems/thor@1.2.1.rbi +2921 -0
  48. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +8 -0
  49. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +8 -0
  50. data/sorbet/rbi/gems/unparser@0.6.5.rbi +8 -0
  51. data/sorbet/rbi/gems/webrick@1.7.0.rbi +1802 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +288 -0
  53. data/sorbet/rbi/gems/yard@0.9.28.rbi +12863 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +7 -0
  56. metadata +241 -0
@@ -0,0 +1,288 @@
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
+ module YARDSorbet; end
8
+
9
+ # Extract & re-add directives to a docstring
10
+ module YARDSorbet::Directives
11
+ class << self
12
+ sig { params(docstring: ::String, directives: T::Array[::String]).void }
13
+ def add_directives(docstring, directives); end
14
+
15
+ sig { params(docstring: T.nilable(::String)).returns([::YARD::Docstring, T::Array[::String]]) }
16
+ def extract_directives(docstring); end
17
+ end
18
+ end
19
+
20
+ # Custom YARD Handlers
21
+ #
22
+ # @see https://rubydoc.info/gems/yard/YARD/Handlers/Base YARD Base Handler documentation
23
+ module YARDSorbet::Handlers; end
24
+
25
+ # Apllies an `@abstract` tag to `abstract!`/`interface!` modules (if not alerady present).
26
+ class YARDSorbet::Handlers::AbstractDSLHandler < ::YARD::Handlers::Ruby::Base
27
+ sig { void }
28
+ def process; end
29
+ end
30
+
31
+ # Extra text for class namespaces
32
+ YARDSorbet::Handlers::AbstractDSLHandler::CLASS_TAG_TEXT = T.let(T.unsafe(nil), String)
33
+
34
+ # The text accompanying the `@abstract` tag.
35
+ #
36
+ # @see https://github.com/lsegal/yard/blob/main/templates/default/docstring/html/abstract.erb The `@abstract` tag template
37
+ YARDSorbet::Handlers::AbstractDSLHandler::TAG_TEXT = T.let(T.unsafe(nil), String)
38
+
39
+ # Handle `enums` calls, registering enum values as constants
40
+ class YARDSorbet::Handlers::EnumsHandler < ::YARD::Handlers::Ruby::Base
41
+ sig { void }
42
+ def process; end
43
+
44
+ private
45
+
46
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Boolean) }
47
+ def const_assign_node?(node); end
48
+ end
49
+
50
+ # Extends any modules included via `mixes_in_class_methods`
51
+ #
52
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
53
+ class YARDSorbet::Handlers::IncludeHandler < ::YARD::Handlers::Ruby::Base
54
+ sig { void }
55
+ def process; end
56
+
57
+ private
58
+
59
+ sig { returns(::YARD::CodeObjects::NamespaceObject) }
60
+ def included_in; end
61
+ end
62
+
63
+ # Tracks modules that invoke `mixes_in_class_methods` for use in {IncludeHandler}
64
+ #
65
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
66
+ class YARDSorbet::Handlers::MixesInClassMethodsHandler < ::YARD::Handlers::Ruby::Base
67
+ sig { void }
68
+ def process; end
69
+
70
+ class << self
71
+ sig { params(code_obj: ::String).returns(T.nilable(::String)) }
72
+ def mixed_in_class_methods(code_obj); end
73
+ end
74
+ end
75
+
76
+ # A YARD Handler for Sorbet type declarations
77
+ class YARDSorbet::Handlers::SigHandler < ::YARD::Handlers::Ruby::Base
78
+ # Swap the method definition docstring and the sig docstring.
79
+ # Parse relevant parts of the `sig` and include them as well.
80
+ sig { void }
81
+ def process; end
82
+
83
+ private
84
+
85
+ sig do
86
+ params(
87
+ method_node: ::YARD::Parser::Ruby::AstNode,
88
+ node: ::YARD::Parser::Ruby::AstNode,
89
+ docstring: ::YARD::Docstring
90
+ ).void
91
+ end
92
+ def parse_params(method_node, node, docstring); end
93
+
94
+ sig { params(node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
95
+ def parse_return(node, docstring); end
96
+
97
+ sig { params(method_node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
98
+ def parse_sig(method_node, docstring); end
99
+ end
100
+
101
+ # These node types attached to sigs represent attr_* declarations
102
+ YARDSorbet::Handlers::SigHandler::ATTR_NODE_TYPES = T.let(T.unsafe(nil), Array)
103
+
104
+ # Class-level handler that folds all `const` and `prop` declarations into the constructor documentation
105
+ # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
106
+ #
107
+ # @note this module is included in `YARD::Handlers::Ruby::ClassHandler`
108
+ module YARDSorbet::Handlers::StructClassHandler
109
+ sig { void }
110
+ def process; end
111
+
112
+ private
113
+
114
+ sig do
115
+ params(
116
+ object: ::YARD::CodeObjects::MethodObject,
117
+ props: T::Array[::YARDSorbet::TStructProp],
118
+ docstring: ::YARD::Docstring,
119
+ directives: T::Array[::String]
120
+ ).void
121
+ end
122
+ def decorate_t_struct_init(object, props, docstring, directives); end
123
+
124
+ # Create a virtual `initialize` method with all the `prop`/`const` arguments
125
+ sig { params(props: T::Array[::YARDSorbet::TStructProp], class_ns: ::YARD::CodeObjects::ClassObject).void }
126
+ def process_t_struct_props(props, class_ns); end
127
+
128
+ sig { params(props: T::Array[::YARDSorbet::TStructProp]).returns(T::Array[[::String, T.nilable(::String)]]) }
129
+ def to_object_parameters(props); end
130
+ end
131
+
132
+ # Handles all `const`/`prop` calls, creating accessor methods, and compiles them for later usage at the class level
133
+ # in creating a constructor
134
+ class YARDSorbet::Handlers::StructPropHandler < ::YARD::Handlers::Ruby::Base
135
+ sig { void }
136
+ def process; end
137
+
138
+ private
139
+
140
+ # Add the source and docstring to the method object
141
+ sig { params(object: ::YARD::CodeObjects::MethodObject, prop: ::YARDSorbet::TStructProp).void }
142
+ def decorate_object(object, prop); end
143
+
144
+ # Get the default prop value
145
+ sig { returns(T.nilable(::String)) }
146
+ def default_value; end
147
+
148
+ sig { params(name: ::String).returns(::YARDSorbet::TStructProp) }
149
+ def make_prop(name); end
150
+
151
+ # Register the field explicitly as an attribute.
152
+ # While `const` attributes are immutable, `prop` attributes may be reassigned.
153
+ sig { params(object: ::YARD::CodeObjects::MethodObject, name: ::String).void }
154
+ def register_attrs(object, name); end
155
+
156
+ # Store the prop for use in the constructor definition
157
+ sig { params(prop: ::YARDSorbet::TStructProp).void }
158
+ def update_state(prop); end
159
+ end
160
+
161
+ # Helper methods for working with `YARD` AST Nodes
162
+ module YARDSorbet::NodeUtils
163
+ class << self
164
+ # Traverese AST nodes in breadth-first order
165
+ #
166
+ # @note This will skip over some node types.
167
+ # @yield [YARD::Parser::Ruby::AstNode]
168
+ sig do
169
+ params(
170
+ node: ::YARD::Parser::Ruby::AstNode,
171
+ _blk: T.proc.params(n: ::YARD::Parser::Ruby::AstNode).void
172
+ ).void
173
+ end
174
+ def bfs_traverse(node, &_blk); end
175
+
176
+ # Gets the node that a sorbet `sig` can be attached do, bypassing visisbility modifiers and the like
177
+ sig do
178
+ params(
179
+ node: ::YARD::Parser::Ruby::AstNode
180
+ ).returns(T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode))
181
+ end
182
+ def get_method_node(node); end
183
+
184
+ # Find and return the adjacent node (ascending)
185
+ #
186
+ # @raise [IndexError] if the node does not have an adjacent sibling (ascending)
187
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::YARD::Parser::Ruby::AstNode) }
188
+ def sibling_node(node); end
189
+ end
190
+ end
191
+
192
+ # Command node types that can have type signatures
193
+ YARDSorbet::NodeUtils::ATTRIBUTE_METHODS = T.let(T.unsafe(nil), Array)
194
+
195
+ # Node types that can have type signatures
196
+ YARDSorbet::NodeUtils::SIGABLE_NODE = T.type_alias { T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode) }
197
+
198
+ # Skip these method contents during BFS node traversal, they can have their own nested types via `T.Proc`
199
+ YARDSorbet::NodeUtils::SKIP_METHOD_CONTENTS = T.let(T.unsafe(nil), Array)
200
+
201
+ # Translate `sig` type syntax to `YARD` type syntax.
202
+ module YARDSorbet::SigToYARD
203
+ class << self
204
+ # @see https://yardoc.org/types.html
205
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
206
+ def convert(node); end
207
+
208
+ private
209
+
210
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::String) }
211
+ def build_generic_type(node); end
212
+
213
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
214
+ def convert_aref(node); end
215
+
216
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
217
+ def convert_array(node); end
218
+
219
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
220
+ def convert_call(node); end
221
+
222
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
223
+ def convert_collection(node); end
224
+
225
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
226
+ def convert_hash(node); end
227
+
228
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
229
+ def convert_list(node); end
230
+
231
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
232
+ def convert_node(node); end
233
+
234
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
235
+ def convert_node_type(node); end
236
+
237
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
238
+ def convert_ref(node); end
239
+
240
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
241
+ def convert_t_method(node); end
242
+
243
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
244
+ def convert_unknown(node); end
245
+ end
246
+ end
247
+
248
+ # Used to store the details of a `T::Struct` `prop` definition
249
+ class YARDSorbet::TStructProp < ::T::Struct
250
+ const :default, T.nilable(::String)
251
+ const :doc, ::String
252
+ const :prop_name, ::String
253
+ const :source, ::String
254
+ const :types, T::Array[::String]
255
+
256
+ class << self
257
+ def inherited(s); end
258
+ end
259
+ end
260
+
261
+ # Helper methods for working with `YARD` tags
262
+ module YARDSorbet::TagUtils
263
+ class << self
264
+ sig do
265
+ params(
266
+ docstring: ::YARD::Docstring,
267
+ tag_name: ::String,
268
+ name: T.nilable(::String)
269
+ ).returns(T.nilable(::YARD::Tags::Tag))
270
+ end
271
+ def find_tag(docstring, tag_name, name); end
272
+
273
+ # Create or update a `YARD` tag with type information
274
+ sig do
275
+ params(
276
+ docstring: ::YARD::Docstring,
277
+ tag_name: ::String,
278
+ types: T.nilable(T::Array[::String]),
279
+ name: T.nilable(::String),
280
+ text: ::String
281
+ ).void
282
+ end
283
+ def upsert_tag(docstring, tag_name, types = T.unsafe(nil), name = T.unsafe(nil), text = T.unsafe(nil)); end
284
+ end
285
+ end
286
+
287
+ # {https://rubygems.org/gems/yard-sorbet Version history}
288
+ YARDSorbet::VERSION = T.let(T.unsafe(nil), String)