packwerk 2.2.0 → 2.2.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 (187) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +29 -20
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +48 -19
  5. data/Gemfile +7 -2
  6. data/Gemfile.lock +201 -175
  7. data/README.md +1 -1
  8. data/RESOLVING_VIOLATIONS.md +81 -0
  9. data/Rakefile +1 -1
  10. data/USAGE.md +14 -5
  11. data/bin/m +1 -1
  12. data/bin/rake +1 -1
  13. data/bin/rubocop +1 -1
  14. data/bin/srb +1 -1
  15. data/bin/tapioca +1 -1
  16. data/gemfiles/Gemfile-rails-6-0 +1 -1
  17. data/gemfiles/Gemfile-rails-6-1 +22 -0
  18. data/lib/packwerk/application_validator.rb +7 -6
  19. data/lib/packwerk/association_inspector.rb +17 -15
  20. data/lib/packwerk/cache.rb +36 -29
  21. data/lib/packwerk/cli.rb +5 -6
  22. data/lib/packwerk/const_node_inspector.rb +8 -7
  23. data/lib/packwerk/constant_name_inspector.rb +2 -2
  24. data/lib/packwerk/deprecated_references.rb +34 -19
  25. data/lib/packwerk/file_processor.rb +14 -14
  26. data/lib/packwerk/files_for_processing.rb +27 -31
  27. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  28. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  29. data/lib/packwerk/node.rb +1 -294
  30. data/lib/packwerk/node_helpers.rb +335 -0
  31. data/lib/packwerk/node_processor.rb +6 -5
  32. data/lib/packwerk/node_processor_factory.rb +3 -3
  33. data/lib/packwerk/node_visitor.rb +1 -1
  34. data/lib/packwerk/offense_collection.rb +6 -3
  35. data/lib/packwerk/offenses_formatter.rb +2 -2
  36. data/lib/packwerk/package.rb +3 -0
  37. data/lib/packwerk/package_set.rb +2 -0
  38. data/lib/packwerk/parse_run.rb +15 -13
  39. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  40. data/lib/packwerk/parsers/erb.rb +3 -3
  41. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  42. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  43. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  44. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  45. data/lib/packwerk/reference_extractor.rb +51 -48
  46. data/lib/packwerk/reference_offense.rb +3 -27
  47. data/lib/packwerk/run_context.rb +3 -3
  48. data/lib/packwerk/spring_command.rb +1 -1
  49. data/lib/packwerk/version.rb +1 -1
  50. data/lib/packwerk.rb +1 -0
  51. data/packwerk.gemspec +4 -12
  52. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  53. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  54. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  55. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  56. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  57. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  58. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  59. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  60. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  61. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  62. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  63. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  64. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  65. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  66. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  67. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  68. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  69. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  70. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  71. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  72. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  73. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  74. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  75. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  76. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  77. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  78. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  79. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  80. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  81. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  82. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  83. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  84. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  85. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  86. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  87. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  88. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  89. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  90. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  91. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  92. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  93. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  94. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  95. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  96. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  97. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  98. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  99. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  100. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  101. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  102. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  103. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  104. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  105. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  106. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  107. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  108. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  109. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  110. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  111. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  112. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  113. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  114. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  115. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  116. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  117. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  118. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  119. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  120. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  121. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  122. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  123. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  124. data/sorbet/rbi/shims/psych.rbi +5 -0
  125. data/sorbet/tapioca/require.rb +2 -3
  126. metadata +88 -157
  127. data/.github/probots.yml +0 -2
  128. data/library.yml +0 -6
  129. data/service.yml +0 -1
  130. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  131. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  132. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  133. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  134. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  135. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  136. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  137. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  138. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  139. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  140. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  141. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  142. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  143. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  144. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  145. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  146. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  147. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  148. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  149. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  150. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  151. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  152. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  153. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  154. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  155. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  156. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  157. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  158. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  159. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  160. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  161. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  162. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  163. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  164. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  165. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  166. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  167. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  168. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  169. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  170. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  171. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  172. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  173. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  177. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  178. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  179. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  180. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  181. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  182. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  183. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  184. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  185. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  186. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  187. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -177
