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