actionmailer 4.2.2 → 4.2.3.rc1

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: d08a4fe32d63b5a869ea297764da9602ab7458ed
4
- data.tar.gz: 39cad5a3b22679e1f4aaf4d8fc0bdf2add1bdad5
3
+ metadata.gz: 95bf7d98e9eb4f7a05005ed8a79df1146b4635da
4
+ data.tar.gz: 1b6bb805060606d3c9244053f27322ffe0029694
5
5
  SHA512:
6
- metadata.gz: 24d81aadc8b3cd36e858bd0363eaf678641857742ea2445af9d4e7b5910a372146373b963c4c2fc68f133653cb66ebeeb2701e8a6ba19c2dee059a77164688ab
7
- data.tar.gz: 50dd088ffc5d768888c1a03606e57cd7205bca74a7905e4e88299127357e19e68a78a46a1dc6df66ca4aac7e1b26a55af6a7c77dbb8c4183c2f6a1d1021f1974
6
+ metadata.gz: 64f27b1b83e064be1be380014cdf11937b82ac0adc533729cb1d37a698f413fee2f7bef889ff8df28e6eba445c2a1937af28100b007f971b5ab49c5765b0e30c
7
+ data.tar.gz: d5ad4425863bdfa83f624aac4199199ff3e1ac272a140afa70a20fa68c8fa20663777b51a6f80a1da708a843f6823dd97d1067747b543eb7f7fad6e87ca9f7cc
@@ -1,11 +1,35 @@
1
+ ## Rails 4.2.3 (June 22, 2015) ##
2
+
3
+ * `assert_emails` in block form use the given number as expected value.
4
+ This makes the error message much easier to understand.
5
+
6
+ *Yuji Yaginuma*
7
+
8
+ * Mailer preview now uses `url_for` to fix links to emails for apps running on
9
+ a subdirectory.
10
+
11
+ *Remo Mueller*
12
+
13
+ * Mailer previews no longer crash when the `mail` method wasn't called
14
+ (`NullMail`).
15
+
16
+ Fixes #19849.
17
+
18
+ *Yves Senn*
19
+
20
+ * Make sure labels and values line up in mailer previews.
21
+
22
+ *Yves Senn*
23
+
24
+
1
25
  ## Rails 4.2.2 (June 16, 2015) ##
2
26
 
3
27
  * No Changes *
4
28
 
5
29
 
6
- ## Rails 4.2.1 (March 19, 2014) ##
30
+ ## Rails 4.2.1 (March 19, 2015) ##
7
31
 
8
- * No changes *
32
+ * No Changes *
9
33
 
10
34
 
11
35
  ## Rails 4.2.0 (December 20, 2014) ##
@@ -40,6 +40,7 @@ module ActionMailer
40
40
 
41
41
  autoload :Base
42
42
  autoload :DeliveryMethods
43
+ autoload :InlinePreviewInterceptor
43
44
  autoload :MailHelper
44
45
  autoload :Preview
45
46
  autoload :Previews, 'action_mailer/preview'
@@ -381,8 +381,8 @@ module ActionMailer
381
381
  # * <tt>:password</tt> - If your mail server requires authentication, set the password in this setting.
382
382
  # * <tt>:authentication</tt> - If your mail server requires authentication, you need to specify the
383
383
  # authentication type here.
384
- # This is a symbol and one of <tt>:plain</tt> (will send the password in the clear), <tt>:login</tt> (will
385
- # send password Base64 encoded) or <tt>:cram_md5</tt> (combines a Challenge/Response mechanism to exchange
384
+ # This is a symbol and one of <tt>:plain</tt> (will send the password Base64 encoded), <tt>:login</tt> (will
385
+ # send the password Base64 encoded) or <tt>:cram_md5</tt> (combines a Challenge/Response mechanism to exchange
386
386
  # information and a cryptographic Message Digest 5 algorithm to hash important information)
387
387
  # * <tt>:enable_starttls_auto</tt> - Detects if STARTTLS is enabled in your SMTP server and starts
388
388
  # to use it. Defaults to <tt>true</tt>.
@@ -600,6 +600,7 @@ module ActionMailer
600
600
 
601
601
  class NullMail #:nodoc:
