letter_opener 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.rdoc +1 -1
- data/lib/letter_opener/message.html.erb +7 -2
- data/lib/letter_opener/message.rb +1 -1
- data/lib/letter_opener/railtie.rb +3 -1
- data/spec/letter_opener/message_spec.rb +39 -2
- metadata +17 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6b1abff977a3febac5c5c93d7198750e409730c8
|
|
4
|
+
data.tar.gz: 40c22d29d8eeb33e7d7ac5149d64dba2665eae60
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 00ac078e821bebeb9b4dd1b909db43a96bda5df54bcc11f635ae0478cd6278b29ee127d1c668c5f6421af8b17a34d2cad5a083bc9f18d8632b0b5c006e63e83b
|
|
7
|
+
data.tar.gz: 061baa01266531a9c4fde77c43d04c76619d8232837f06502d4ab06b4a97e0849f88068e51af313521540ea554041eb524a5f644622f5f536d041128ae936315
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## 1.3.0 ##
|
|
2
|
+
|
|
3
|
+
* Fix message body encoding is observed correctly in QP CTE. (thanks [Mark Dodwell](https://github.com/mkdynamic))
|
|
4
|
+
* Remove fixed width on the mail content. (thanks [weexpectedTHIS](https://github.com/weexpectedTHIS))
|
|
5
|
+
* Render email content in the iframe. Fixes [#98](https://github.com/ryanb/letter_opener/issues/98). (thanks [Jacob Maine](https://github.com/mainej))
|
|
6
|
+
|
|
1
7
|
## 1.2.0 ##
|
|
2
8
|
|
|
3
9
|
* Fix auto_link() which in some cases would return an empty <a> tag for plain text messages. (thanks [Kevin McPhillips](https://github.com/kmcphillips))
|
data/README.rdoc
CHANGED
|
@@ -47,7 +47,7 @@ Alternatively, if you are using ActionMailer directly (without Rails) you will n
|
|
|
47
47
|
|
|
48
48
|
Letter Opener uses {Launchy}[https://github.com/copiousfreetime/launchy] to open sent mail in the browser. This assumes the Ruby process is running on the local development machine. If you are using a separate staging server or VM this will not work. In that case consider using {Mailtrap}[http://mailtrap.io/] or {MailCatcher}[http://mailcatcher.me/].
|
|
49
49
|
|
|
50
|
-
In order to keep this project simple, I don't have plans to turn it into a Rails engine with an interface for browsing the sent mail but there is a
|
|
50
|
+
In order to keep this project simple, I don't have plans to turn it into a Rails engine with an interface for browsing the sent mail but there is a {gem you can use for that}[https://github.com/fgrehm/letter_opener_web].
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
== Development & Feedback
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
<style type="text/css">
|
|
9
9
|
#container {
|
|
10
10
|
margin: 10px auto;
|
|
11
|
-
width: 800px;
|
|
12
11
|
}
|
|
13
12
|
#message_headers {
|
|
14
13
|
background: #fff;
|
|
@@ -53,6 +52,12 @@
|
|
|
53
52
|
border: 1px solid #eee;
|
|
54
53
|
background-color: #fcfcfc;
|
|
55
54
|
}
|
|
55
|
+
|
|
56
|
+
iframe {
|
|
57
|
+
border: 0;
|
|
58
|
+
width: 100%;
|
|
59
|
+
height: 100%;
|
|
60
|
+
}
|
|
56
61
|
</style>
|
|
57
62
|
</head>
|
|
58
63
|
<body>
|
|
@@ -119,7 +124,7 @@
|
|
|
119
124
|
<% if type == "plain" %>
|
|
120
125
|
<pre id="message_body"><%= auto_link(h(body)) %></pre>
|
|
121
126
|
<% else %>
|
|
122
|
-
<%= body %>
|
|
127
|
+
<iframe seamless="seamless" srcdoc="<%= h(body) %>"></iframe>
|
|
123
128
|
<% end %>
|
|
124
129
|
</div>
|
|
125
130
|
</body>
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
module LetterOpener
|
|
2
2
|
class Railtie < Rails::Railtie
|
|
3
3
|
initializer "letter_opener.add_delivery_method" do
|
|
4
|
-
|
|
4
|
+
ActiveSupport.on_load :action_mailer do
|
|
5
|
+
ActionMailer::Base.add_delivery_method :letter_opener, LetterOpener::DeliveryMethod, :location => Rails.root.join("tmp", "letter_opener")
|
|
6
|
+
end
|
|
5
7
|
end
|
|
6
8
|
end
|
|
7
9
|
end
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
describe LetterOpener::Message do
|
|
4
5
|
let(:location) { File.expand_path('../../../tmp/letter_opener', __FILE__) }
|
|
5
6
|
|
|
6
|
-
def mail(options={})
|
|
7
|
-
Mail.new(options)
|
|
7
|
+
def mail(options={}, &blk)
|
|
8
|
+
Mail.new(options, &blk)
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
describe '#reply_to' do
|
|
@@ -164,4 +165,40 @@ describe LetterOpener::Message do
|
|
|
164
165
|
expect(message.auto_link(raw)).to eq(linked)
|
|
165
166
|
end
|
|
166
167
|
end
|
|
168
|
+
|
|
169
|
+
describe '#body' do
|
|
170
|
+
it 'handles UTF-8 charset body correctly, with QP CTE, for a non-multipart message' do
|
|
171
|
+
mail = mail(:sender => 'sender@example.com') do
|
|
172
|
+
content_type "text/html; charset=UTF-8"
|
|
173
|
+
content_transfer_encoding 'quoted-printable'
|
|
174
|
+
body "☃"
|
|
175
|
+
end
|
|
176
|
+
message = described_class.new(location, mail)
|
|
177
|
+
expect(message.body.encoding.name).to eq('UTF-8')
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
it 'handles UTF-8 charset HTML part body correctly, with QP CTE, for a multipart message' do
|
|
181
|
+
mail = mail(:sender => 'sender@example.com') do
|
|
182
|
+
html_part do
|
|
183
|
+
content_type "text/html; charset=UTF-8"
|
|
184
|
+
content_transfer_encoding 'quoted-printable'
|
|
185
|
+
body "☃"
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
message = described_class.new(location, mail, mail.html_part)
|
|
189
|
+
expect(message.body.encoding.name).to eq('UTF-8')
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
it 'handles UTF-8 charset text part body correctly, with QP CTE, for a multipart message' do
|
|
193
|
+
mail = mail(:sender => 'sender@example.com') do
|
|
194
|
+
text_part do
|
|
195
|
+
content_type "text/plain; charset=UTF-8"
|
|
196
|
+
content_transfer_encoding 'quoted-printable'
|
|
197
|
+
body "☃"
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
message = described_class.new(location, mail, mail.text_part)
|
|
201
|
+
expect(message.body.encoding.name).to eq('UTF-8')
|
|
202
|
+
end
|
|
203
|
+
end
|
|
167
204
|
end
|
metadata
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: letter_opener
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Bates
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2014-12-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: launchy
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '2.2'
|
|
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
26
|
version: '2.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rspec
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - ~>
|
|
31
|
+
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: 2.14.0
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - ~>
|
|
38
|
+
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 2.14.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: mail
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - ~>
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: 2.5.0
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - ~>
|
|
52
|
+
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 2.5.0
|
|
55
55
|
description: When mail is sent from your application, Letter Opener will open a preview
|
|
@@ -59,19 +59,19 @@ executables: []
|
|
|
59
59
|
extensions: []
|
|
60
60
|
extra_rdoc_files: []
|
|
61
61
|
files:
|
|
62
|
+
- CHANGELOG.md
|
|
63
|
+
- Gemfile
|
|
64
|
+
- LICENSE
|
|
65
|
+
- README.rdoc
|
|
66
|
+
- Rakefile
|
|
67
|
+
- lib/letter_opener.rb
|
|
62
68
|
- lib/letter_opener/delivery_method.rb
|
|
63
69
|
- lib/letter_opener/message.html.erb
|
|
64
70
|
- lib/letter_opener/message.rb
|
|
65
71
|
- lib/letter_opener/railtie.rb
|
|
66
|
-
- lib/letter_opener.rb
|
|
67
72
|
- spec/letter_opener/delivery_method_spec.rb
|
|
68
73
|
- spec/letter_opener/message_spec.rb
|
|
69
74
|
- spec/spec_helper.rb
|
|
70
|
-
- CHANGELOG.md
|
|
71
|
-
- Gemfile
|
|
72
|
-
- LICENSE
|
|
73
|
-
- Rakefile
|
|
74
|
-
- README.rdoc
|
|
75
75
|
homepage: http://github.com/ryanb/letter_opener
|
|
76
76
|
licenses: []
|
|
77
77
|
metadata: {}
|
|
@@ -81,17 +81,17 @@ require_paths:
|
|
|
81
81
|
- lib
|
|
82
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
83
|
requirements:
|
|
84
|
-
- -
|
|
84
|
+
- - ">="
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
86
|
version: '0'
|
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
requirements:
|
|
89
|
-
- -
|
|
89
|
+
- - ">="
|
|
90
90
|
- !ruby/object:Gem::Version
|
|
91
91
|
version: 1.3.4
|
|
92
92
|
requirements: []
|
|
93
93
|
rubyforge_project: letter_opener
|
|
94
|
-
rubygems_version: 2.
|
|
94
|
+
rubygems_version: 2.2.2
|
|
95
95
|
signing_key:
|
|
96
96
|
specification_version: 4
|
|
97
97
|
summary: Preview mail in browser instead of sending.
|