packwerk 1.0.0

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 (153) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. data/.github/probots.yml +2 -0
  4. data/.github/pull_request_template.md +27 -0
  5. data/.github/workflows/ci.yml +50 -0
  6. data/.gitignore +12 -0
  7. data/.rubocop.yml +46 -0
  8. data/.ruby-version +1 -0
  9. data/CODEOWNERS +1 -0
  10. data/CODE_OF_CONDUCT.md +76 -0
  11. data/CONTRIBUTING.md +17 -0
  12. data/Gemfile +22 -0
  13. data/Gemfile.lock +236 -0
  14. data/LICENSE.md +7 -0
  15. data/README.md +73 -0
  16. data/Rakefile +13 -0
  17. data/TROUBLESHOOT.md +67 -0
  18. data/USAGE.md +250 -0
  19. data/bin/console +15 -0
  20. data/bin/setup +8 -0
  21. data/dev.yml +32 -0
  22. data/docs/cohesion.png +0 -0
  23. data/exe/packwerk +6 -0
  24. data/lib/packwerk.rb +44 -0
  25. data/lib/packwerk/application_validator.rb +343 -0
  26. data/lib/packwerk/association_inspector.rb +44 -0
  27. data/lib/packwerk/checking_deprecated_references.rb +40 -0
  28. data/lib/packwerk/cli.rb +238 -0
  29. data/lib/packwerk/configuration.rb +82 -0
  30. data/lib/packwerk/const_node_inspector.rb +44 -0
  31. data/lib/packwerk/constant_discovery.rb +60 -0
  32. data/lib/packwerk/constant_name_inspector.rb +22 -0
  33. data/lib/packwerk/dependency_checker.rb +28 -0
  34. data/lib/packwerk/deprecated_references.rb +92 -0
  35. data/lib/packwerk/file_processor.rb +43 -0
  36. data/lib/packwerk/files_for_processing.rb +67 -0
  37. data/lib/packwerk/formatters/progress_formatter.rb +46 -0
  38. data/lib/packwerk/generators/application_validation.rb +62 -0
  39. data/lib/packwerk/generators/configuration_file.rb +69 -0
  40. data/lib/packwerk/generators/inflections_file.rb +43 -0
  41. data/lib/packwerk/generators/root_package.rb +37 -0
  42. data/lib/packwerk/generators/templates/inflections.yml +6 -0
  43. data/lib/packwerk/generators/templates/package.yml +17 -0
  44. data/lib/packwerk/generators/templates/packwerk +23 -0
  45. data/lib/packwerk/generators/templates/packwerk.yml.erb +23 -0
  46. data/lib/packwerk/generators/templates/packwerk_validator_test.rb +11 -0
  47. data/lib/packwerk/graph.rb +74 -0
  48. data/lib/packwerk/inflections/custom.rb +33 -0
  49. data/lib/packwerk/inflections/default.rb +73 -0
  50. data/lib/packwerk/inflector.rb +41 -0
  51. data/lib/packwerk/node.rb +259 -0
  52. data/lib/packwerk/node_processor.rb +49 -0
  53. data/lib/packwerk/node_visitor.rb +22 -0
  54. data/lib/packwerk/offense.rb +44 -0
  55. data/lib/packwerk/output_styles.rb +41 -0
  56. data/lib/packwerk/package.rb +56 -0
  57. data/lib/packwerk/package_set.rb +59 -0
  58. data/lib/packwerk/parsed_constant_definitions.rb +62 -0
  59. data/lib/packwerk/parsers.rb +23 -0
  60. data/lib/packwerk/parsers/erb.rb +66 -0
  61. data/lib/packwerk/parsers/factory.rb +34 -0
  62. data/lib/packwerk/parsers/ruby.rb +42 -0
  63. data/lib/packwerk/privacy_checker.rb +45 -0
  64. data/lib/packwerk/reference.rb +6 -0
  65. data/lib/packwerk/reference_extractor.rb +81 -0
  66. data/lib/packwerk/reference_lister.rb +23 -0
  67. data/lib/packwerk/run_context.rb +103 -0
  68. data/lib/packwerk/sanity_checker.rb +10 -0
  69. data/lib/packwerk/spring_command.rb +28 -0
  70. data/lib/packwerk/updating_deprecated_references.rb +51 -0
  71. data/lib/packwerk/version.rb +6 -0
  72. data/lib/packwerk/violation_type.rb +13 -0
  73. data/library.yml +6 -0
  74. data/packwerk.gemspec +58 -0
  75. data/service.yml +6 -0
  76. data/shipit.rubygems.yml +1 -0
  77. data/sorbet/config +2 -0
  78. data/sorbet/rbi/gems/actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +840 -0
  79. data/sorbet/rbi/gems/actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +571 -0
  80. data/sorbet/rbi/gems/actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +568 -0
  81. data/sorbet/rbi/gems/actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +5216 -0
  82. data/sorbet/rbi/gems/actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +663 -0
  83. data/sorbet/rbi/gems/actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +2504 -0
  84. data/sorbet/rbi/gems/activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +635 -0
  85. data/sorbet/rbi/gems/activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +1201 -0
  86. data/sorbet/rbi/gems/activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8011 -0
  87. data/sorbet/rbi/gems/activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +904 -0
  88. data/sorbet/rbi/gems/activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +3888 -0
  89. data/sorbet/rbi/gems/ast@2.4.1.rbi +54 -0
  90. data/sorbet/rbi/gems/better_html@1.0.15.rbi +317 -0
  91. data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
  92. data/sorbet/rbi/gems/byebug@11.1.3.rbi +8 -0
  93. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  94. data/sorbet/rbi/gems/colorize@0.8.1.rbi +40 -0
  95. data/sorbet/rbi/gems/commander@4.5.2.rbi +8 -0
  96. data/sorbet/rbi/gems/concurrent-ruby@1.1.6.rbi +1966 -0
  97. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +26 -0
  98. data/sorbet/rbi/gems/crass@1.0.6.rbi +138 -0
  99. data/sorbet/rbi/gems/erubi@1.9.0.rbi +39 -0
  100. data/sorbet/rbi/gems/globalid@0.4.2.rbi +178 -0
  101. data/sorbet/rbi/gems/highline@2.0.3.rbi +8 -0
  102. data/sorbet/rbi/gems/html_tokenizer@0.0.7.rbi +46 -0
  103. data/sorbet/rbi/gems/i18n@1.8.2.rbi +633 -0
  104. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +8 -0
  105. data/sorbet/rbi/gems/loofah@2.5.0.rbi +272 -0
  106. data/sorbet/rbi/gems/m@1.5.1.rbi +108 -0
  107. data/sorbet/rbi/gems/mail@2.7.1.rbi +2490 -0
  108. data/sorbet/rbi/gems/marcel@0.3.3.rbi +30 -0
  109. data/sorbet/rbi/gems/method_source@1.0.0.rbi +76 -0
  110. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +47 -0
  111. data/sorbet/rbi/gems/mini_mime@1.0.2.rbi +71 -0
  112. data/sorbet/rbi/gems/mini_portile2@2.4.0.rbi +8 -0
  113. data/sorbet/rbi/gems/minitest@5.14.0.rbi +542 -0
  114. data/sorbet/rbi/gems/mocha@1.11.2.rbi +964 -0
  115. data/sorbet/rbi/gems/nio4r@2.5.2.rbi +89 -0
  116. data/sorbet/rbi/gems/nokogiri@1.10.9.rbi +1608 -0
  117. data/sorbet/rbi/gems/parallel@1.19.1.rbi +8 -0
  118. data/sorbet/rbi/gems/parlour@4.0.1.rbi +561 -0
  119. data/sorbet/rbi/gems/parser@2.7.1.4.rbi +1632 -0
  120. data/sorbet/rbi/gems/pry@0.13.1.rbi +8 -0
  121. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +335 -0
  122. data/sorbet/rbi/gems/rack@2.2.2.rbi +1730 -0
  123. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +123 -0
  124. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +213 -0
  125. data/sorbet/rbi/gems/rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8 -0
  126. data/sorbet/rbi/gems/railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +869 -0
  127. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +155 -0
  128. data/sorbet/rbi/gems/rake@13.0.1.rbi +841 -0
  129. data/sorbet/rbi/gems/rexml@3.2.4.rbi +8 -0
  130. data/sorbet/rbi/gems/rubocop-performance@1.5.2.rbi +8 -0
  131. data/sorbet/rbi/gems/rubocop-shopify@1.0.2.rbi +8 -0
  132. data/sorbet/rbi/gems/rubocop-sorbet@0.3.7.rbi +8 -0
  133. data/sorbet/rbi/gems/rubocop@0.82.0.rbi +8 -0
  134. data/sorbet/rbi/gems/ruby-progressbar@1.10.1.rbi +8 -0
  135. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +168 -0
  136. data/sorbet/rbi/gems/spoom@1.0.4.rbi +418 -0
  137. data/sorbet/rbi/gems/spring@2.1.0.rbi +160 -0
  138. data/sorbet/rbi/gems/sprockets-rails@3.2.1.rbi +431 -0
  139. data/sorbet/rbi/gems/sprockets@4.0.0.rbi +1132 -0
  140. data/sorbet/rbi/gems/tapioca@0.4.5.rbi +518 -0
  141. data/sorbet/rbi/gems/thor@1.0.1.rbi +892 -0
  142. data/sorbet/rbi/gems/tzinfo@2.0.2.rbi +547 -0
  143. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +8 -0
  144. data/sorbet/rbi/gems/websocket-driver@0.7.1.rbi +438 -0
  145. data/sorbet/rbi/gems/websocket-extensions@0.1.4.rbi +71 -0
  146. data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +8 -0
  147. data/sorbet/tapioca/require.rb +25 -0
  148. data/static/packwerk-check-demo.png +0 -0
  149. data/static/packwerk_check.gif +0 -0
  150. data/static/packwerk_check_violation.gif +0 -0
  151. data/static/packwerk_update.gif +0 -0
  152. data/static/packwerk_validate.gif +0 -0
  153. metadata +341 -0
