actionmailer 5.0.0.beta3 → 5.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba408a911beb5d1832f35eff868ab9940664b197
4
- data.tar.gz: 2bb6c109b95010381c56d1fac22bd60dd8ab7c71
3
+ metadata.gz: ce7f1a0650cd648d2156eda7d9ec89f1daa9cd31
4
+ data.tar.gz: fe30768e0737f6963444df1992d2404ac6f368ec
5
5
  SHA512:
6
- metadata.gz: 5f6d5a01e6abe2f520204d6614e10c820a4dad08be9ea865eaebd916113ffd2decae7c82858e2cdfb4760e6e24d5b52bf0c7e500a5d9a651358b617cd33dbc04
7
- data.tar.gz: 536373d714e7aebf11ee4ed1002fc48185030ef18daa1fe34e61db49ebc31f7069e10a1fc6b56af37bb613a4637d79fda379722168ee881c4ae8e1d368c430c6
6
+ metadata.gz: 72f6b3639202328e7660922bdadc2072392dc54673cec489fc203d556cef9b1b19fd0f897956422a7f719447848049576cdd4cf27e17a70181b8e7c1cc5a845f
7
+ data.tar.gz: 3313a2002c0c4eb6b262d96d9c2763b204489e63bf2bfba4089e15e370e8f08e33f5a157ee5d2dade361604dbb802af34ee081c1ac58b9771d2b811be40b5516
@@ -1,8 +1,32 @@
1
- ## Rails 5.0.0.beta3 (February 24, 2016) ##
1
+ ## Rails 5.0.0.beta4 (April 27, 2016) ##
2
+
3
+ * Disallow calling `#deliver_later` after making local modifications to
4
+ the message which would be lost when the delivery job is enqueued.
5
+
6
+ Prevents a common, hard-to-find bug like:
7
+
8
+ message = Notifier.welcome(user, foo)
9
+ message.message_id = my_generated_message_id
10
+ message.deliver_later
11
+
12
+ The message_id is silently lost! *Only the mailer arguments are passed
13
+ to the delivery job.*
14
+
15
+ This raises an exception now. Make modifications to the message within
16
+ the mailer method instead, or use a custom Active Job to manage delivery
17
+ instead of using #deliver_later.
2
18
 
3
- * Add support to fragment cache in Action Mailer.
19
+ *Jeremy Daer*
20
+
21
+ * Removes `-t` from default Sendmail arguments to match the underlying
22
+ `Mail::Sendmail` setting.
23
+
24
+ *Clayton Liggitt*
25
+
26
+
27
+ ## Rails 5.0.0.beta3 (February 24, 2016) ##
4
28
 
5
- Now you can use fragment caching in your mailers views.
29
+ * Add support for fragment caching in Action Mailer views.
6
30
 
7
31
  *Stan Lo*
8
32
 
@@ -19,8 +43,7 @@
19
43
 
20
44
  ## Rails 5.0.0.beta1 (December 18, 2015) ##
21
45
 
22
- * `config.force_ssl = true` will set
23
- `config.action_mailer.default_url_options = { protocol: 'https' }`.
46
+ * `config.action_mailer.default_url_options[:protocol]` is now set to `https` if `config.force_ssl` is set to `true`.
24
47
 
25
48
  *Andrew Kampjes*
26
49
 
@@ -29,7 +52,7 @@
29
52
 
30
53
  *Chris McGrath*
31
54
 
32
- * `assert_emails` in block form use the given number as expected value.
55
+ * `assert_emails` in block form, uses the given number as expected value.
33
56
  This makes the error message much easier to understand.
34
57
 
35
58
  *Yuji Yaginuma*
@@ -86,7 +86,7 @@ module ActionMailer
86
86
  # Like Action Controller, each mailer class has a corresponding view directory in which each
87
87
  # method of the class looks for a template with its name.
88
88
  #
89
- # To define a template to be used with a mailing, create an <tt>.erb</tt> file with the same
89
+ # To define a template to be used with a mailer, create an <tt>.erb</tt> file with the same
90
90
  # name as the method in your mailer model. For example, in the mailer defined above, the template at
91
91
  # <tt>app/views/notifier_mailer/welcome.text.erb</tt> would be used to generate the email.
92
92
  #
@@ -144,7 +144,7 @@ module ActionMailer
144
144
  # mail.deliver_now # generates and sends the email now