@@ -0,0 +1,388 @@
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
+ # Types are documentation
12
+ #
13
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/version.rb:5
14
+ module YARDSorbet; end
15
+
16
+ # Extract & re-add directives to a docstring
17
+ #
18
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/directives.rb:6
19
+ module YARDSorbet::Directives
20
+ class << self
21
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/directives.rb:24
22
+ sig { params(docstring: ::String, directives: T::Array[::String]).void }
23
+ def add_directives(docstring, directives); end
24
+
25
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/directives.rb:10
26
+ sig { params(docstring: T.nilable(::String)).returns([::YARD::Docstring, T::Array[::String]]) }
27
+ def extract_directives(docstring); end
28
+ end
29
+ end
30
+
31
+ # Custom YARD Handlers
32
+ #
33
+ # @see https://rubydoc.info/gems/yard/YARD/Handlers/Base YARD Base Handler documentation
34
+ #
35
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers.rb:7
36
+ module YARDSorbet::Handlers; end
37
+
38
+ # Apllies an `@abstract` tag to `abstract!`/`interface!` modules (if not alerady present).
39
+ #
40
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/abstract_dsl_handler.rb:7
41
+ class YARDSorbet::Handlers::AbstractDSLHandler < ::YARD::Handlers::Ruby::Base
42
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/abstract_dsl_handler.rb:21
43
+ sig { void }
44
+ def process; end
45
+ end
46
+
47
+ # Extra text for class namespaces
48
+ #
49
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/abstract_dsl_handler.rb:18
50
+ YARDSorbet::Handlers::AbstractDSLHandler::CLASS_TAG_TEXT = T.let(T.unsafe(nil), String)
51
+
52
+ # The text accompanying the `@abstract` tag.
53
+ #
54
+ # @see https://github.com/lsegal/yard/blob/main/templates/default/docstring/html/abstract.erb The `@abstract` tag template
55
+ #
56
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/abstract_dsl_handler.rb:16
57
+ YARDSorbet::Handlers::AbstractDSLHandler::TAG_TEXT = T.let(T.unsafe(nil), String)
58
+
59
+ # Handle `enums` calls, registering enum values as constants
60
+ #
61
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/enums_handler.rb:7
62
+ class YARDSorbet::Handlers::EnumsHandler < ::YARD::Handlers::Ruby::Base
63
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/enums_handler.rb:14
64
+ sig { void }
65
+ def process; end
66
+
67
+ private
68
+
69
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/enums_handler.rb:29
70
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Boolean) }
71
+ def const_assign_node?(node); end
72
+ end
73
+
74
+ # Extends any modules included via `mixes_in_class_methods`
75
+ #
76
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
77
+ #
78
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/include_handler.rb:9
79
+ class YARDSorbet::Handlers::IncludeHandler < ::YARD::Handlers::Ruby::Base
80
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/include_handler.rb:16
81
+ sig { void }
82
+ def process; end
83
+
84
+ private
85
+
86
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/include_handler.rb:30
87
+ sig { returns(::YARD::CodeObjects::NamespaceObject) }
88
+ def included_in; end
89
+ end
90
+
91
+ # Tracks modules that invoke `mixes_in_class_methods` for use in {IncludeHandler}
92
+ #
93
+ # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook Sorbet `mixes_in_class_methods` documentation
94
+ #
95
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb:9
96
+ class YARDSorbet::Handlers::MixesInClassMethodsHandler < ::YARD::Handlers::Ruby::Base
97
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb:23
98
+ sig { void }
99
+ def process; end
100
+
101
+ class << self
102
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb:18
103
+ sig { params(code_obj: ::String).returns(T.nilable(::String)) }
104
+ def mixed_in_class_methods(code_obj); end
105
+ end
106
+ end
107
+
108
+ # A YARD Handler for Sorbet type declarations
109
+ #
110
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:7
111
+ class YARDSorbet::Handlers::SigHandler < ::YARD::Handlers::Ruby::Base
112
+ # Swap the method definition docstring and the sig docstring.
113
+ # Parse relevant parts of the `sig` and include them as well.
114
+ #
115
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:20
116
+ sig { void }
117
+ def process; end
118
+
119
+ private
120
+
121
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:52
122
+ sig do
123
+ params(
124
+ method_node: ::YARD::Parser::Ruby::AstNode,
125
+ node: ::YARD::Parser::Ruby::AstNode,
126
+ docstring: ::YARD::Docstring
127
+ ).void
128
+ end
129
+ def parse_params(method_node, node, docstring); end
130
+
131
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:64
132
+ sig { params(node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
133
+ def parse_return(node, docstring); end
134
+
135
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:32
136
+ sig { params(method_node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
137
+ def parse_sig(method_node, docstring); end
138
+ end
139
+
140
+ # These node types attached to sigs represent attr_* declarations
141
+ #
142
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/sig_handler.rb:14
143
+ YARDSorbet::Handlers::SigHandler::ATTR_NODE_TYPES = T.let(T.unsafe(nil), Array)
144
+
145
+ # Class-level handler that folds all `const` and `prop` declarations into the constructor documentation
146
+ # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
147
+ #
148
+ # @note this module is included in `YARD::Handlers::Ruby::ClassHandler`
149
+ #
150
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_class_handler.rb:10
151
+ module YARDSorbet::Handlers::StructClassHandler
152
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_class_handler.rb:14
153
+ sig { void }
154
+ def process; end
155
+
156
+ private
157
+
158
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_class_handler.rb:52
159
+ sig do
160
+ params(
161
+ object: ::YARD::CodeObjects::MethodObject,
162
+ props: T::Array[::YARDSorbet::TStructProp],
163
+ docstring: ::YARD::Docstring,
164
+ directives: T::Array[::String]
165
+ ).void
166
+ end
167
+ def decorate_t_struct_init(object, props, docstring, directives); end
168
+
169
+ # Create a virtual `initialize` method with all the `prop`/`const` arguments
170
+ #
171
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_class_handler.rb:30
172
+ sig { params(props: T::Array[::YARDSorbet::TStructProp], class_ns: ::YARD::CodeObjects::ClassObject).void }
173
+ def process_t_struct_props(props, class_ns); end
174
+
175
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_class_handler.rb:62
176
+ sig { params(props: T::Array[::YARDSorbet::TStructProp]).returns(T::Array[[::String, T.nilable(::String)]]) }
177
+ def to_object_parameters(props); end
178
+ end
179
+
180
+ # Handles all `const`/`prop` calls, creating accessor methods, and compiles them for later usage at the class level
181
+ # in creating a constructor
182
+ #
183
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:8
184
+ class YARDSorbet::Handlers::StructPropHandler < ::YARD::Handlers::Ruby::Base
185
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:15
186
+ sig { void }
187
+ def process; end
188
+
189
+ private
190
+
191
+ # Add the source and docstring to the method object
192
+ #
193
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:28
194
+ sig { params(object: ::YARD::CodeObjects::MethodObject, prop: ::YARDSorbet::TStructProp).void }
195
+ def decorate_object(object, prop); end
196
+
197
+ # Get the default prop value
198
+ #
199
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:39
200
+ sig { returns(T.nilable(::String)) }
201
+ def default_value; end
202
+
203
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:45
204
+ sig { params(name: ::String).returns(::YARDSorbet::TStructProp) }
205
+ def make_prop(name); end
206
+
207
+ # Register the field explicitly as an attribute.
208
+ # While `const` attributes are immutable, `prop` attributes may be reassigned.
209
+ #
210
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:58
211
+ sig { params(object: ::YARD::CodeObjects::MethodObject, name: ::String).void }
212
+ def register_attrs(object, name); end
213
+
214
+ # Store the prop for use in the constructor definition
215
+ #
216
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/handlers/struct_prop_handler.rb:66
217
+ sig { params(prop: ::YARDSorbet::TStructProp).void }
218
+ def update_state(prop); end
219
+ end
220
+
221
+ # Helper methods for working with `YARD` AST Nodes
222
+ #
223
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:6
224
+ module YARDSorbet::NodeUtils
225
+ class << self
226
+ # Traverese AST nodes in breadth-first order
227
+ #
228
+ # @note This will skip over some node types.
229
+ # @yield [YARD::Parser::Ruby::AstNode]
230
+ #
231
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:29
232
+ sig do
233
+ params(
234
+ node: ::YARD::Parser::Ruby::AstNode,
235
+ _blk: T.proc.params(n: ::YARD::Parser::Ruby::AstNode).void
236
+ ).void
237
+ end
238
+ def bfs_traverse(node, &_blk); end
239
+
240
+ # Gets the node that a sorbet `sig` can be attached do, bypassing visisbility modifiers and the like
241
+ #
242
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:41
243
+ sig do
244
+ params(
245
+ node: ::YARD::Parser::Ruby::AstNode
246
+ ).returns(T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode))
247
+ end
248
+ def get_method_node(node); end
249
+
250
+ # Find and return the adjacent node (ascending)
251
+ #
252
+ # @raise [IndexError] if the node does not have an adjacent sibling (ascending)
253
+ #
254
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:55
255
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::YARD::Parser::Ruby::AstNode) }
256
+ def sibling_node(node); end
257
+ end
258
+ end
259
+
260
+ # Command node types that can have type signatures
261
+ #
262
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:10
263
+ YARDSorbet::NodeUtils::ATTRIBUTE_METHODS = T.let(T.unsafe(nil), Array)
264
+
265
+ # Node types that can have type signatures
266
+ #
267
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:12
268
+ YARDSorbet::NodeUtils::SIGABLE_NODE = T.type_alias { T.any(::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode) }
269
+
270
+ # Skip these method contents during BFS node traversal, they can have their own nested types via `T.Proc`
271
+ #
272
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/node_utils.rb:16
273
+ YARDSorbet::NodeUtils::SKIP_METHOD_CONTENTS = T.let(T.unsafe(nil), Array)
274
+
275
+ # Translate `sig` type syntax to `YARD` type syntax.
276
+ #
277
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:6
278
+ module YARDSorbet::SigToYARD
279
+ class << self
280
+ # @see https://yardoc.org/types.html
281
+ #
282
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:11
283
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
284
+ def convert(node); end
285
+
286
+ private
287
+
288
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:44
289
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::String) }
290
+ def build_generic_type(node); end
291
+
292
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:54
293
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
294
+ def convert_aref(node); end
295
+
296
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:66
297
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
298
+ def convert_array(node); end
299
+
300
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:74
301
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
302
+ def convert_call(node); end
303
+
304
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:79
305
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
306
+ def convert_collection(node); end
307
+
308
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:86
309
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
310
+ def convert_hash(node); end
311
+
312
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:94
313
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
314
+ def convert_list(node); end
315
+
316
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:17
317
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
318
+ def convert_node(node); end
319
+
320
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:26
321
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
322
+ def convert_node_type(node); end
323
+
324
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:99
325
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
326
+ def convert_ref(node); end
327
+
328
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:113
329
+ sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
330
+ def convert_t_method(node); end
331
+
332
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/sig_to_yard.rb:125
333
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
334
+ def convert_unknown(node); end
335
+ end
336
+ end
337
+
338
+ # Used to store the details of a `T::Struct` `prop` definition
339
+ #
340
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/t_struct_prop.rb:6
341
+ class YARDSorbet::TStructProp < ::T::Struct
342
+ const :default, T.nilable(::String)
343
+ const :doc, ::String
344
+ const :prop_name, ::String
345
+ const :source, ::String
346
+ const :types, T::Array[::String]
347
+
348
+ class << self
349
+ # source://sorbet-runtime-0.5.10313/lib/types/struct.rb:13
350
+ def inherited(s); end
351
+ end
352
+ end
353
+
354
+ # Helper methods for working with `YARD` tags
355
+ #
356
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/tag_utils.rb:6
357
+ module YARDSorbet::TagUtils
358
+ class << self
359
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/tag_utils.rb:14
360
+ sig do
361
+ params(
362
+ docstring: ::YARD::Docstring,
363
+ tag_name: ::String,
364
+ name: T.nilable(::String)
365
+ ).returns(T.nilable(::YARD::Tags::Tag))
366
+ end
367
+ def find_tag(docstring, tag_name, name); end
368
+
369
+ # Create or update a `YARD` tag with type information
370
+ #
371
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/tag_utils.rb:28
372
+ sig do
373
+ params(
374
+ docstring: ::YARD::Docstring,
375
+ tag_name: ::String,
376
+ types: T.nilable(T::Array[::String]),
377
+ name: T.nilable(::String),
378
+ text: ::String
379
+ ).void
380
+ end
381
+ def upsert_tag(docstring, tag_name, types = T.unsafe(nil), name = T.unsafe(nil), text = T.unsafe(nil)); end
382
+ end
383
+ end
384
+
385
+ # {https://rubygems.org/gems/yard-sorbet Version history}
386
+ #
387
+ # source://yard-sorbet-0.6.1/lib/yard-sorbet/version.rb:7
388
+ YARDSorbet::VERSION = T.let(T.unsafe(nil), String)