@@ -0,0 +1,635 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `activejob` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module ActiveJob
8
+ extend(::ActiveSupport::Autoload)
9
+
10
+ class << self
11
+ def gem_version; end
12
+ def version; end
13
+ end
14
+ end
15
+
16
+ module ActiveJob::Arguments
17
+ extend(::ActiveJob::Arguments)
18
+
19
+ def deserialize(arguments); end
20
+ def serialize(arguments); end
21
+
22
+ private
23
+
24
+ def convert_to_global_id_hash(argument); end
25
+ def custom_serialized?(hash); end
26
+ def deserialize_argument(argument); end
27
+ def deserialize_global_id(hash); end
28
+ def deserialize_hash(serialized_hash); end
29
+ def serialize_argument(argument); end
30
+ def serialize_hash(argument); end
31
+ def serialize_hash_key(key); end
32
+ def serialize_indifferent_hash(indifferent_hash); end
33
+ def serialized_global_id?(hash); end
34
+ def transform_symbol_keys(hash, symbol_keys); end
35
+ end
36
+
37
+ ActiveJob::Arguments::OBJECT_SERIALIZER_KEY = T.let(T.unsafe(nil), String)
38
+
39
+ class ActiveJob::Base
40
+ include(::ActiveJob::Core)
41
+ include(::ActiveJob::QueueAdapter)
42
+ include(::ActiveJob::QueueName)
43
+ include(::ActiveJob::QueuePriority)
44
+ include(::ActiveJob::Enqueuing)
45
+ include(::ActiveSupport::Rescuable)
46
+ include(::ActiveJob::Execution)
47
+ include(::ActiveSupport::Callbacks)
48
+ include(::ActiveJob::Callbacks)
49
+ include(::ActiveJob::Exceptions)
50
+ include(::ActiveJob::Logging)
51
+ include(::ActiveJob::Instrumentation)
52
+ include(::ActiveJob::Timezones)
53
+ include(::ActiveJob::Translation)
54
+ include(::ActiveJob::TestHelper::TestQueueAdapter)
55
+ extend(::ActiveJob::Core::ClassMethods)
56
+ extend(::ActiveJob::QueueAdapter::ClassMethods)
57
+ extend(::ActiveJob::QueueName::ClassMethods)
58
+ extend(::ActiveJob::QueuePriority::ClassMethods)
59
+ extend(::ActiveJob::Enqueuing::ClassMethods)
60
+ extend(::ActiveSupport::Rescuable::ClassMethods)
61
+ extend(::ActiveJob::Execution::ClassMethods)
62
+ extend(::ActiveSupport::Callbacks::ClassMethods)
63
+ extend(::ActiveSupport::DescendantsTracker)
64
+ extend(::ActiveJob::Callbacks::ClassMethods)
65
+ extend(::ActiveJob::Exceptions::ClassMethods)
66
+ extend(::ActiveJob::TestHelper::TestQueueAdapter::ClassMethods)
67
+
68
+ def __callbacks; end
69
+ def __callbacks?; end
70
+ def _enqueue_callbacks; end
71
+ def _perform_callbacks; end
72
+ def _run_enqueue_callbacks(&block); end
73
+ def _run_perform_callbacks(&block); end
74
+ def logger; end
75
+ def logger=(val); end
76
+ def queue_adapter(*args, &block); end
77
+ def queue_name_prefix; end
78
+ def queue_name_prefix=(_); end
79
+ def queue_name_prefix?; end
80
+ def rescue_handlers; end
81
+ def rescue_handlers=(_); end
82
+ def rescue_handlers?; end
83
+
84
+ class << self
85
+ def __callbacks; end
86
+ def __callbacks=(value); end
87
+ def __callbacks?; end
88
+ def _enqueue_callbacks; end
89
+ def _enqueue_callbacks=(value); end
90
+ def _perform_callbacks; end
91
+ def _perform_callbacks=(value); end
92
+ def _queue_adapter; end
93
+ def _queue_adapter=(value); end
94
+ def _queue_adapter_name; end
95
+ def _queue_adapter_name=(value); end
96
+ def _test_adapter; end
97
+ def _test_adapter=(value); end
98
+ def log_arguments; end
99
+ def log_arguments=(value); end
100
+ def log_arguments?; end
101
+ def logger; end
102
+ def logger=(val); end
103
+ def priority; end
104
+ def priority=(value); end
105
+ def priority?; end
106
+ def queue_name; end
107
+ def queue_name=(value); end
108
+ def queue_name?; end
109
+ def queue_name_delimiter; end
110
+ def queue_name_delimiter=(value); end
111
+ def queue_name_delimiter?; end
112
+ def queue_name_prefix; end
113
+ def queue_name_prefix=(value); end
114
+ def queue_name_prefix?; end
115
+ def rescue_handlers; end
116
+ def rescue_handlers=(value); end
117
+ def rescue_handlers?; end
118
+ def retry_jitter; end
119
+ def retry_jitter=(value); end
120
+ def return_false_on_aborted_enqueue; end
121
+ def return_false_on_aborted_enqueue=(value); end
122
+ def skip_after_callbacks_if_terminated; end
123
+ def skip_after_callbacks_if_terminated=(val); end
124
+ end
125
+ end
126
+
127
+ module ActiveJob::Callbacks
128
+ extend(::ActiveSupport::Concern)
129
+ extend(::ActiveSupport::Callbacks)
130
+
131
+ include(::ActiveSupport::Callbacks)
132
+
133
+ mixes_in_class_methods(::ActiveJob::Callbacks::ClassMethods)
134
+
135
+
136
+ private
137
+
138
+ def halted_callback_hook(_filter, name); end
139
+
140
+ class << self
141
+ def __callbacks; end
142
+ def __callbacks?; end
143
+ def _execute_callbacks; end
144
+ def _run_execute_callbacks(&block); end
145
+ end
146
+ end
147
+
148
+ module ActiveJob::Callbacks::ClassMethods
149
+ def after_enqueue(*filters, &blk); end
150
+ def after_perform(*filters, &blk); end
151
+ def around_enqueue(*filters, &blk); end
152
+ def around_perform(*filters, &blk); end
153
+ def before_enqueue(*filters, &blk); end
154
+ def before_perform(*filters, &blk); end
155
+ def inherited(klass); end
156
+ end
157
+
158
+ class ActiveJob::ConfiguredJob
159
+ def initialize(job_class, options = T.unsafe(nil)); end
160
+
161
+ def perform_later(*args); end
162
+ def perform_now(*args); end
163
+ end
164
+
165
+ module ActiveJob::Core
166
+ extend(::ActiveSupport::Concern)
167
+
168
+ mixes_in_class_methods(::ActiveJob::Core::ClassMethods)
169
+
170
+ def initialize(*arguments); end
171
+
172
+ def arguments; end
173
+ def arguments=(_); end
174
+ def deserialize(job_data); end
175
+ def enqueued_at; end
176
+ def enqueued_at=(_); end
177
+ def exception_executions; end
178
+ def exception_executions=(_); end
179
+ def executions; end
180
+ def executions=(_); end
181
+ def job_id; end
182
+ def job_id=(_); end
183
+ def locale; end
184
+ def locale=(_); end
185
+ def priority=(_); end
186
+ def provider_job_id; end
187
+ def provider_job_id=(_); end
188
+ def queue_name=(_); end
189
+ def scheduled_at; end
190
+ def scheduled_at=(_); end
191
+ def serialize; end
192
+ def serialized_arguments=(_); end
193
+ def timezone; end
194
+ def timezone=(_); end
195
+
196
+ private
197
+
198
+ def arguments_serialized?; end
199
+ def deserialize_arguments(serialized_args); end
200
+ def deserialize_arguments_if_needed; end
201
+ def serialize_arguments(arguments); end
202
+ def serialize_arguments_if_needed(arguments); end
203
+ end
204
+
205
+ module ActiveJob::Core::ClassMethods
206
+ def deserialize(job_data); end
207
+ def set(options = T.unsafe(nil)); end
208
+ end
209
+
210
+ class ActiveJob::DeserializationError < ::StandardError
211
+ def initialize; end
212
+ end
213
+
214
+ module ActiveJob::Enqueuing
215
+ extend(::ActiveSupport::Concern)
216
+
217
+ mixes_in_class_methods(::ActiveJob::Enqueuing::ClassMethods)
218
+
219
+ def enqueue(options = T.unsafe(nil)); end
220
+ end
221
+
222
+ module ActiveJob::Enqueuing::ClassMethods
223
+ def perform_later(*args); end
224
+
225
+ private
226
+
227
+ def job_or_instantiate(*args); end
228
+ end
229
+
230
+ module ActiveJob::Exceptions
231
+ extend(::ActiveSupport::Concern)
232
+
233
+ mixes_in_class_methods(::ActiveJob::Exceptions::ClassMethods)
234
+
235
+ def retry_job(options = T.unsafe(nil)); end
236
+
237
+ private
238
+
239
+ def determine_delay(seconds_or_duration_or_algorithm:, executions:, jitter: T.unsafe(nil)); end
240
+ def determine_jitter_for_delay(delay, jitter); end
241
+ def executions_for(exceptions); end
242
+ end
243
+
244
+ module ActiveJob::Exceptions::ClassMethods
245
+ def discard_on(*exceptions); end
246
+ def retry_on(*exceptions, wait: T.unsafe(nil), attempts: T.unsafe(nil), queue: T.unsafe(nil), priority: T.unsafe(nil), jitter: T.unsafe(nil)); end
247
+ end
248
+
249
+ module ActiveJob::Execution
250
+ extend(::ActiveSupport::Concern)
251
+
252
+ include(::ActiveSupport::Rescuable)
253
+
254
+ mixes_in_class_methods(::ActiveJob::Execution::ClassMethods)
255
+
256
+ def perform(*_); end
257
+ def perform_now; end
258
+ end
259
+
260
+ module ActiveJob::Execution::ClassMethods
261
+ def execute(job_data); end
262
+ def perform_now(*args); end
263
+ end
264
+
265
+ module ActiveJob::Instrumentation
266
+ extend(::ActiveSupport::Concern)
267
+
268
+
269
+ private
270
+
271
+ def halted_callback_hook(*_); end
272
+ def instrument(operation, payload = T.unsafe(nil), &block); end
273
+ end
274
+
275
+ class ActiveJob::LogSubscriber < ::ActiveSupport::LogSubscriber
276
+ def discard(event); end
277
+ def enqueue(event); end
278
+ def enqueue_at(event); end
279
+ def enqueue_retry(event); end
280
+ def perform(event); end
281
+ def perform_start(event); end
282
+ def retry_stopped(event); end
283
+
284
+ private
285
+
286
+ def args_info(job); end
287
+ def format(arg); end
288
+ def logger; end
289
+ def queue_name(event); end
290
+ def scheduled_at(event); end
291
+ end
292
+
293
+ module ActiveJob::Logging
294
+ extend(::ActiveSupport::Concern)
295
+
296
+
297
+ private
298
+
299
+ def logger_tagged_by_active_job?; end
300
+ def tag_logger(*tags); end
301
+ end
302
+
303
+ module ActiveJob::QueueAdapter
304
+ extend(::ActiveSupport::Concern)
305
+
306
+ mixes_in_class_methods(::ActiveJob::QueueAdapter::ClassMethods)
307
+ end
308
+
309
+ module ActiveJob::QueueAdapter::ClassMethods
310
+ def queue_adapter; end
311
+ def queue_adapter=(name_or_adapter); end
312
+ def queue_adapter_name; end
313
+
314
+ private
315
+
316
+ def assign_adapter(adapter_name, queue_adapter); end
317
+ def queue_adapter?(object); end
318
+ end
319
+
320
+ ActiveJob::QueueAdapter::ClassMethods::QUEUE_ADAPTER_METHODS = T.let(T.unsafe(nil), Array)
321
+
322
+ module ActiveJob::QueueAdapters
323
+ extend(::ActiveSupport::Autoload)
324
+
325
+ class << self
326
+ def lookup(name); end
327
+ end
328
+ end
329
+
330
+ class ActiveJob::QueueAdapters::AsyncAdapter
331
+ def initialize(**executor_options); end
332
+
333
+ def enqueue(job); end
334
+ def enqueue_at(job, timestamp); end
335
+ def immediate=(immediate); end
336
+ def shutdown(wait: T.unsafe(nil)); end
337
+ end
338
+
339
+ class ActiveJob::QueueAdapters::AsyncAdapter::JobWrapper
340
+ def initialize(job); end
341
+
342
+ def perform; end
343
+ end
344
+
345
+ class ActiveJob::QueueAdapters::AsyncAdapter::Scheduler
346
+ def initialize(**options); end
347
+
348
+ def enqueue(job, queue_name:); end
349
+ def enqueue_at(job, timestamp, queue_name:); end
350
+ def executor; end
351
+ def immediate; end
352
+ def immediate=(_); end
353
+ def shutdown(wait: T.unsafe(nil)); end
354
+ end
355
+
356
+ ActiveJob::QueueAdapters::AsyncAdapter::Scheduler::DEFAULT_EXECUTOR_OPTIONS = T.let(T.unsafe(nil), Hash)
357
+
358
+ class ActiveJob::QueueAdapters::InlineAdapter
359
+ def enqueue(job); end
360
+ def enqueue_at(*_); end
361
+ end
362
+
363
+ class ActiveJob::QueueAdapters::TestAdapter
364
+ def at; end
365
+ def at=(_); end
366
+ def enqueue(job); end
367
+ def enqueue_at(job, timestamp); end
368
+ def enqueued_jobs; end
369
+ def enqueued_jobs=(_); end
370
+ def filter; end
371
+ def filter=(_); end
372
+ def perform_enqueued_at_jobs; end
373
+ def perform_enqueued_at_jobs=(_); end
374
+ def perform_enqueued_jobs; end
375
+ def perform_enqueued_jobs=(_); end
376
+ def performed_jobs; end
377
+ def performed_jobs=(_); end
378
+ def queue; end
379
+ def queue=(_); end
380
+ def reject; end
381
+ def reject=(_); end
382
+
383
+ private
384
+
385
+ def filter_as_proc(filter); end
386
+ def filtered?(job); end
387
+ def filtered_job_class?(job); end
388
+ def filtered_queue?(job); end
389
+ def filtered_time?(job); end
390
+ def job_to_hash(job, extras = T.unsafe(nil)); end
391
+ def perform_or_enqueue(perform, job, job_data); end
392
+ end
393
+
394
+ module ActiveJob::QueueName
395
+ extend(::ActiveSupport::Concern)
396
+
397
+ mixes_in_class_methods(::ActiveJob::QueueName::ClassMethods)
398
+
399
+ def queue_name; end
400
+ end
401
+
402
+ module ActiveJob::QueueName::ClassMethods
403
+ def default_queue_name; end
404
+ def default_queue_name=(val); end
405
+ def queue_as(part_name = T.unsafe(nil), &block); end
406
+ def queue_name_from_part(part_name); end
407
+
408
+ class << self
409
+ def default_queue_name; end
410
+ def default_queue_name=(val); end
411
+ end
412
+ end
413
+
414
+ module ActiveJob::QueuePriority
415
+ extend(::ActiveSupport::Concern)
416
+
417
+ mixes_in_class_methods(::ActiveJob::QueuePriority::ClassMethods)
418
+
419
+ def priority; end
420
+ end
421
+
422
+ module ActiveJob::QueuePriority::ClassMethods
423
+ def default_priority; end
424
+ def default_priority=(val); end
425
+ def queue_with_priority(priority = T.unsafe(nil), &block); end
426
+
427
+ class << self
428
+ def default_priority; end
429
+ def default_priority=(val); end
430
+ end
431
+ end
432
+
433
+ class ActiveJob::Railtie < ::Rails::Railtie
434
+ end
435
+
436
+ class ActiveJob::SerializationError < ::ArgumentError
437
+ end
438
+
439
+ module ActiveJob::Serializers
440
+ extend(::ActiveSupport::Autoload)
441
+
442
+ def _additional_serializers; end
443
+ def _additional_serializers=(val); end
444
+
445
+ class << self
446
+ def _additional_serializers; end
447
+ def _additional_serializers=(val); end
448
+ def add_serializers(*new_serializers); end
449
+ def deserialize(argument); end
450
+ def serialize(argument); end
451
+ def serializers; end
452
+ end
453
+ end
454
+
455
+ class ActiveJob::Serializers::DateSerializer < ::ActiveJob::Serializers::ObjectSerializer
456
+ def deserialize(hash); end
457
+ def serialize(date); end
458
+
459
+ private
460
+
461
+ def klass; end
462
+
463
+ class << self
464
+ def instance; end
465
+ end
466
+ end
467
+
468
+ class ActiveJob::Serializers::DateTimeSerializer < ::ActiveJob::Serializers::ObjectSerializer
469
+ def deserialize(hash); end
470
+ def serialize(time); end
471
+
472
+ private
473
+
474
+ def klass; end
475
+
476
+ class << self
477
+ def instance; end
478
+ end
479
+ end
480
+
481
+ class ActiveJob::Serializers::DurationSerializer < ::ActiveJob::Serializers::ObjectSerializer
482
+ def deserialize(hash); end
483
+ def serialize(duration); end
484
+
485
+ private
486
+
487
+ def klass; end
488
+
489
+ class << self
490
+ def instance; end
491
+ end
492
+ end
493
+
494
+ class ActiveJob::Serializers::ModuleSerializer < ::ActiveJob::Serializers::ObjectSerializer
495
+ def deserialize(hash); end
496
+ def serialize(constant); end
497
+
498
+ private
499
+
500
+ def klass; end
501
+
502
+ class << self
503
+ def instance; end
504
+ end
505
+ end
506
+
507
+ class ActiveJob::Serializers::ObjectSerializer
508
+ include(::Singleton)
509
+ extend(::Singleton::SingletonClassMethods)
510
+
511
+ def deserialize(json); end
512
+ def serialize(hash); end
513
+ def serialize?(argument); end
514
+
515
+ private
516
+
517
+ def klass; end
518
+
519
+ class << self
520
+ def deserialize(*args, &block); end
521
+ def instance; end
522
+ def serialize(*args, &block); end
523
+ def serialize?(*args, &block); end
524
+ end
525
+ end
526
+
527
+ class ActiveJob::Serializers::SymbolSerializer < ::ActiveJob::Serializers::ObjectSerializer
528
+ def deserialize(argument); end
529
+ def serialize(argument); end
530
+
531
+ private
532
+
533
+ def klass; end
534
+
535
+ class << self
536
+ def instance; end
537
+ end
538
+ end
539
+
540
+ class ActiveJob::Serializers::TimeSerializer < ::ActiveJob::Serializers::ObjectSerializer
541
+ def deserialize(hash); end
542
+ def serialize(time); end
543
+
544
+ private
545
+
546
+ def klass; end
547
+
548
+ class << self
549
+ def instance; end
550
+ end
551
+ end
552
+
553
+ class ActiveJob::Serializers::TimeWithZoneSerializer < ::ActiveJob::Serializers::ObjectSerializer
554
+ def deserialize(hash); end
555
+ def serialize(time); end
556
+
557
+ private
558
+
559
+ def klass; end
560
+
561
+ class << self
562
+ def instance; end
563
+ end
564
+ end
565
+
566
+ class ActiveJob::TestCase < ::ActiveSupport::TestCase
567
+ include(::ActiveJob::TestHelper)
568
+ end
569
+
570
+ module ActiveJob::TestHelper
571
+ def after_teardown; end
572
+ def assert_enqueued_jobs(number, only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
573
+ def assert_enqueued_with(job: T.unsafe(nil), args: T.unsafe(nil), at: T.unsafe(nil), queue: T.unsafe(nil), &block); end
574
+ def assert_no_enqueued_jobs(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
575
+ def assert_no_performed_jobs(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
576
+ def assert_performed_jobs(number, only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
577
+ def assert_performed_with(job: T.unsafe(nil), args: T.unsafe(nil), at: T.unsafe(nil), queue: T.unsafe(nil), &block); end
578
+ def before_setup; end
579
+ def enqueued_jobs(*args, &block); end
580
+ def enqueued_jobs=(arg); end
581
+ def perform_enqueued_jobs(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), at: T.unsafe(nil), &block); end
582
+ def performed_jobs(*args, &block); end
583
+ def performed_jobs=(arg); end
584
+ def queue_adapter; end
585
+ def queue_adapter_for_test; end
586
+
587
+ private
588
+
589
+ def clear_enqueued_jobs; end
590
+ def clear_performed_jobs; end
591
+ def deserialize_args_for_assertion(job); end
592
+ def enqueued_jobs_with(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), at: T.unsafe(nil), &block); end
593
+ def filter_as_proc(filter); end
594
+ def flush_enqueued_jobs(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), at: T.unsafe(nil)); end
595
+ def instantiate_job(payload); end
596
+ def jobs_with(jobs, only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), at: T.unsafe(nil)); end
597
+ def performed_jobs_with(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
598
+ def prepare_args_for_assertion(args); end
599
+ def queue_adapter_changed_jobs; end
600
+ def round_time_arguments(argument); end
601
+ def validate_option(only: T.unsafe(nil), except: T.unsafe(nil)); end
602
+ end
603
+
604
+ module ActiveJob::TestHelper::TestQueueAdapter
605
+ extend(::ActiveSupport::Concern)
606
+
607
+ mixes_in_class_methods(::ActiveJob::TestHelper::TestQueueAdapter::ClassMethods)
608
+ end
609
+
610
+ module ActiveJob::TestHelper::TestQueueAdapter::ClassMethods
611
+ def disable_test_adapter; end
612
+ def enable_test_adapter(test_adapter); end
613
+ def queue_adapter; end
614
+ end
615
+
616
+ module ActiveJob::Timezones
617
+ extend(::ActiveSupport::Concern)
618
+ end
619
+
620
+ module ActiveJob::Translation
621
+ extend(::ActiveSupport::Concern)
622
+ end
623
+
624
+ module ActiveJob::VERSION
625
+ end
626
+
627
+ ActiveJob::VERSION::MAJOR = T.let(T.unsafe(nil), Integer)
628
+
629
+ ActiveJob::VERSION::MINOR = T.let(T.unsafe(nil), Integer)
630
+
631
+ ActiveJob::VERSION::PRE = T.let(T.unsafe(nil), String)
632
+
633
+ ActiveJob::VERSION::STRING = T.let(T.unsafe(nil), String)
634
+
635
+ ActiveJob::VERSION::TINY = T.let(T.unsafe(nil), Integer)