145
145
  #
146
146
  # The <tt>ActionMailer::MessageDelivery</tt> class is a wrapper around a delegate that will call
147
- # your method to generate the mail. If you want direct access to delegator, or <tt>Mail::Message</tt>,
147
+ # your method to generate the mail. If you want direct access to the delegator, or <tt>Mail::Message</tt>,
148
148
  # you can call the <tt>message</tt> method on the <tt>ActionMailer::MessageDelivery</tt> object.
149
149
  #
150
150
  # NotifierMailer.welcome(User.first).message # => a Mail::Message object
@@ -163,7 +163,7 @@ module ActionMailer
163
163
  #
164
164
  # Multipart messages can also be used implicitly because Action Mailer will automatically detect and use
165
165
  # multipart templates, where each template is named after the name of the action, followed by the content
166
- # type. Each such detected template will be added as a separate part to the message.
166
+ # type. Each such detected template will be added to the message, as a separate part.
167
167
  #
168
168
  # For example, if the following templates exist:
169
169
  # * signup_notification.text.erb
@@ -288,8 +288,8 @@ module ActionMailer
288
288
  # end
289
289
  #
290
290
  # Note that the proc is evaluated right at the start of the mail message generation, so if you
291
- # set something in the default using a proc, and then set the same thing inside of your
292
- # mailer method, it will get over written by the mailer method.
291
+ # set something in the default hash using a proc, and then set the same thing inside of your
292
+ # mailer method, it will get overwritten by the mailer method.
293
293
  #
294
294
  # It is also possible to set these default options that will be used in all mailers through
295
295
  # the <tt>default_options=</tt> configuration in <tt>config/application.rb</tt>:
@@ -36,7 +36,7 @@ module ActionMailer
36
36
 
37
37
  add_delivery_method :sendmail, Mail::Sendmail,
38
38
  location: '/usr/sbin/sendmail',
39
- arguments: '-i -t'
39
+ arguments: '-i'
40
40
 
41
41
  add_delivery_method :test, Mail::TestMailer
42
42
  end
@@ -8,7 +8,7 @@ module ActionMailer
8
8
  MAJOR = 5
9
9
  MINOR = 0
10
10
  TINY = 0
11
- PRE = "beta3"
11
+ PRE = "beta4"
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
14
14
  end
@@ -3,7 +3,7 @@ require 'base64'
3
3
  module ActionMailer
4
4
  # Implements a mailer preview interceptor that converts image tag src attributes
5
5
  # that use inline cid: style urls to data: style urls so that they are visible
6
- # when previewing a HTML email in a web browser.
6
+ # when previewing an HTML email in a web browser.
7
7
  #
8
8
  # This interceptor is enabled by default. To disable it, delete it from the
9
9
  # <tt>ActionMailer::Base.preview_interceptors</tt> array:
@@ -18,6 +18,7 @@ module ActionMailer
18
18
  @mailer = mailer
19
19
  @mail_method = mail_method
20
20
  @args = args
21
+ @obj = nil
21
22
  end
22
23
 
23
24
  def __getobj__ #:nodoc:
@@ -91,8 +92,19 @@ module ActionMailer
91
92
  private
92
93
 
93
94
  def enqueue_delivery(delivery_method, options={})
94
- args = @mailer.name, @mail_method.to_s, delivery_method.to_s, *@args
95
- ActionMailer::DeliveryJob.set(options).perform_later(*args)
95
+ if @obj
96
+ raise "You've accessed the message before asking to deliver it " \
97
+ "later, so you may have made local changes that would be " \
98
+ "silently lost if we enqueued a job to deliver it. Why? Only " \
99
+ "the mailer method *arguments* are passed with the delivery job! " \
100
+ "Do not access the message in any way if you mean to deliver it " \
101
+ "later. Workarounds: 1. don't touch the message before calling " \
102
+ "#deliver_later, 2. only touch the message *within your mailer " \
103
+ "method*, or 3. use a custom Active Job instead of #deliver_later."
104
+ else
105
+ args = @mailer.name, @mail_method.to_s, delivery_method.to_s, *@args
106
+ ActionMailer::DeliveryJob.set(options).perform_later(*args)
107
+ end
96
108
  end
97
109
  end
98
110
  end
@@ -45,9 +45,9 @@ module ActionMailer
45
45
  register_observers(options.delete(:observers))
46
46
 
