actionmailer 8.0.2 → 8.1.0.beta1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -33
- data/README.rdoc +1 -1
- data/lib/action_mailer/base.rb +1 -1
- data/lib/action_mailer/form_builder.rb +1 -1
- data/lib/action_mailer/gem_version.rb +3 -3
- data/lib/action_mailer/message_delivery.rb +34 -0
- data/lib/action_mailer/railtie.rb +0 -6
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33226491c029ce11c633514799ee91adc191c4ca0e0ecd62f757f8739a391760
|
4
|
+
data.tar.gz: 79bdbc4be17dabd4cbbf04cd9f6290203f03dcffd84494cb3a90529cb1f331f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28a8c6237d1fdaad721c68938d34a72cab21fdc0053a3887a272a18b8206a83bb0582edcb13bf8f6fe43bda3acca9b413a872d4c0cedc4c8c8b6921c8df0523e
|
7
|
+
data.tar.gz: c1b4b1958b5d80a2e2251bb850d98672a33d15997679b4f9826e3e5f3589aa59f5c36e0ca7cd0957838a94b621252c188852ebed27ee547c8ba275022f2bafaa
|
data/CHANGELOG.md
CHANGED
@@ -1,39 +1,19 @@
|
|
1
|
-
## Rails 8.0.
|
1
|
+
## Rails 8.1.0.beta1 (September 04, 2025) ##
|
2
2
|
|
3
|
-
*
|
3
|
+
* Add `deliver_all_later` to enqueue multiple emails at once.
|
4
4
|
|
5
|
+
```ruby
|
6
|
+
user_emails = User.all.map { |user| Notifier.welcome(user) }
|
7
|
+
ActionMailer.deliver_all_later(user_emails)
|
5
8
|
|
6
|
-
|
9
|
+
# use a custom queue
|
10
|
+
ActionMailer.deliver_all_later(user_emails, queue: :my_queue)
|
11
|
+
```
|
7
12
|
|
8
|
-
|
13
|
+
This can greatly reduce the number of round-trips to the queue datastore.
|
14
|
+
For queue adapters that do not implement the `enqueue_all` method, we
|
15
|
+
fall back to enqueuing email jobs indvidually.
|
9
16
|
|
17
|
+
*fatkodima*
|
10
18
|
|
11
|
-
|
12
|
-
|
13
|
-
* No changes.
|
14
|
-
|
15
|
-
|
16
|
-
## Rails 8.0.0.1 (December 10, 2024) ##
|
17
|
-
|
18
|
-
* No changes.
|
19
|
-
|
20
|
-
|
21
|
-
## Rails 8.0.0 (November 07, 2024) ##
|
22
|
-
|
23
|
-
* No changes.
|
24
|
-
|
25
|
-
|
26
|
-
## Rails 8.0.0.rc2 (October 30, 2024) ##
|
27
|
-
|
28
|
-
* No changes.
|
29
|
-
|
30
|
-
|
31
|
-
## Rails 8.0.0.rc1 (October 19, 2024) ##
|
32
|
-
|
33
|
-
* No changes.
|
34
|
-
|
35
|
-
|
36
|
-
## Rails 8.0.0.beta1 (September 26, 2024) ##
|
37
|
-
|
38
|
-
|
39
|
-
Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md) for previous changes.
|
19
|
+
Please check [8-0-stable](https://github.com/rails/rails/blob/8-0-stable/actionmailer/CHANGELOG.md) for previous changes.
|
data/README.rdoc
CHANGED
@@ -136,6 +136,6 @@ Bug reports for the Ruby on \Rails project can be filed here:
|
|
136
136
|
|
137
137
|
* https://github.com/rails/rails/issues
|
138
138
|
|
139
|
-
Feature requests should be discussed on the
|
139
|
+
Feature requests should be discussed on the rubyonrails-core forum here:
|
140
140
|
|
141
141
|
* https://discuss.rubyonrails.org/c/rubyonrails-core
|
data/lib/action_mailer/base.rb
CHANGED
@@ -930,7 +930,7 @@ module ActionMailer
|
|
930
930
|
# If the subject has interpolations, you can pass them through the +interpolations+ parameter.
|
931
931
|
def default_i18n_subject(interpolations = {}) # :doc:
|
932
932
|
mailer_scope = self.class.mailer_name.tr("/", ".")
|
933
|
-
I18n.t(:subject, **interpolations
|
933
|
+
I18n.t(:subject, **interpolations, scope: [mailer_scope, action_name], default: action_name.humanize)
|
934
934
|
end
|
935
935
|
|
936
936
|
# Emails do not support relative path links.
|
@@ -23,7 +23,7 @@ module ActionMailer
|
|
23
23
|
# in the views rendered by this mailer and its subclasses.
|
24
24
|
#
|
25
25
|
# ==== Parameters
|
26
|
-
# * <tt>builder</tt> - Default form builder
|
26
|
+
# * <tt>builder</tt> - Default form builder. Accepts a subclass of ActionView::Helpers::FormBuilder
|
27
27
|
def default_form_builder(builder)
|
28
28
|
self._default_form_builder = builder
|
29
29
|
end
|
@@ -3,6 +3,38 @@
|
|
3
3
|
require "delegate"
|
4
4
|
|
5
5
|
module ActionMailer
|
6
|
+
class << self
|
7
|
+
# Enqueue many emails at once to be delivered through Active Job.
|
8
|
+
# When the individual job runs, it will send the email using +deliver_now+.
|
9
|
+
def deliver_all_later(*deliveries, **options)
|
10
|
+
_deliver_all_later("deliver_now", *deliveries, **options)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Enqueue many emails at once to be delivered through Active Job.
|
14
|
+
# When the individual job runs, it will send the email using +deliver_now!+.
|
15
|
+
# That means that the message will be sent bypassing checking +perform_deliveries+
|
16
|
+
# and +raise_delivery_errors+, so use with caution.
|
17
|
+
def deliver_all_later!(*deliveries, **options)
|
18
|
+
_deliver_all_later("deliver_now!", *deliveries, **options)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def _deliver_all_later(delivery_method, *deliveries, **options)
|
23
|
+
deliveries.flatten!
|
24
|
+
|
25
|
+
jobs = deliveries.map do |delivery|
|
26
|
+
mailer_class = delivery.mailer_class
|
27
|
+
delivery_job = mailer_class.delivery_job
|
28
|
+
|
29
|
+
delivery_job
|
30
|
+
.new(mailer_class.name, delivery.action.to_s, delivery_method, params: delivery.params, args: delivery.args)
|
31
|
+
.set(options)
|
32
|
+
end
|
33
|
+
|
34
|
+
ActiveJob.perform_all_later(jobs)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
6
38
|
# = Action Mailer \MessageDelivery
|
7
39
|
#
|
8
40
|
# The +ActionMailer::MessageDelivery+ class is used by
|
@@ -17,6 +49,8 @@ module ActionMailer
|
|
17
49
|
# Notifier.welcome(User.first).deliver_later # enqueue email delivery as a job through Active Job
|
18
50
|
# Notifier.welcome(User.first).message # a Mail::Message object
|
19
51
|
class MessageDelivery < Delegator
|
52
|
+
attr_reader :mailer_class, :action, :params, :args # :nodoc:
|
53
|
+
|
20
54
|
def initialize(mailer_class, action, *args) # :nodoc:
|
21
55
|
@mailer_class, @action, @args = mailer_class, action, args
|
22
56
|
|
@@ -73,12 +73,6 @@ module ActionMailer
|
|
73
73
|
app.config.paths["test/mailers/previews"].concat(options.preview_paths)
|
74
74
|
end
|
75
75
|
|
76
|
-
initializer "action_mailer.compile_config_methods" do
|
77
|
-
ActiveSupport.on_load(:action_mailer) do
|
78
|
-
config.compile_methods! if config.respond_to?(:compile_methods!)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
76
|
config.after_initialize do |app|
|
83
77
|
options = app.config.action_mailer
|
84
78
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionmailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.0.
|
4
|
+
version: 8.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: activesupport
|
@@ -15,56 +15,56 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - '='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 8.0.
|
18
|
+
version: 8.1.0.beta1
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - '='
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 8.0.
|
25
|
+
version: 8.1.0.beta1
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: actionpack
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - '='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 8.0.
|
32
|
+
version: 8.1.0.beta1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - '='
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 8.0.
|
39
|
+
version: 8.1.0.beta1
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: actionview
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - '='
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 8.0.
|
46
|
+
version: 8.1.0.beta1
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 8.0.
|
53
|
+
version: 8.1.0.beta1
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: activejob
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - '='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 8.0.
|
60
|
+
version: 8.1.0.beta1
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - '='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 8.0.
|
67
|
+
version: 8.1.0.beta1
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: mail
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,10 +133,10 @@ licenses:
|
|
133
133
|
- MIT
|
134
134
|
metadata:
|
135
135
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
136
|
-
changelog_uri: https://github.com/rails/rails/blob/v8.0.
|
137
|
-
documentation_uri: https://api.rubyonrails.org/v8.0.
|
136
|
+
changelog_uri: https://github.com/rails/rails/blob/v8.1.0.beta1/actionmailer/CHANGELOG.md
|
137
|
+
documentation_uri: https://api.rubyonrails.org/v8.1.0.beta1/
|
138
138
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
139
|
-
source_code_uri: https://github.com/rails/rails/tree/v8.0.
|
139
|
+
source_code_uri: https://github.com/rails/rails/tree/v8.1.0.beta1/actionmailer
|
140
140
|
rubygems_mfa_required: 'true'
|
141
141
|
rdoc_options: []
|
142
142
|
require_paths:
|
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
version: '0'
|
154
154
|
requirements:
|
155
155
|
- none
|
156
|
-
rubygems_version: 3.6.
|
156
|
+
rubygems_version: 3.6.9
|
157
157
|
specification_version: 4
|
158
158
|
summary: Email composition and delivery framework (part of Rails).
|
159
159
|
test_files: []
|