packwerk 2.1.1 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
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,257 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `m` gem.
5
+ # Please instead update this file by running `bin/tapioca gem m`.
6
+
7
+ # Runners are in charge of running your tests, depending on the framework
8
+ # Instead of slamming all of this junk in an `M` class, it's here instead.
9
+ #
10
+ # source://m-1.6.0/lib/m/version.rb:1
11
+ module M
12
+ class << self
13
+ # Accept arguments coming from bin/m and run tests, then bail out immediately.
14
+ #
15
+ # source://m-1.6.0/lib/m.rb:9
16
+ def run(argv); end
17
+ end
18
+ end
19
+
20
+ # source://m-1.6.0/lib/m/executor.rb:8
21
+ class M::Executor
22
+ # @return [Executor] a new instance of Executor
23
+ #
24
+ # source://m-1.6.0/lib/m/executor.rb:9
25
+ def initialize(testable); end
26
+
27
+ # source://m-1.6.0/lib/m/executor.rb:13
28
+ def execute; end
29
+
30
+ private
31
+
32
+ # source://m-1.6.0/lib/m/executor.rb:96
33
+ def runner; end
34
+
35
+ # Finds all test suites in this test file, with test methods included.
36
+ #
37
+ # source://m-1.6.0/lib/m/executor.rb:72
38
+ def suites; end
39
+
40
+ # Returns the value of attribute testable.
41
+ #
42
+ # source://m-1.6.0/lib/m/executor.rb:50
43
+ def testable; end
44
+
45
+ # Shoves tests together in our custom container and collection classes.
46
+ # Memoize it since it's unnecessary to do this more than one for a given file.
47
+ #
48
+ # source://m-1.6.0/lib/m/executor.rb:54
49
+ def tests; end
50
+ end
51
+
52
+ # source://m-1.6.0/lib/m/frameworks.rb:2
53
+ class M::Frameworks
54
+ # source://m-1.6.0/lib/m/frameworks.rb:7
55
+ def framework_runner; end
56
+
57
+ private
58
+
59
+ # @return [Boolean]
60
+ #
61
+ # source://m-1.6.0/lib/m/frameworks.rb:25
62
+ def minitest4?; end
63
+
64
+ # @return [Boolean]
65
+ #
66
+ # source://m-1.6.0/lib/m/frameworks.rb:21
67
+ def minitest5?; end
68
+
69
+ # @return [Boolean]
70
+ #
71
+ # source://m-1.6.0/lib/m/frameworks.rb:29
72
+ def test_unit?; end
73
+
74
+ class << self
75
+ # source://m-1.6.0/lib/m/frameworks.rb:3
76
+ def framework_runner; end
77
+
78
+ # @return [Boolean]
79
+ #
80
+ # source://m-1.6.0/lib/m/frameworks.rb:41
81
+ def minitest4?; end
82
+
83
+ # @return [Boolean]
84
+ #
85
+ # source://m-1.6.0/lib/m/frameworks.rb:37
86
+ def minitest5?; end
87
+
88
+ # source://m-1.6.0/lib/m/frameworks.rb:33
89
+ def minitest_version_major; end
90
+
91
+ # @return [Boolean]
92
+ #
93
+ # source://m-1.6.0/lib/m/frameworks.rb:45
94
+ def test_unit?; end
95
+ end
96
+ end
97
+
98
+ # source://m-1.6.0/lib/m/parser.rb:4
99
+ class M::Parser
100
+ # @return [Parser] a new instance of Parser
101
+ #
102
+ # source://m-1.6.0/lib/m/parser.rb:5
103
+ def initialize(argv); end
104
+
105
+ # source://m-1.6.0/lib/m/parser.rb:10
106
+ def parse; end
107
+
108
+ private
109
+
110
+ # Returns the value of attribute argv.
111
+ #
112
+ # source://m-1.6.0/lib/m/parser.rb:56
113
+ def argv; end
114
+
115
+ # source://m-1.6.0/lib/m/parser.rb:58
116
+ def parse_options!(argv); end
117
+
118
+ # Returns the value of attribute testable.
119
+ #
120
+ # source://m-1.6.0/lib/m/parser.rb:56
121
+ def testable; end
122
+
123
+ # source://m-1.6.0/lib/m/parser.rb:89
124
+ def wildcard(type); end
125
+ end
126
+
127
+ # source://m-1.6.0/lib/m/runner.rb:7
128
+ class M::Runner
129
+ # @return [Runner] a new instance of Runner
130
+ #
131
+ # source://m-1.6.0/lib/m/runner.rb:8
132
+ def initialize(argv); end
133
+
134
+ # There's two steps to running our tests:
135
+ # 1. Parsing the given input for the tests we need to find (or groups of tests)
136
+ # 2. Run those tests we found that match what you wanted
137
+ #
138
+ # source://m-1.6.0/lib/m/runner.rb:15
139
+ def run; end
140
+ end
141
+
142
+ # source://m-1.6.0/lib/m/runners/base.rb:2
143
+ module M::Runners; end
144
+
145
+ # source://m-1.6.0/lib/m/runners/base.rb:3
146
+ class M::Runners::Base
147
+ # source://m-1.6.0/lib/m/runners/base.rb:8
148
+ def run(_test_arguments); end
149
+
150
+ # source://m-1.6.0/lib/m/runners/base.rb:4
151
+ def suites; end
152
+
153
+ # source://m-1.6.0/lib/m/runners/base.rb:12
154
+ def test_methods(suite_class); end
155
+ end
156
+
157
+ # source://m-1.6.0/lib/m/runners/minitest_4.rb:3
158
+ class M::Runners::Minitest4 < ::M::Runners::Base
159
+ # source://m-1.6.0/lib/m/runners/minitest_4.rb:8
160
+ def run(test_arguments); end
161
+
162
+ # source://m-1.6.0/lib/m/runners/minitest_4.rb:4
163
+ def suites; end
164
+ end
165
+
166
+ # source://m-1.6.0/lib/m/runners/minitest_5.rb:3
167
+ class M::Runners::Minitest5 < ::M::Runners::Base
168
+ # source://m-1.6.0/lib/m/runners/minitest_5.rb:8
169
+ def run(test_arguments); end
170
+
171
+ # source://m-1.6.0/lib/m/runners/minitest_5.rb:4
172
+ def suites; end
173
+
174
+ # source://m-1.6.0/lib/m/runners/minitest_5.rb:14
175
+ def test_methods(suite_class); end
176
+ end
177
+
178
+ # source://m-1.6.0/lib/m/runners/test_unit.rb:3
179
+ class M::Runners::TestUnit < ::M::Runners::Base
180
+ # source://m-1.6.0/lib/m/runners/test_unit.rb:12
181
+ def run(test_arguments); end
182
+
183
+ # source://m-1.6.0/lib/m/runners/test_unit.rb:4
184
+ def suites; end
185
+
186
+ # source://m-1.6.0/lib/m/runners/test_unit.rb:16
187
+ def test_methods(suite_class); end
188
+ end
189
+
190
+ # source://m-1.6.0/lib/m/runners/unsupported_framework.rb:3
191
+ class M::Runners::UnsupportedFramework < ::M::Runners::Base
192
+ # source://m-1.6.0/lib/m/runners/unsupported_framework.rb:9
193
+ def run(_test_arguments); end
194
+
195
+ # source://m-1.6.0/lib/m/runners/unsupported_framework.rb:4
196
+ def suites; end
197
+
198
+ private
199
+
200
+ # source://m-1.6.0/lib/m/runners/unsupported_framework.rb:15
201
+ def not_supported; end
202
+ end
203
+
204
+ # source://m-1.6.0/lib/m/testable.rb:2
205
+ class M::Testable
206
+ # @return [Testable] a new instance of Testable
207
+ #
208
+ # source://m-1.6.0/lib/m/testable.rb:6
209
+ def initialize(file = T.unsafe(nil), lines = T.unsafe(nil), recursive = T.unsafe(nil)); end
210
+
211
+ # Returns the value of attribute file.
212
+ #
213
+ # source://m-1.6.0/lib/m/testable.rb:3
214
+ def file; end
215
+
216
+ # Sets the attribute file
217
+ #
218
+ # @param value the value to set the attribute file to.
219
+ #
220
+ # source://m-1.6.0/lib/m/testable.rb:3
221
+ def file=(_arg0); end
222
+
223
+ # Returns the value of attribute lines.
224
+ #
225
+ # source://m-1.6.0/lib/m/testable.rb:4
226
+ def lines; end
227
+
228
+ # source://m-1.6.0/lib/m/testable.rb:13
229
+ def lines=(lines); end
230
+
231
+ # Returns the value of attribute passthrough_options.
232
+ #
233
+ # source://m-1.6.0/lib/m/testable.rb:3
234
+ def passthrough_options; end
235
+
236
+ # Sets the attribute passthrough_options
237
+ #
238
+ # @param value the value to set the attribute passthrough_options to.
239
+ #
240
+ # source://m-1.6.0/lib/m/testable.rb:3
241
+ def passthrough_options=(_arg0); end
242
+
243
+ # Returns the value of attribute recursive.
244
+ #
245
+ # source://m-1.6.0/lib/m/testable.rb:3
246
+ def recursive; end
247
+
248
+ # Sets the attribute recursive
249
+ #
250
+ # @param value the value to set the attribute recursive to.
251
+ #
252
+ # source://m-1.6.0/lib/m/testable.rb:3
253
+ def recursive=(_arg0); end
254
+ end
255
+
256
+ # source://m-1.6.0/lib/m/version.rb:2
257
+ M::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,220 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `marcel` gem.
5
+ # Please instead update this file by running `bin/tapioca gem marcel`.
6
+
7
+ # This file is auto-generated. Instead of editing this file, please
8
+ # add MIMEs to data/custom.xml or lib/marcel/mime_type/definitions.rb.
9
+ #
10
+ # source://marcel-1.0.2/lib/marcel.rb:1
11
+ module Marcel; end
12
+
13
+ # @private
14
+ #
15
+ # source://marcel-1.0.2/lib/marcel/tables.rb:10
16
+ Marcel::EXTENSIONS = T.let(T.unsafe(nil), Hash)
17
+
18
+ # @private
19
+ #
20
+ # source://marcel-1.0.2/lib/marcel/tables.rb:2154
21
+ Marcel::MAGIC = T.let(T.unsafe(nil), Array)
22
+
23
+ # Mime type detection
24
+ #
25
+ # source://marcel-1.0.2/lib/marcel/magic.rb:12
26
+ class Marcel::Magic
27
+ # Mime type by type string
28
+ #
29
+ # @return [Magic] a new instance of Magic
30
+ #
31
+ # source://marcel-1.0.2/lib/marcel/magic.rb:16
32
+ def initialize(type); end
33
+
34
+ # Allow comparison with string
35
+ #
36
+ # @return [Boolean]
37
+ #
38
+ # source://marcel-1.0.2/lib/marcel/magic.rb:102
39
+ def ==(other); end
40
+
41
+ # @return [Boolean]
42
+ #
43
+ # source://marcel-1.0.2/lib/marcel/magic.rb:53
44
+ def audio?; end
45
+
46
+ # Returns true if type is child of parent type
47
+ #
48
+ # @return [Boolean]
49
+ #
50
+ # source://marcel-1.0.2/lib/marcel/magic.rb:57
51
+ def child_of?(parent); end
52
+
53
+ # Get mime comment
54
+ #
55
+ # source://marcel-1.0.2/lib/marcel/magic.rb:67
56
+ def comment; end
57
+
58
+ # Allow comparison with string
59
+ #
60
+ # @return [Boolean]
61
+ #
62
+ # source://marcel-1.0.2/lib/marcel/magic.rb:102
63
+ def eql?(other); end
64
+
65
+ # Get string list of file extensions
66
+ #
67
+ # source://marcel-1.0.2/lib/marcel/magic.rb:62
68
+ def extensions; end
69
+
70
+ # source://marcel-1.0.2/lib/marcel/magic.rb:106
71
+ def hash; end
72
+
73
+ # Mediatype shortcuts
74
+ #
75
+ # @return [Boolean]
76
+ #
77
+ # source://marcel-1.0.2/lib/marcel/magic.rb:52
78
+ def image?; end
79
+
80
+ # Returns the value of attribute mediatype.
81
+ #
82
+ # source://marcel-1.0.2/lib/marcel/magic.rb:13
83
+ def mediatype; end
84
+
85
+ # Returns the value of attribute subtype.
86
+ #
87
+ # source://marcel-1.0.2/lib/marcel/magic.rb:13
88
+ def subtype; end
89
+
90
+ # Returns true if type is a text format
91
+ #
92
+ # @return [Boolean]
93
+ #
94
+ # source://marcel-1.0.2/lib/marcel/magic.rb:49
95
+ def text?; end
96
+
97
+ # Return type as string
98
+ #
99
+ # source://marcel-1.0.2/lib/marcel/magic.rb:97
100
+ def to_s; end
101
+
102
+ # Returns the value of attribute type.
103
+ #
104
+ # source://marcel-1.0.2/lib/marcel/magic.rb:13
105
+ def type; end
106
+
107
+ # @return [Boolean]
108
+ #
109
+ # source://marcel-1.0.2/lib/marcel/magic.rb:54
110
+ def video?; end
111
+
112
+ class << self
113
+ # Add custom mime type. Arguments:
114
+ # * <i>type</i>: Mime type
115
+ # * <i>options</i>: Options hash
116
+ #
117
+ # Option keys:
118
+ # * <i>:extensions</i>: String list or single string of file extensions
119
+ # * <i>:parents</i>: String list or single string of parent mime types
120
+ # * <i>:magic</i>: Mime magic specification
121
+ # * <i>:comment</i>: Comment string
122
+ #
123
+ # source://marcel-1.0.2/lib/marcel/magic.rb:30
124
+ def add(type, options); end
125
+
126
+ # Lookup all mime types by magic content analysis.
127
+ # This is a slower operation.
128
+ #
129
+ # source://marcel-1.0.2/lib/marcel/magic.rb:92
130
+ def all_by_magic(io); end
131
+
132
+ # Lookup mime type by file extension
133
+ #
134
+ # source://marcel-1.0.2/lib/marcel/magic.rb:72
135
+ def by_extension(ext); end
136
+
137
+ # Lookup mime type by magic content analysis.
138
+ # This is a slow operation.
139
+ #
140
+ # source://marcel-1.0.2/lib/marcel/magic.rb:85
141
+ def by_magic(io); end
142
+
143
+ # Lookup mime type by filename
144
+ #
145
+ # source://marcel-1.0.2/lib/marcel/magic.rb:79
146
+ def by_path(path); end
147
+
148
+ # @return [Boolean]
149
+ #
150
+ # source://marcel-1.0.2/lib/marcel/magic.rb:112
151
+ def child?(child, parent); end
152
+
153
+ # Removes a mime type from the dictionary. You might want to do this if
154
+ # you're seeing impossible conflicts (for instance, application/x-gmc-link).
155
+ # * <i>type</i>: The mime type to remove. All associated extensions and magic are removed too.
156
+ #
157
+ # source://marcel-1.0.2/lib/marcel/magic.rb:42
158
+ def remove(type); end
159
+
160
+ private
161
+
162
+ # source://marcel-1.0.2/lib/marcel/magic.rb:116
163
+ def magic_match(io, method); end
164
+
165
+ # source://marcel-1.0.2/lib/marcel/magic.rb:126
166
+ def magic_match_io(io, matches, buffer); end
167
+ end
168
+ end
169
+
170
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:2
171
+ class Marcel::MimeType
172
+ class << self
173
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:6
174
+ def extend(type, extensions: T.unsafe(nil), parents: T.unsafe(nil), magic: T.unsafe(nil)); end
175
+
176
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:16
177
+ def for(pathname_or_io = T.unsafe(nil), name: T.unsafe(nil), extension: T.unsafe(nil), declared_type: T.unsafe(nil)); end
178
+
179
+ private
180
+
181
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:28
182
+ def for_data(pathname_or_io); end
183
+
184
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:54
185
+ def for_declared_type(declared_type); end
186
+
187
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:46
188
+ def for_extension(extension); end
189
+
190
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:38
191
+ def for_name(name); end
192
+
193
+ # For some document types (notably Microsoft Office) we recognise the main content
194
+ # type with magic, but not the specific subclass. In this situation, if we can get a more
195
+ # specific class using either the name or declared_type, we should use that in preference
196
+ #
197
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:80
198
+ def most_specific_type(from_magic_type, fallback_type); end
199
+
200
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:70
201
+ def parse_media_type(content_type); end
202
+
203
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:88
204
+ def root_types(type); end
205
+
206
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:62
207
+ def with_io(pathname_or_io, &block); end
208
+ end
209
+ end
210
+
211
+ # source://marcel-1.0.2/lib/marcel/mime_type.rb:3
212
+ Marcel::MimeType::BINARY = T.let(T.unsafe(nil), String)
213
+
214
+ # @private
215
+ #
216
+ # source://marcel-1.0.2/lib/marcel/tables.rb:1261
217
+ Marcel::TYPES = T.let(T.unsafe(nil), Hash)
218
+
219
+ # source://marcel-1.0.2/lib/marcel/version.rb:2
220
+ Marcel::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,170 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `mini_mime` gem.
5
+ # Please instead update this file by running `bin/tapioca gem mini_mime`.
6
+
7
+ # source://mini_mime-1.1.2/lib/mini_mime/version.rb:2
8
+ module MiniMime
9
+ class << self
10
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:14
11
+ def lookup_by_content_type(mime); end
12
+
13
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:10
14
+ def lookup_by_extension(extension); end
15
+
16
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:6
17
+ def lookup_by_filename(filename); end
18
+ end
19
+ end
20
+
21
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:18
22
+ module MiniMime::Configuration
23
+ class << self
24
+ # Returns the value of attribute content_type_db_path.
25
+ #
26
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:21
27
+ def content_type_db_path; end
28
+
29
+ # Sets the attribute content_type_db_path
30
+ #
31
+ # @param value the value to set the attribute content_type_db_path to.
32
+ #
33
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:21
34
+ def content_type_db_path=(_arg0); end
35
+
36
+ # Returns the value of attribute ext_db_path.
37
+ #
38
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:20
39
+ def ext_db_path; end
40
+
41
+ # Sets the attribute ext_db_path
42
+ #
43
+ # @param value the value to set the attribute ext_db_path to.
44
+ #
45
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:20
46
+ def ext_db_path=(_arg0); end
47
+ end
48
+ end
49
+
50
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:52
51
+ class MiniMime::Db
52
+ # @return [Db] a new instance of Db
53
+ #
54
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:154
55
+ def initialize; end
56
+
57
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:163
58
+ def lookup_by_content_type(content_type); end
59
+
60
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:159
61
+ def lookup_by_extension(extension); end
62
+
63
+ class << self
64
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:70
65
+ def lookup_by_content_type(content_type); end
66
+
67
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:62
68
+ def lookup_by_extension(extension); end
69
+
70
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:55
71
+ def lookup_by_filename(filename); end
72
+ end
73
+ end
74
+
75
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:77
76
+ class MiniMime::Db::Cache
77
+ # @return [Cache] a new instance of Cache
78
+ #
79
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:78
80
+ def initialize(size); end
81
+
82
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:83
83
+ def []=(key, val); end
84
+
85
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:89
86
+ def fetch(key, &blk); end
87
+ end
88
+
89
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:53
90
+ MiniMime::Db::LOCK = T.let(T.unsafe(nil), Thread::Mutex)
91
+
92
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:94
93
+ class MiniMime::Db::RandomAccessDb
94
+ # @return [RandomAccessDb] a new instance of RandomAccessDb
95
+ #
96
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:97
97
+ def initialize(path, sort_order); end
98
+
99
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:111
100
+ def lookup(val); end
101
+
102
+ # lifted from marcandre/backports
103
+ #
104
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:127
105
+ def lookup_uncached(val); end
106
+
107
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:148
108
+ def resolve(row); end
109
+ end
110
+
111
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:95
112
+ MiniMime::Db::RandomAccessDb::MAX_CACHED = T.let(T.unsafe(nil), Integer)
113
+
114
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:28
115
+ class MiniMime::Info
116
+ # @return [Info] a new instance of Info
117
+ #
118
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:33
119
+ def initialize(buffer); end
120
+
121
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:37
122
+ def [](idx); end
123
+
124
+ # @return [Boolean]
125
+ #
126
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:47
127
+ def binary?; end
128
+
129
+ # Returns the value of attribute content_type.
130
+ #
131
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
132
+ def content_type; end
133
+
134
+ # Sets the attribute content_type
135
+ #
136
+ # @param value the value to set the attribute content_type to.
137
+ #
138
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
139
+ def content_type=(_arg0); end
140
+
141
+ # Returns the value of attribute encoding.
142
+ #
143
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
144
+ def encoding; end
145
+
146
+ # Sets the attribute encoding
147
+ #
148
+ # @param value the value to set the attribute encoding to.
149
+ #
150
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
151
+ def encoding=(_arg0); end
152
+
153
+ # Returns the value of attribute extension.
154
+ #
155
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
156
+ def extension; end
157
+
158
+ # Sets the attribute extension
159
+ #
160
+ # @param value the value to set the attribute extension to.
161
+ #
162
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:31
163
+ def extension=(_arg0); end
164
+ end
165
+
166
+ # source://mini_mime-1.1.2/lib/mini_mime.rb:29
167
+ MiniMime::Info::BINARY_ENCODINGS = T.let(T.unsafe(nil), Array)
168
+
169
+ # source://mini_mime-1.1.2/lib/mini_mime/version.rb:3
170
+ MiniMime::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,8 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `mini_portile2` gem.
5
+ # Please instead update this file by running `bin/tapioca gem mini_portile2`.
6
+
7
+ # THIS IS AN EMPTY RBI FILE.
8
+ # see https://github.com/Shopify/tapioca/wiki/Manual-Gem-Requires