47
47
  options.each { |k,v| send("#{k}=", v) }
48
-
49
- ActionDispatch::IntegrationTest.send :include, ActionMailer::TestCase::ClearTestDeliveries
50
48
  end
49
+
50
+ ActiveSupport.on_load(:action_dispatch_integration_test) { include ActionMailer::TestCase::ClearTestDeliveries }
51
51
  end
52
52
 
53
53
  initializer "action_mailer.compile_config_methods" do
@@ -15,11 +15,13 @@ module ActionMailer
15
15
  extend ActiveSupport::Concern
16
16
 
17
17
  included do
18
- teardown :clear_test_deliviers
18
+ setup :clear_test_deliveries
19
+ teardown :clear_test_deliveries
19
20
  end
20
21
 
21
22
  private
22
- def clear_test_deliviers
23
+
24
+ def clear_test_deliveries
23
25
  if ActionMailer::Base.delivery_method == :test
24
26
  ActionMailer::Base.deliveries.clear
25
27
  end
@@ -76,6 +78,7 @@ module ActionMailer
76
78
  set_delivery_method :test
77
79
  @old_perform_deliveries = ActionMailer::Base.perform_deliveries
78
80
  ActionMailer::Base.perform_deliveries = true
81
+ ActionMailer::Base.deliveries.clear
79
82
  end
80
83
 
81
84
  def restore_test_deliveries # :nodoc:
@@ -89,6 +92,7 @@ module ActionMailer
89
92
  end
90
93
 
91
94
  def restore_delivery_method # :nodoc:
95
+ ActionMailer::Base.deliveries.clear
92
96
  ActionMailer::Base.delivery_method = @old_delivery_method
93
97
  end
94
98
 
@@ -114,6 +118,5 @@ module ActionMailer
114
118
  end
115
119
 
116
120
  include Behavior
117
- include ClearTestDeliveries
118
121
  end
119
122
  end
@@ -9,13 +9,28 @@ module Rails
9
9
 
10
10
  def create_mailer_file
11
11
  template "mailer.rb", File.join('app/mailers', class_path, "#{file_name}_mailer.rb")
12
+
13
+ in_root do
14
+ if self.behavior == :invoke && !File.exist?(application_mailer_file_name)
15
+ template 'application_mailer.rb', application_mailer_file_name
16
+ end
17
+ end
12
18
  end
13
19
 
14
20
  hook_for :template_engine, :test_framework
15
21
 
16
22
  protected
17
23
  def file_name
18
- @_file_name ||= super.gsub(/\_mailer/i, '')
24
+ @_file_name ||= super.gsub(/_mailer/i, '')
25
+ end
26
+
27
+ private
28
+ def application_mailer_file_name
29
+ @_application_mailer_file_name ||= if mountable_engine?
30
+ "app/mailers/#{namespaced_path}/application_mailer.rb"
31
+ else
32
+ "app/mailers/application_mailer.rb"
33
+ end
19
34
  end
20
35
  end
21
36
  end
@@ -0,0 +1,6 @@
1
+ <% module_namespacing do -%>
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
+ <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.beta3
4
+ version: 5.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-24 00:00:00.000000000 Z
11
+ date: 2016-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0.beta3
19
+ version: 5.0.0.beta4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0.beta3
26
+ version: 5.0.0.beta4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionview
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 5.0.0.beta3
33
+ version: 5.0.0.beta4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 5.0.0.beta3
40
+ version: 5.0.0.beta4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activejob
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 5.0.0.beta3
47
+ version: 5.0.0.beta4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 5.0.0.beta3
54
+ version: 5.0.0.beta4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mail
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +119,7 @@ files:
119
119
  - lib/action_mailer/version.rb
120
120
  - lib/rails/generators/mailer/USAGE
121
121
  - lib/rails/generators/mailer/mailer_generator.rb
122
+ - lib/rails/generators/mailer/templates/application_mailer.rb
122
123
  - lib/rails/generators/mailer/templates/mailer.rb
123
124
  homepage: http://rubyonrails.org
124
125
  licenses:
@@ -141,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
142
  requirements:
142
143
  - none
143
144
  rubyforge_project:
144
- rubygems_version: 2.5.1
145
+ rubygems_version: 2.6.4
145
146
  signing_key:
146
147
  specification_version: 4
147
148
  summary: Email composition, delivery, and receiving framework (part of Rails).