packwerk 2.2.0 → 2.2.2

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 (188) 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 +202 -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_load_paths.rb +1 -1
  19. data/lib/packwerk/application_validator.rb +7 -6
  20. data/lib/packwerk/association_inspector.rb +17 -15
  21. data/lib/packwerk/cache.rb +36 -29
  22. data/lib/packwerk/cli.rb +24 -20
  23. data/lib/packwerk/const_node_inspector.rb +8 -7
  24. data/lib/packwerk/constant_name_inspector.rb +2 -2
  25. data/lib/packwerk/deprecated_references.rb +40 -20
  26. data/lib/packwerk/file_processor.rb +14 -14
  27. data/lib/packwerk/files_for_processing.rb +27 -31
  28. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  29. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  30. data/lib/packwerk/node.rb +1 -294
  31. data/lib/packwerk/node_helpers.rb +335 -0
  32. data/lib/packwerk/node_processor.rb +6 -5
  33. data/lib/packwerk/node_processor_factory.rb +3 -3
  34. data/lib/packwerk/node_visitor.rb +1 -1
  35. data/lib/packwerk/offense_collection.rb +27 -8
  36. data/lib/packwerk/offenses_formatter.rb +2 -2
  37. data/lib/packwerk/package.rb +3 -0
  38. data/lib/packwerk/package_set.rb +2 -0
  39. data/lib/packwerk/parse_run.rb +29 -20
  40. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  41. data/lib/packwerk/parsers/erb.rb +3 -3
  42. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  43. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  44. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  45. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  46. data/lib/packwerk/reference_extractor.rb +51 -48
  47. data/lib/packwerk/reference_offense.rb +3 -27
  48. data/lib/packwerk/run_context.rb +9 -8
  49. data/lib/packwerk/spring_command.rb +1 -1
  50. data/lib/packwerk/version.rb +1 -1
  51. data/lib/packwerk.rb +1 -0
  52. data/packwerk.gemspec +5 -12
  53. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  54. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  55. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  56. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  57. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  58. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  59. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  60. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  61. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  62. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  63. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  64. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  65. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  66. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  67. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  68. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  69. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  70. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  71. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  72. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  73. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  74. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  75. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  76. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  77. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  78. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  79. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  80. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  81. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  82. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  83. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  84. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  85. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  86. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  87. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  88. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  89. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  90. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  91. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  92. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  93. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  94. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  95. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  96. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  97. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  98. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  99. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  100. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  101. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  102. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  103. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  104. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  105. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  106. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  107. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  108. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  109. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  110. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  111. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  112. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  113. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  114. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  115. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  116. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  117. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  118. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  119. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  120. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  121. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  122. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  123. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  124. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  125. data/sorbet/rbi/shims/psych.rbi +5 -0
  126. data/sorbet/tapioca/require.rb +2 -3
  127. metadata +91 -146
  128. data/.github/probots.yml +0 -2
  129. data/library.yml +0 -6
  130. data/service.yml +0 -1
  131. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  132. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  133. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  134. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  135. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  136. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  137. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  138. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  139. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  140. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  141. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  142. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  143. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  144. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  145. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  146. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  147. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  148. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  149. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  150. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  151. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  152. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  153. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  154. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  155. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  156. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  157. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  158. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  159. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  160. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  161. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  162. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  163. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  164. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  165. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  166. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  167. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  168. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  169. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  170. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  171. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  172. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  173. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  177. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  178. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  179. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  180. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  181. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  182. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  183. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  184. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  185. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  186. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  187. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  188. 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)