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,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