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,571 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `actionmailbox` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module ActionMailbox
8
+ extend(::ActiveSupport::Autoload)
9
+
10
+ def incinerate; end
11
+ def incinerate=(val); end
12
+ def incinerate_after; end
13
+ def incinerate_after=(val); end
14
+ def ingress; end
15
+ def ingress=(val); end
16
+ def logger; end
17
+ def logger=(val); end
18
+ def queues; end
19
+ def queues=(val); end
20
+
21
+ class << self
22
+ def incinerate; end
23
+ def incinerate=(val); end
24
+ def incinerate_after; end
25
+ def incinerate_after=(val); end
26
+ def ingress; end
27
+ def ingress=(val); end
28
+ def logger; end
29
+ def logger=(val); end
30
+ def queues; end
31
+ def queues=(val); end
32
+ def railtie_helpers_paths; end
33
+ def railtie_namespace; end
34
+ def railtie_routes_url_helpers(include_path_helpers = T.unsafe(nil)); end
35
+ def table_name_prefix; end
36
+ def use_relative_model_naming?; end
37
+ end
38
+ end
39
+
40
+ class ActionMailbox::Base
41
+ include(::ActiveSupport::Rescuable)
42
+ include(::ActionMailbox::Routing)
43
+ include(::ActiveSupport::Callbacks)
44
+ include(::ActionMailbox::Callbacks)
45
+ extend(::ActiveSupport::Rescuable::ClassMethods)
46
+ extend(::ActionMailbox::Routing::ClassMethods)
47
+ extend(::ActiveSupport::Callbacks::ClassMethods)
48
+ extend(::ActiveSupport::DescendantsTracker)
49
+ extend(::ActionMailbox::Callbacks::ClassMethods)
50
+
51
+ def initialize(inbound_email); end
52
+
53
+ def __callbacks; end
54
+ def __callbacks?; end
55
+ def _process_callbacks; end
56
+ def _run_process_callbacks(&block); end
57
+ def bounce_with(message); end
58
+ def bounced!(*args, &block); end
59
+ def delivered!(*args, &block); end
60
+ def finished_processing?; end
61
+ def inbound_email; end
62
+ def logger(*args, &block); end
63
+ def mail(*args, &block); end
64
+ def perform_processing; end
65
+ def process; end
66
+ def rescue_handlers; end
67
+ def rescue_handlers=(_); end
68
+ def rescue_handlers?; end
69
+ def router; end
70
+ def router=(val); end
71
+
72
+ private
73
+
74
+ def track_status_of_inbound_email; end
75
+
76
+ class << self
77
+ def __callbacks; end
78
+ def __callbacks=(value); end
79
+ def __callbacks?; end
80
+ def _process_callbacks; end
81
+ def _process_callbacks=(value); end
82
+ def receive(inbound_email); end
83
+ def rescue_handlers; end
84
+ def rescue_handlers=(value); end
85
+ def rescue_handlers?; end
86
+ def router; end
87
+ def router=(val); end
88
+ end
89
+ end
90
+
91
+ class ActionMailbox::BaseController < ::ActionController::Base
92
+
93
+ private
94
+
95
+ def _layout(lookup_context, formats); end
96
+ def authenticate_by_password; end
97
+ def ensure_configured; end
98
+ def ingress_name; end
99
+ def password; end
100
+
101
+ class << self
102
+ def __callbacks; end
103
+ def _helpers; end
104
+ def middleware_stack; end
105
+ end
106
+ end
107
+
108
+ module ActionMailbox::BaseController::HelperMethods
109
+ include(::ActionController::Base::HelperMethods)
110
+ end
111
+
112
+ class ActionMailbox::Engine < ::Rails::Engine
113
+ end
114
+
115
+ class ActionMailbox::InboundEmail < ::ActiveRecord::Base
116
+ include(::ActionMailbox::InboundEmail::Routable)
117
+ include(::ActionMailbox::InboundEmail::MessageId)
118
+ include(::ActionMailbox::InboundEmail::Incineratable)
119
+ extend(::ActionMailbox::InboundEmail::MessageId::ClassMethods)
120
+
121
+ class << self
122
+ def __callbacks; end
123
+ def _validators; end
124
+ def attribute_type_decorations; end
125
+ def defined_enums; end
126
+ end
127
+ end
128
+
129
+ module ActionMailbox::InboundEmail::Incineratable
130
+ extend(::ActiveSupport::Concern)
131
+
132
+ def incinerate; end
133
+ def incinerate_later; end
134
+ end
135
+
136
+ class ActionMailbox::InboundEmail::Incineratable::Incineration
137
+ def initialize(inbound_email); end
138
+
139
+ def run; end
140
+
141
+ private
142
+
143
+ def due?; end
144
+ def processed?; end
145
+ end
146
+
147
+ module ActionMailbox::InboundEmail::MessageId
148
+ extend(::ActiveSupport::Concern)
149
+
150
+ mixes_in_class_methods(::ActionMailbox::InboundEmail::MessageId::ClassMethods)
151
+ end
152
+
153
+ module ActionMailbox::InboundEmail::MessageId::ClassMethods
154
+ def create_and_extract_message_id!(source, **options); end
155
+
156
+ private
157
+
158
+ def extract_message_id(source); end
159
+ def generate_missing_message_id(message_checksum); end
160
+ end
161
+
162
+ module ActionMailbox::InboundEmail::Routable
163
+ extend(::ActiveSupport::Concern)
164
+
165
+ def route; end
166
+ def route_later; end
167
+ end
168
+
169
+ class ActionMailbox::IncinerationJob < ::ActiveJob::Base
170
+ def perform(inbound_email); end
171
+
172
+ class << self
173
+ def queue_name; end
174
+ def rescue_handlers; end
175
+ def schedule(inbound_email); end
176
+ end
177
+ end
178
+
179
+ class ActionMailbox::Router
180
+ def initialize; end
181
+
182
+ def add_route(address, to:); end
183
+ def add_routes(routes); end
184
+ def mailbox_for(inbound_email); end
185
+ def route(inbound_email); end
186
+
187
+ private
188
+
189
+ def routes; end
190
+ end
191
+
192
+ class ActionMailbox::Router::Route
193
+ def initialize(address, to:); end
194
+
195
+ def address; end
196
+ def mailbox_class; end
197
+ def mailbox_name; end
198
+ def match?(inbound_email); end
199
+
200
+ private
201
+
202
+ def ensure_valid_address; end
203
+ end
204
+
205
+ class ActionMailbox::Router::RoutingError < ::StandardError
206
+ end
207
+
208
+ class ActionMailbox::RoutingJob < ::ActiveJob::Base
209
+ def perform(inbound_email); end
210
+
211
+ class << self
212
+ def queue_name; end
213
+ end
214
+ end
215
+
216
+ class ActionMailbox::TestCase < ::ActiveSupport::TestCase
217
+ include(::ActionMailbox::TestHelper)
218
+ end
219
+
220
+ module ActionMailbox::Callbacks
221
+ extend(::ActiveSupport::Concern)
222
+
223
+ include(::ActiveSupport::Callbacks)
224
+
225
+ mixes_in_class_methods(::ActionMailbox::Callbacks::ClassMethods)
226
+ end
227
+
228
+ module ActionMailbox::Callbacks::ClassMethods
229
+ def after_processing(*methods, &block); end
230
+ def around_processing(*methods, &block); end
231
+ def before_processing(*methods, &block); end
232
+ end
233
+
234
+ ActionMailbox::Callbacks::TERMINATOR = T.let(T.unsafe(nil), Proc)
235
+
236
+ module ActionMailbox::Routing
237
+ extend(::ActiveSupport::Concern)
238
+
239
+ mixes_in_class_methods(::ActionMailbox::Routing::ClassMethods)
240
+ end
241
+
242
+ module ActionMailbox::Routing::ClassMethods
243
+ def mailbox_for(inbound_email); end
244
+ def route(inbound_email); end
245
+ def routing(routes); end
246
+ end
247
+
248
+ module ActionMailbox::TestHelper
249
+ def create_inbound_email_from_fixture(fixture_name, status: T.unsafe(nil)); end
250
+ def create_inbound_email_from_mail(status: T.unsafe(nil), **mail_options, &block); end
251
+ def create_inbound_email_from_source(source, status: T.unsafe(nil)); end
252
+ def receive_inbound_email_from_fixture(*args); end
253
+ def receive_inbound_email_from_mail(**kwargs, &block); end
254
+ def receive_inbound_email_from_source(*args); end
255
+ end
256
+
257
+ module Mail
258
+ class << self
259
+ def all(*args, &block); end
260
+ def connection(&block); end
261
+ def defaults(&block); end
262
+ def delete_all(*args, &block); end
263
+ def deliver(*args, &block); end
264
+ def delivery_method; end
265
+ def eager_autoload!; end
266
+ def find(*args, &block); end
267
+ def find_and_delete(*args, &block); end
268
+ def first(*args, &block); end
269
+ def from_source(source); end
270
+ def inform_interceptors(mail); end
271
+ def inform_observers(mail); end
272
+ def last(*args, &block); end
273
+ def new(*args, &block); end
274
+ def random_tag; end
275
+ def read(filename); end
276
+ def read_from_string(mail_as_string); end
277
+ def register_autoload(name, path); end
278
+ def register_interceptor(interceptor); end
279
+ def register_observer(observer); end
280
+ def retriever_method; end
281
+ def something_random; end
282
+ def uniq; end
283
+ def unregister_interceptor(interceptor); end
284
+ def unregister_observer(observer); end
285
+ end
286
+ end
287
+
288
+ class Mail::Address
289
+ include(::Mail::Constants)
290
+ include(::Mail::Utilities)
291
+
292
+ def initialize(value = T.unsafe(nil)); end
293
+
294
+ def ==(other_address); end
295
+ def address(output_type = T.unsafe(nil)); end
296
+ def address=(value); end
297
+ def comments; end
298
+ def decoded; end
299
+ def display_name(output_type = T.unsafe(nil)); end
300
+ def display_name=(str); end
301
+ def domain(output_type = T.unsafe(nil)); end
302
+ def encoded; end
303
+ def format(output_type = T.unsafe(nil)); end
304
+ def group; end
305
+ def inspect; end
306
+ def local(output_type = T.unsafe(nil)); end
307
+ def name; end
308
+ def raw; end
309
+ def to_s; end
310
+
311
+ private
312
+
313
+ def format_comments; end
314
+ def get_comments; end
315
+ def get_display_name; end
316
+ def get_domain; end
317
+ def get_local; end
318
+ def get_name; end
319
+ def parse(value = T.unsafe(nil)); end
320
+ def strip_all_comments(string); end
321
+ def strip_domain_comments(value); end
322
+
323
+ class << self
324
+ def wrap(address); end
325
+ end
326
+ end
327
+
328
+ class Mail::Message
329
+ include(::Mail::Constants)
330
+ include(::Mail::Utilities)
331
+
332
+ def initialize(*args, &block); end
333
+
334
+ def <=>(other); end
335
+ def ==(other); end
336
+ def [](name); end
337
+ def []=(name, value); end
338
+ def action; end
339
+ def add_charset; end
340
+ def add_content_transfer_encoding; end
341
+ def add_content_type; end
342
+ def add_date(date_val = T.unsafe(nil)); end
343
+ def add_file(values); end
344
+ def add_message_id(msg_id_val = T.unsafe(nil)); end
345
+ def add_mime_version(ver_val = T.unsafe(nil)); end
346
+ def add_part(part); end
347
+ def add_transfer_encoding; end
348
+ def all_parts; end
349
+ def attachment; end
350
+ def attachment?; end
351
+ def attachments; end
352
+ def bcc(val = T.unsafe(nil)); end
353
+ def bcc=(val); end
354
+ def bcc_addresses; end
355
+ def bcc_addrs; end
356
+ def body(value = T.unsafe(nil)); end
357
+ def body=(value); end
358
+ def body_encoding(value = T.unsafe(nil)); end
359
+ def body_encoding=(value); end
360
+ def bounced?; end
361
+ def boundary; end
362
+ def cc(val = T.unsafe(nil)); end
363
+ def cc=(val); end
364
+ def cc_addresses; end
365
+ def cc_addrs; end
366
+ def charset; end
367
+ def charset=(value); end
368
+ def comments(val = T.unsafe(nil)); end
369
+ def comments=(val); end
370
+ def content_description(val = T.unsafe(nil)); end
371
+ def content_description=(val); end
372
+ def content_disposition(val = T.unsafe(nil)); end
373
+ def content_disposition=(val); end
374
+ def content_id(val = T.unsafe(nil)); end
375
+ def content_id=(val); end
376
+ def content_location(val = T.unsafe(nil)); end
377
+ def content_location=(val); end
378
+ def content_transfer_encoding(val = T.unsafe(nil)); end
379
+ def content_transfer_encoding=(val); end
380
+ def content_type(val = T.unsafe(nil)); end
381
+ def content_type=(val); end
382
+ def content_type_parameters; end
383
+ def convert_to_multipart; end
384
+ def date(val = T.unsafe(nil)); end
385
+ def date=(val); end
386
+ def decode_body; end
387
+ def decoded; end
388
+ def default(sym, val = T.unsafe(nil)); end
389
+ def deliver; end
390
+ def deliver!; end
391
+ def delivery_handler; end
392
+ def delivery_handler=(_); end
393
+ def delivery_method(method = T.unsafe(nil), settings = T.unsafe(nil)); end
394
+ def delivery_status_part; end
395
+ def delivery_status_report?; end
396
+ def destinations; end
397
+ def diagnostic_code; end
398
+ def encode!; end
399
+ def encoded; end
400
+ def envelope_date; end
401
+ def envelope_from; end
402
+ def error_status; end
403
+ def errors; end
404
+ def filename; end
405
+ def final_recipient; end
406
+ def find_first_mime_type(mt); end
407
+ def from(val = T.unsafe(nil)); end
408
+ def from=(val); end
409
+ def from_address; end
410
+ def from_addrs; end
411
+ def has_attachments?; end
412
+ def has_charset?; end
413
+ def has_content_transfer_encoding?; end
414
+ def has_content_type?; end
415
+ def has_date?; end
416
+ def has_message_id?; end
417
+ def has_mime_version?; end
418
+ def has_transfer_encoding?; end
419
+ def header(value = T.unsafe(nil)); end
420
+ def header=(value); end
421
+ def header_fields; end
422
+ def headers(hash = T.unsafe(nil)); end
423
+ def html_part(&block); end
424
+ def html_part=(msg); end
425
+ def in_reply_to(val = T.unsafe(nil)); end
426
+ def in_reply_to=(val); end
427
+ def inform_interceptors; end
428
+ def inform_observers; end
429
+ def inspect; end
430
+ def is_marked_for_delete?; end
431
+ def keywords(val = T.unsafe(nil)); end
432
+ def keywords=(val); end
433
+ def main_type; end
434
+ def mark_for_delete=(value = T.unsafe(nil)); end
435
+ def message_content_type; end
436
+ def message_id(val = T.unsafe(nil)); end
437
+ def message_id=(val); end
438
+ def method_missing(name, *args, &block); end
439
+ def mime_parameters; end
440
+ def mime_type; end
441
+ def mime_version(val = T.unsafe(nil)); end
442
+ def mime_version=(val); end
443
+ def multipart?; end
444
+ def multipart_report?; end
445
+ def part(params = T.unsafe(nil)); end
446
+ def parts; end
447
+ def perform_deliveries; end
448
+ def perform_deliveries=(_); end
449
+ def raise_delivery_errors; end
450
+ def raise_delivery_errors=(_); end
451
+ def raw_envelope; end
452
+ def raw_source; end
453
+ def read; end
454
+ def ready_to_send!; end
455
+ def received(val = T.unsafe(nil)); end
456
+ def received=(val); end
457
+ def recipients; end
458
+ def recipients_addresses; end
459
+ def references(val = T.unsafe(nil)); end
460
+ def references=(val); end
461
+ def register_for_delivery_notification(observer); end
462
+ def remote_mta; end
463
+ def reply(*args, &block); end
464
+ def reply_to(val = T.unsafe(nil)); end
465
+ def reply_to=(val); end
466
+ def resent_bcc(val = T.unsafe(nil)); end
467
+ def resent_bcc=(val); end
468
+ def resent_cc(val = T.unsafe(nil)); end
469
+ def resent_cc=(val); end
470
+ def resent_date(val = T.unsafe(nil)); end
471
+ def resent_date=(val); end
472
+ def resent_from(val = T.unsafe(nil)); end
473
+ def resent_from=(val); end
474
+ def resent_message_id(val = T.unsafe(nil)); end
475
+ def resent_message_id=(val); end
476
+ def resent_sender(val = T.unsafe(nil)); end
477
+ def resent_sender=(val); end
478
+ def resent_to(val = T.unsafe(nil)); end
479
+ def resent_to=(val); end
480
+ def retryable?; end
481
+ def return_path(val = T.unsafe(nil)); end
482
+ def return_path=(val); end
483
+ def sender(val = T.unsafe(nil)); end
484
+ def sender=(val); end
485
+ def set_envelope(val); end
486
+ def skip_deletion; end
487
+ def smtp_envelope_from(val = T.unsafe(nil)); end
488
+ def smtp_envelope_from=(val); end
489
+ def smtp_envelope_to(val = T.unsafe(nil)); end
490
+ def smtp_envelope_to=(val); end
491
+ def sub_type; end
492
+ def subject(val = T.unsafe(nil)); end
493
+ def subject=(val); end
494
+ def text?; end
495
+ def text_part(&block); end
496
+ def text_part=(msg); end
497
+ def to(val = T.unsafe(nil)); end
498
+ def to=(val); end
499
+ def to_addresses; end
500
+ def to_addrs; end
501
+ def to_s; end
502
+ def to_yaml(opts = T.unsafe(nil)); end
503
+ def transfer_encoding; end
504
+ def transport_encoding(val = T.unsafe(nil)); end
505
+ def transport_encoding=(val); end
506
+ def without_attachments!; end
507
+ def x_original_to_addresses; end
508
+
509
+ private
510
+
511
+ def add_boundary; end
512
+ def add_encoding_to_body; end
513
+ def add_multipart_alternate_header; end
514
+ def add_multipart_mixed_header; end
515
+ def add_required_fields; end
516
+ def add_required_message_fields; end
517
+ def allowed_encodings; end
518
+ def body_lazy(value); end
519
+ def decode_body_as_text; end
520
+ def do_delivery; end
521
+ def find_attachment; end
522
+ def identify_and_set_transfer_encoding; end
523
+ def init_with_hash(hash); end
524
+ def init_with_string(string); end
525
+ def initialize_copy(original); end
526
+ def parse_message; end
527
+ def process_body_raw; end
528
+ def raw_source=(value); end
529
+ def separate_parts; end
530
+ def set_envelope_header; end
531
+
532
+ class << self
533
+ def default_charset; end
534
+ def default_charset=(charset); end
535
+ def from_hash(hash); end
536
+ def from_yaml(str); end
537
+ end
538
+ end
539
+
540
+ Mail::Message::HEADER_SEPARATOR = T.let(T.unsafe(nil), Regexp)
541
+
542
+ Mail::RANDOM_TAG = T.let(T.unsafe(nil), String)
543
+
544
+ Mail::RubyVer = Mail::Ruby19
545
+
546
+ module Rails
547
+ extend(::ActiveSupport::Autoload)
548
+
549
+ class << self
550
+ def app_class; end
551
+ def app_class=(_); end
552
+ def application; end
553
+ def application=(_); end
554
+ def autoloaders; end
555
+ def backtrace_cleaner; end
556
+ def cache; end
557
+ def cache=(_); end
558
+ def configuration; end
559
+ def env; end
560
+ def env=(environment); end
561
+ def gem_version; end
562
+ def groups(*groups); end
563
+ def initialize!(*args, &block); end
564
+ def initialized?(*args, &block); end
565
+ def logger; end
566
+ def logger=(_); end
567
+ def public_path; end
568
+ def root; end
569
+ def version; end
570
+ end
571
+ end