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,568 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `actionmailer` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module ActionMailer
8
+ extend(::ActiveSupport::Autoload)
9
+
10
+ class << self
11
+ def eager_load!; end
12
+ def gem_version; end
13
+ def version; end
14
+ end
15
+ end
16
+
17
+ class ActionMailer::Base < ::AbstractController::Base
18
+ include(::ActionMailer::DeliveryMethods)
19
+ include(::ActiveSupport::Rescuable)
20
+ include(::ActionMailer::Rescuable)
21
+ include(::ActionMailer::Parameterized)
22
+ include(::ActionMailer::Previews)
23
+ include(::ActionView::ViewPaths)
24
+ include(::AbstractController::Rendering)
25
+ include(::AbstractController::Logger)
26
+ include(::ActiveSupport::Benchmarkable)
27
+ include(::AbstractController::Helpers)
28
+ include(::AbstractController::Translation)
29
+ include(::AbstractController::AssetPaths)
30
+ include(::ActiveSupport::Callbacks)
31
+ include(::AbstractController::Callbacks)
32
+ include(::AbstractController::Caching::Fragments)
33
+ include(::AbstractController::Caching::ConfigMethods)
34
+ include(::AbstractController::Caching)
35
+ include(::ActionView::Rendering)
36
+ include(::ActionView::Layouts)
37
+ extend(::ActionMailer::DeliveryMethods::ClassMethods)
38
+ extend(::ActiveSupport::Rescuable::ClassMethods)
39
+ extend(::ActionMailer::Rescuable::ClassMethods)
40
+ extend(::ActionMailer::Parameterized::ClassMethods)
41
+ extend(::ActionMailer::Previews::ClassMethods)
42
+ extend(::ActionView::ViewPaths::ClassMethods)
43
+ extend(::AbstractController::Helpers::ClassMethods)
44
+ extend(::ActiveSupport::Callbacks::ClassMethods)
45
+ extend(::AbstractController::Callbacks::ClassMethods)
46
+ extend(::AbstractController::Caching::Fragments::ClassMethods)
47
+ extend(::AbstractController::Caching::ClassMethods)
48
+ extend(::AbstractController::Caching::ConfigMethods)
49
+ extend(::ActionView::Rendering::ClassMethods)
50
+ extend(::ActionView::Layouts::ClassMethods)
51
+
52
+ def initialize; end
53
+
54
+ def __callbacks; end
55
+ def __callbacks?; end
56
+ def _helper_methods; end
57
+ def _helper_methods=(_); end
58
+ def _helper_methods?; end
59
+ def _helpers; end
60
+ def _helpers=(_); end
61
+ def _helpers?; end
62
+ def _process_action_callbacks; end
63
+ def _run_process_action_callbacks(&block); end
64
+ def _view_cache_dependencies; end
65
+ def _view_cache_dependencies=(_); end
66
+ def _view_cache_dependencies?; end
67
+ def asset_host; end
68
+ def asset_host=(value); end
69
+ def assets_dir; end
70
+ def assets_dir=(value); end
71
+ def attachments; end
72
+ def default_asset_host_protocol; end
73
+ def default_asset_host_protocol=(value); end
74
+ def default_params; end
75
+ def default_params=(_); end
76
+ def default_params?; end
77
+ def default_static_extension; end
78
+ def default_static_extension=(value); end
79
+ def deliver_later_queue_name; end
80
+ def deliver_later_queue_name=(val); end
81
+ def delivery_job; end
82
+ def delivery_job=(_); end
83
+ def delivery_job?; end
84
+ def delivery_method; end
85
+ def delivery_method=(_); end
86
+ def delivery_method?; end
87
+ def delivery_methods; end
88
+ def delivery_methods=(_); end
89
+ def delivery_methods?; end
90
+ def email_address_with_name(address, name); end
91
+ def enable_fragment_cache_logging; end
92
+ def enable_fragment_cache_logging=(value); end
93
+ def file_settings; end
94
+ def file_settings=(_); end
95
+ def file_settings?; end
96
+ def fragment_cache_keys; end
97
+ def fragment_cache_keys=(_); end
98
+ def fragment_cache_keys?; end
99
+ def headers(args = T.unsafe(nil)); end
100
+ def javascripts_dir; end
101
+ def javascripts_dir=(value); end
102
+ def logger; end
103
+ def logger=(value); end
104
+ def mail(headers = T.unsafe(nil), &block); end
105
+ def mailer_name; end
106
+ def message; end
107
+ def message=(_); end
108
+ def params; end
109
+ def params=(_); end
110
+ def perform_caching; end
111
+ def perform_caching=(value); end
112
+ def perform_deliveries; end
113
+ def perform_deliveries=(val); end
114
+ def preview_interceptors; end
115
+ def preview_path; end
116
+ def process(method_name, *args); end
117
+ def raise_delivery_errors; end
118
+ def raise_delivery_errors=(val); end
119
+ def relative_url_root; end
120
+ def relative_url_root=(value); end
121
+ def rescue_handlers; end
122
+ def rescue_handlers=(_); end
123
+ def rescue_handlers?; end
124
+ def sendmail_settings; end
125
+ def sendmail_settings=(_); end
126
+ def sendmail_settings?; end
127
+ def show_previews; end
128
+ def smtp_settings; end
129
+ def smtp_settings=(_); end
130
+ def smtp_settings?; end
131
+ def stylesheets_dir; end
132
+ def stylesheets_dir=(value); end
133
+ def test_settings; end
134
+ def test_settings=(_); end
135
+ def test_settings?; end
136
+
137
+ private
138
+
139
+ def _layout(lookup_context, formats); end
140
+ def _protected_ivars; end
141
+ def apply_defaults(headers); end
142
+ def assign_headers_to_message(message, headers); end
143
+ def collect_responses(headers, &block); end
144
+ def collect_responses_from_block(headers); end
145
+ def collect_responses_from_templates(headers); end
146
+ def collect_responses_from_text(headers); end
147
+ def compute_default(value); end
148
+ def create_parts_from_responses(m, responses); end
149
+ def default_i18n_subject(interpolations = T.unsafe(nil)); end
150
+ def each_template(paths, name, &block); end
151
+ def insert_part(container, response, charset); end
152
+ def instrument_name; end
153
+ def instrument_payload(key); end
154
+ def set_content_type(m, user_content_type, class_default); end
155
+
156
+ class << self
157
+ def __callbacks; end
158
+ def __callbacks=(value); end
159
+ def __callbacks?; end
160
+ def _helper_methods; end
161
+ def _helper_methods=(value); end
162
+ def _helper_methods?; end
163
+ def _helpers; end
164
+ def _helpers=(value); end
165
+ def _helpers?; end
166
+ def _layout; end
167
+ def _layout=(value); end
168
+ def _layout?; end
169
+ def _layout_conditions; end
170
+ def _layout_conditions=(value); end
171
+ def _layout_conditions?; end
172
+ def _process_action_callbacks; end
173
+ def _process_action_callbacks=(value); end
174
+ def _view_cache_dependencies; end
175
+ def _view_cache_dependencies=(value); end
176
+ def _view_cache_dependencies?; end
177
+ def asset_host; end
178
+ def asset_host=(value); end
179
+ def assets_dir; end
180
+ def assets_dir=(value); end
181
+ def controller_path; end
182
+ def default(value = T.unsafe(nil)); end
183
+ def default_asset_host_protocol; end
184
+ def default_asset_host_protocol=(value); end
185
+ def default_options=(value = T.unsafe(nil)); end
186
+ def default_params; end
187
+ def default_params=(value); end
188
+ def default_params?; end
189
+ def default_static_extension; end
190
+ def default_static_extension=(value); end
191
+ def deliver_later_queue_name; end
192
+ def deliver_later_queue_name=(val); end
193
+ def deliver_mail(mail); end
194
+ def delivery_job; end
195
+ def delivery_job=(value); end
196
+ def delivery_job?; end
197
+ def delivery_method; end
198
+ def delivery_method=(value); end
199
+ def delivery_method?; end
200
+ def delivery_methods; end
201
+ def delivery_methods=(value); end
202
+ def delivery_methods?; end
203
+ def email_address_with_name(address, name); end
204
+ def enable_fragment_cache_logging; end
205
+ def enable_fragment_cache_logging=(value); end
206
+ def file_settings; end
207
+ def file_settings=(value); end
208
+ def file_settings?; end
209
+ def fragment_cache_keys; end
210
+ def fragment_cache_keys=(value); end
211
+ def fragment_cache_keys?; end
212
+ def javascripts_dir; end
213
+ def javascripts_dir=(value); end
214
+ def logger; end
215
+ def logger=(value); end
216
+ def mailer_name; end
217
+ def mailer_name=(_); end
218
+ def perform_caching; end
219
+ def perform_caching=(value); end
220
+ def perform_deliveries; end
221
+ def perform_deliveries=(val); end
222
+ def preview_interceptors; end
223
+ def preview_interceptors=(val); end
224
+ def preview_path; end
225
+ def preview_path=(val); end
226
+ def raise_delivery_errors; end
227
+ def raise_delivery_errors=(val); end
228
+ def register_interceptor(interceptor); end
229
+ def register_interceptors(*interceptors); end
230
+ def register_observer(observer); end
231
+ def register_observers(*observers); end
232
+ def relative_url_root; end
233
+ def relative_url_root=(value); end
234
+ def rescue_handlers; end
235
+ def rescue_handlers=(value); end
236
+ def rescue_handlers?; end
237
+ def sendmail_settings; end
238
+ def sendmail_settings=(value); end
239
+ def sendmail_settings?; end
240
+ def show_previews; end
241
+ def show_previews=(val); end
242
+ def smtp_settings; end
243
+ def smtp_settings=(value); end
244
+ def smtp_settings?; end
245
+ def stylesheets_dir; end
246
+ def stylesheets_dir=(value); end
247
+ def supports_path?; end
248
+ def test_settings; end
249
+ def test_settings=(value); end
250
+ def test_settings?; end
251
+ def unregister_interceptor(interceptor); end
252
+ def unregister_interceptors(*interceptors); end
253
+ def unregister_observer(observer); end
254
+ def unregister_observers(*observers); end
255
+
256
+ private
257
+
258
+ def method_missing(method_name, *args); end
259
+ def observer_class_for(value); end
260
+ def respond_to_missing?(method, include_all = T.unsafe(nil)); end
261
+ def set_payload_for_mail(payload, mail); end
262
+ end
263
+ end
264
+
265
+ module ActionMailer::Base::HelperMethods
266
+ include(::ActionMailer::MailHelper)
267
+
268
+ def combined_fragment_cache_key(*args, &block); end
269
+ def view_cache_dependencies(*args, &block); end
270
+ end
271
+
272
+ class ActionMailer::Base::LateAttachmentsProxy < ::SimpleDelegator
273
+ def []=(_name, _content); end
274
+ def inline; end
275
+
276
+ private
277
+
278
+ def _raise_error; end
279
+ end
280
+
281
+ class ActionMailer::Base::NullMail
282
+ def body; end
283
+ def header; end
284
+ def method_missing(*args); end
285
+ def respond_to?(string, include_all = T.unsafe(nil)); end
286
+ end
287
+
288
+ ActionMailer::Base::PROTECTED_IVARS = T.let(T.unsafe(nil), Array)
289
+
290
+ class ActionMailer::Collector
291
+ include(::AbstractController::Collector)
292
+
293
+ def initialize(context, &block); end
294
+
295
+ def all(*args, &block); end
296
+ def any(*args, &block); end
297
+ def custom(mime, options = T.unsafe(nil)); end
298
+ def responses; end
299
+ end
300
+
301
+ module ActionMailer::DeliveryMethods
302
+ extend(::ActiveSupport::Concern)
303
+
304
+ mixes_in_class_methods(::ActionMailer::DeliveryMethods::ClassMethods)
305
+
306
+ def wrap_delivery_behavior!(*args); end
307
+ end
308
+
309
+ module ActionMailer::DeliveryMethods::ClassMethods
310
+ def add_delivery_method(symbol, klass, default_options = T.unsafe(nil)); end
311
+ def deliveries(*args, &block); end
312
+ def deliveries=(arg); end
313
+ def wrap_delivery_behavior(mail, method = T.unsafe(nil), options = T.unsafe(nil)); end
314
+ end
315
+
316
+ class ActionMailer::InlinePreviewInterceptor
317
+ include(::Base64)
318
+
319
+ def initialize(message); end
320
+
321
+ def transform!; end
322
+
323
+ private
324
+
325
+ def data_url(part); end
326
+ def find_part(cid); end
327
+ def html_part; end
328
+ def message; end
329
+
330
+ class << self
331
+ def previewing_email(message); end
332
+ end
333
+ end
334
+
335
+ ActionMailer::InlinePreviewInterceptor::PATTERN = T.let(T.unsafe(nil), Regexp)
336
+
337
+ class ActionMailer::MailDeliveryJob < ::ActiveJob::Base
338
+ def perform(mailer, mail_method, delivery_method, args:, kwargs: T.unsafe(nil), params: T.unsafe(nil)); end
339
+
340
+ private
341
+
342
+ def handle_exception_with_mailer_class(exception); end
343
+ def mailer_class; end
344
+
345
+ class << self
346
+ def queue_name; end
347
+ def rescue_handlers; end
348
+ end
349
+ end
350
+
351
+ module ActionMailer::MailHelper
352
+ def attachments; end
353
+ def block_format(text); end
354
+ def format_paragraph(text, len = T.unsafe(nil), indent = T.unsafe(nil)); end
355
+ def mailer; end
356
+ def message; end
357
+ end
358
+
359
+ class ActionMailer::MessageDelivery
360
+ def initialize(mailer_class, action, *args); end
361
+
362
+ def __getobj__; end
363
+ def __setobj__(mail_message); end
364
+ def deliver_later(options = T.unsafe(nil)); end
365
+ def deliver_later!(options = T.unsafe(nil)); end
366
+ def deliver_now; end
367
+ def deliver_now!; end
368
+ def message; end
369
+ def processed?; end
370
+
371
+ private
372
+
373
+ def enqueue_delivery(delivery_method, options = T.unsafe(nil)); end
374
+ def processed_mailer; end
375
+ end
376
+
377
+ module ActionMailer::Parameterized
378
+ extend(::ActiveSupport::Concern)
379
+
380
+ mixes_in_class_methods(::ActionMailer::Parameterized::ClassMethods)
381
+ end
382
+
383
+ module ActionMailer::Parameterized::ClassMethods
384
+ def with(params); end
385
+ end
386
+
387
+ class ActionMailer::Parameterized::Mailer
388
+ def initialize(mailer, params); end
389
+
390
+
391
+ private
392
+
393
+ def method_missing(method_name, *args); end
394
+ def respond_to_missing?(method, include_all = T.unsafe(nil)); end
395
+ end
396
+
397
+ class ActionMailer::Parameterized::MessageDelivery < ::ActionMailer::MessageDelivery
398
+ def initialize(mailer_class, action, params, *args); end
399
+
400
+
401
+ private
402
+
403
+ def enqueue_delivery(delivery_method, options = T.unsafe(nil)); end
404
+ def processed_mailer; end
405
+ end
406
+
407
+ class ActionMailer::Preview
408
+ extend(::ActiveSupport::DescendantsTracker)
409
+
410
+ def initialize(params = T.unsafe(nil)); end
411
+
412
+ def params; end
413
+
414
+ class << self
415
+ def all; end
416
+ def call(email, params = T.unsafe(nil)); end
417
+ def email_exists?(email); end
418
+ def emails; end
419
+ def exists?(preview); end
420
+ def find(preview); end
421
+ def preview_name; end
422
+
423
+ private
424
+
425
+ def inform_preview_interceptors(message); end
426
+ def load_previews; end
427
+ def preview_path; end
428
+ def show_previews; end
429
+ end
430
+ end
431
+
432
+ module ActionMailer::Previews
433
+ extend(::ActiveSupport::Concern)
434
+
435
+ mixes_in_class_methods(::ActionMailer::Previews::ClassMethods)
436
+ end
437
+
438
+ module ActionMailer::Previews::ClassMethods
439
+ def register_preview_interceptor(interceptor); end
440
+ def register_preview_interceptors(*interceptors); end
441
+ def unregister_preview_interceptor(interceptor); end
442
+ def unregister_preview_interceptors(*interceptors); end
443
+
444
+ private
445
+
446
+ def interceptor_class_for(interceptor); end
447
+ end
448
+
449
+ class ActionMailer::Railtie < ::Rails::Railtie
450
+ end
451
+
452
+ class ActionMailer::TestCase < ::ActiveSupport::TestCase
453
+ include(::ActiveSupport::Testing::ConstantLookup)
454
+ include(::ActiveJob::TestHelper)
455
+ include(::ActionMailer::TestHelper)
456
+ include(::Rails::Dom::Testing::Assertions::SelectorAssertions::CountDescribable)
457
+ include(::Rails::Dom::Testing::Assertions::SelectorAssertions)
458
+ include(::Rails::Dom::Testing::Assertions::DomAssertions)
459
+ include(::ActionMailer::TestCase::Behavior)
460
+ extend(::ActiveSupport::Testing::ConstantLookup::ClassMethods)
461
+ extend(::ActionMailer::TestCase::Behavior::ClassMethods)
462
+
463
+ def _mailer_class; end
464
+ def _mailer_class=(_); end
465
+ def _mailer_class?; end
466
+
467
+ class << self
468
+ def __callbacks; end
469
+ def _mailer_class; end
470
+ def _mailer_class=(value); end
471
+ def _mailer_class?; end
472
+ end
473
+ end
474
+
475
+ module ActionMailer::TestCase::Behavior
476
+ include(::ActiveJob::TestHelper)
477
+ include(::ActionMailer::TestHelper)
478
+ include(::Rails::Dom::Testing::Assertions::SelectorAssertions::CountDescribable)
479
+ include(::Rails::Dom::Testing::Assertions::SelectorAssertions)
480
+ include(::Rails::Dom::Testing::Assertions::DomAssertions)
481
+ extend(::ActiveSupport::Concern)
482
+
483
+ include(::ActiveSupport::Testing::ConstantLookup)
484
+
485
+ mixes_in_class_methods(::ActionMailer::TestCase::Behavior::ClassMethods)
486
+
487
+
488
+ private
489
+
490
+ def charset; end
491
+ def encode(subject); end
492
+ def initialize_test_deliveries; end
493
+ def read_fixture(action); end
494
+ def restore_delivery_method; end
495
+ def restore_test_deliveries; end
496
+ def set_delivery_method(method); end
497
+ def set_expected_mail; end
498
+ end
499
+
500
+ module ActionMailer::TestCase::Behavior::ClassMethods
501
+ def determine_default_mailer(name); end
502
+ def mailer_class; end
503
+ def tests(mailer); end
504
+ end
505
+
506
+ module ActionMailer::TestCase::ClearTestDeliveries
507
+ extend(::ActiveSupport::Concern)
508
+
509
+
510
+ private
511
+
512
+ def clear_test_deliveries; end
513
+ end
514
+
515
+ module ActionMailer::TestHelper
516
+ include(::ActiveJob::TestHelper)
517
+
518
+ def assert_emails(number, &block); end
519
+ def assert_enqueued_email_with(mailer, method, args: T.unsafe(nil), queue: T.unsafe(nil), &block); end
520
+ def assert_enqueued_emails(number, &block); end
521
+ def assert_no_emails(&block); end
522
+ def assert_no_enqueued_emails(&block); end
523
+
524
+ private
525
+
526
+ def delivery_job_filter(job); end
527
+ end
528
+
529
+ module ActionMailer::VERSION
530
+ end
531
+
532
+ ActionMailer::VERSION::MAJOR = T.let(T.unsafe(nil), Integer)
533
+
534
+ ActionMailer::VERSION::MINOR = T.let(T.unsafe(nil), Integer)
535
+
536
+ ActionMailer::VERSION::PRE = T.let(T.unsafe(nil), String)
537
+
538
+ ActionMailer::VERSION::STRING = T.let(T.unsafe(nil), String)
539
+
540
+ ActionMailer::VERSION::TINY = T.let(T.unsafe(nil), Integer)
541
+
542
+ class ActionMailer::LogSubscriber < ::ActiveSupport::LogSubscriber
543
+ def deliver(event); end
544
+ def logger; end
545
+ def process(event); end
546
+ end
547
+
548
+ class ActionMailer::NonInferrableMailerError < ::StandardError
549
+ def initialize(name); end
550
+ end
551
+
552
+ module ActionMailer::Rescuable
553
+ extend(::ActiveSupport::Concern)
554
+
555
+ include(::ActiveSupport::Rescuable)
556
+
557
+ mixes_in_class_methods(::ActionMailer::Rescuable::ClassMethods)
558
+
559
+ def handle_exceptions; end
560
+
561
+ private
562
+
563
+ def process(*_); end
564
+ end
565
+
566
+ module ActionMailer::Rescuable::ClassMethods
567
+ def handle_exception(exception); end
568
+ end