packwerk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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)