602
602
  def body; '' end
603
+ def header; {} end
603
604
 
604
605
  def respond_to?(string, include_all=false)
605
606
  true
@@ -7,8 +7,8 @@ module ActionMailer
7
7
  module VERSION
8
8
  MAJOR = 4
9
9
  MINOR = 2
10
- TINY = 2
11
- PRE = nil
10
+ TINY = 3
11
+ PRE = "rc1"
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
14
14
  end
@@ -0,0 +1,61 @@
1
+ require 'base64'
2
+
3
+ module ActionMailer
4
+ # Implements a mailer preview interceptor that converts image tag src attributes
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.
7
+ #
8
+ # This interceptor is not enabled by default, to use it just register it like any
9
+ # other mailer preview interceptor:
10
+ #
11
+ # ActionMailer::Base.register_preview_interceptor(ActionMailer::InlinePreviewInterceptor)
12
+ #
13
+ class InlinePreviewInterceptor
14
+ PATTERN = /src=(?:"cid:[^"]+"|'cid:[^']+')/i
15
+
16
+ include Base64
17
+
18
+ def self.previewing_email(message) #:nodoc:
19
+ new(message).transform!
20
+ end
21
+
22
+ def initialize(message) #:nodoc:
23
+ @message = message
24
+ end
25
+
26
+ def transform! #:nodoc:
27
+ return message if html_part.blank?
28
+
29
+ html_source.gsub!(PATTERN) do |match|
30
+ if part = find_part(match[9..-2])
31
+ %[src="#{data_url(part)}"]
32
+ else
33
+ match
34
+ end
35
+ end
36
+
37
+ message
38
+ end
39
+
40
+ private
41
+ def message
42
+ @message
43
+ end
44
+
45
+ def html_part
46
+ @html_part ||= message.html_part
47
+ end
48
+
49
+ def html_source
50
+ html_part.body.raw_source
51
+ end
52
+
53
+ def data_url(part)
54
+ "data:#{part.mime_type};base64,#{strict_encode64(part.body.raw_source)}"
55
+ end
56
+
57
+ def find_part(cid)
58
+ message.all_parts.find{ |p| p.attachment? && p.cid == cid }
59
+ end
60
+ end
61
+ end
@@ -30,7 +30,7 @@ module ActionMailer
30
30
  original_count = ActionMailer::Base.deliveries.size
31
31
  yield
32
32
  new_count = ActionMailer::Base.deliveries.size
33
- assert_equal original_count + number, new_count, "#{number} emails expected, but #{new_count - original_count} were sent"
33
+ assert_equal number, new_count - original_count, "#{number} emails expected, but #{new_count - original_count} were sent"
34
34
  else
35
35
  assert_equal number, ActionMailer::Base.deliveries.size
36
36
  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: 4.2.2
4
+ version: 4.2.3.rc1
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: 2015-06-16 00:00:00.000000000 Z
11
+ date: 2015-06-22 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: 4.2.2
19
+ version: 4.2.3.rc1
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: 4.2.2
26
+ version: 4.2.3.rc1
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: 4.2.2
33
+ version: 4.2.3.rc1
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: 4.2.2
40
+ version: 4.2.3.rc1
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: 4.2.2
47
+ version: 4.2.3.rc1
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: 4.2.2
54
+ version: 4.2.3.rc1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mail
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +108,7 @@ files:
108
108
  - lib/action_mailer/delivery_job.rb
109
109
  - lib/action_mailer/delivery_methods.rb
110
110
  - lib/action_mailer/gem_version.rb
111
+ - lib/action_mailer/inline_preview_interceptor.rb
111
112
  - lib/action_mailer/log_subscriber.rb
112
113
  - lib/action_mailer/mail_helper.rb
113
114
  - lib/action_mailer/message_delivery.rb
@@ -135,9 +136,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
136
  version: 1.9.3
136
137
  required_rubygems_version: !ruby/object:Gem::Requirement
137
138
  requirements:
138
- - - ">="
139
+ - - ">"
139
140
  - !ruby/object:Gem::Version
140
- version: '0'
141
+ version: 1.3.1
141
142
  requirements:
142
143
  - none
143
144
  rubyforge_project: