premailer-rails 1.10.2 → 1.11.1
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/.gitignore +2 -2
- data/.travis.yml +3 -2
- data/CHANGELOG.md +12 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/premailer/rails/css_helper.rb +2 -2
- data/lib/premailer/rails/css_loaders/asset_pipeline_loader.rb +1 -0
- data/lib/premailer/rails/hook.rb +2 -6
- data/premailer-rails.gemspec +1 -1
- data/spec/integration/hook_spec.rb +35 -10
- data/spec/support/fixtures/message.rb +40 -0
- metadata +7 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13055f85c556422022c71564c81f5816ecffd482e4514c1481212fab2c942eb7
|
4
|
+
data.tar.gz: 8b9093f66f195ac826382329877be7c9b863650c5bcb0c057bae0cc073b8978d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a861465e80d026c7e221b09f0c395be4d4fb26fa3662a233de5ba8295c41f0861b79958f873830fa4bd6333bd21798298155f8cadf1cf7861f08f5348ee3f901
|
7
|
+
data.tar.gz: f4cd1b29b3b1a4ee43fe83971b35b6a43896298ab3c1fec8d4fc91e2fc0d1290b353bba0096e2ae45376e394f6ad00142cf3dda7447a72259c7639c01fbd4231
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,11 +3,12 @@ language: ruby
|
|
3
3
|
cache: bundler
|
4
4
|
script: bundle exec rspec
|
5
5
|
rvm:
|
6
|
-
- 2.
|
6
|
+
- 2.6.5
|
7
|
+
- 2.7.0
|
7
8
|
env:
|
8
9
|
matrix:
|
9
|
-
- ACTION_MAILER_VERSION=4
|
10
10
|
- ACTION_MAILER_VERSION=5
|
11
|
+
- ACTION_MAILER_VERSION=6
|
11
12
|
- ACTION_MAILER_VERSION=master
|
12
13
|
matrix:
|
13
14
|
fast_finish: true
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v1.11.1
|
4
|
+
|
5
|
+
- Check if `Rails.application` is defined (@pabloh, #250)
|
6
|
+
|
7
|
+
## v1.11.0
|
8
|
+
|
9
|
+
- Remove `force_encoding!`
|
10
|
+
|
11
|
+
## v1.10.3
|
12
|
+
|
13
|
+
- Remove upper version constraint for actionmailer
|
14
|
+
|
3
15
|
## v1.10.2
|
4
16
|
|
5
17
|
- Explicitly check for assets_manifest (@derekwheel, #214)
|
data/README.md
CHANGED
@@ -179,7 +179,7 @@ premailer-rails is released under the MIT license. See the [license file].
|
|
179
179
|
[actionmailer]: https://github.com/rails/rails/tree/master/actionmailer
|
180
180
|
[nokogiri]: https://github.com/sparklemotion/nokogiri
|
181
181
|
|
182
|
-
[premailer documentation]:
|
182
|
+
[premailer documentation]: https://www.rubydoc.info/gems/premailer/Premailer:initialize
|
183
183
|
|
184
184
|
[fphilipe twitter]: https://twitter.com/fphilipe
|
185
185
|
[license file]: LICENSE
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.11.1
|
@@ -39,13 +39,13 @@ class Premailer
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def cache_enabled?
|
42
|
-
defined?(::Rails) && ::Rails.env.production?
|
42
|
+
defined?(::Rails.env) && ::Rails.env.production?
|
43
43
|
end
|
44
44
|
|
45
45
|
def load_css(url)
|
46
46
|
Premailer::Rails.config.fetch(:strategies).each do |strategy|
|
47
47
|
css = find_strategy(strategy).load(url)
|
48
|
-
return css
|
48
|
+
return css if css
|
49
49
|
end
|
50
50
|
|
51
51
|
raise FileNotFound, %{File with URL "#{url}" could not be loaded by any strategy.}
|
data/lib/premailer/rails/hook.rb
CHANGED
@@ -73,10 +73,8 @@ class Premailer
|
|
73
73
|
part = html_part
|
74
74
|
html = premailer.to_inline_css
|
75
75
|
Mail::Part.new do
|
76
|
-
|
77
|
-
content_type "text/html; charset=#{part.charset}"
|
76
|
+
content_type "text/html; charset=#{html.encoding}"
|
78
77
|
body html
|
79
|
-
body_encoding part.body.encoding
|
80
78
|
end
|
81
79
|
end
|
82
80
|
|
@@ -85,10 +83,8 @@ class Premailer
|
|
85
83
|
part = html_part
|
86
84
|
text = premailer.to_plain_text
|
87
85
|
Mail::Part.new do
|
88
|
-
|
89
|
-
content_type "text/plain; charset=#{part.charset}"
|
86
|
+
content_type "text/plain; charset=#{text.encoding}"
|
90
87
|
body text
|
91
|
-
body_encoding part.body.encoding
|
92
88
|
end
|
93
89
|
end
|
94
90
|
end
|
data/premailer-rails.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
24
24
|
s.add_dependency 'premailer', '~> 1.7', '>= 1.7.9'
|
25
|
-
s.add_dependency 'actionmailer', '>= 3'
|
25
|
+
s.add_dependency 'actionmailer', '>= 3'
|
26
26
|
|
27
27
|
s.add_development_dependency 'rspec', '~> 3.3'
|
28
28
|
s.add_development_dependency 'nokogiri'
|
@@ -6,7 +6,7 @@ describe Premailer::Rails::Hook do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def body_content(message)
|
9
|
-
Nokogiri::HTML(message.html_string).at('body').content
|
9
|
+
Nokogiri::HTML(message.html_string).at('body').content.gsub("\r\n", "\n")
|
10
10
|
end
|
11
11
|
|
12
12
|
class Mail::Message
|
@@ -47,18 +47,31 @@ describe Premailer::Rails::Hook do
|
|
47
47
|
expect(processed_message.parts).to match_array(expected_parts)
|
48
48
|
end
|
49
49
|
|
50
|
-
|
51
|
-
|
50
|
+
it 'does not screw up the text by maintaining the original body encoding' do
|
51
|
+
raw_msg = Fixtures::Message.latin_message
|
52
|
+
processed_msg = Fixtures::Message.latin_message
|
53
|
+
run_hook(processed_msg)
|
54
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
52
55
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
raw_msg = Fixtures::Message.non_latin_message
|
57
|
+
processed_msg = Fixtures::Message.non_latin_message
|
58
|
+
run_hook(processed_msg)
|
59
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
60
|
+
|
61
|
+
raw_msg = Fixtures::Message.greek_message
|
62
|
+
processed_msg = Fixtures::Message.greek_message
|
63
|
+
run_hook(processed_msg)
|
64
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
65
|
+
|
66
|
+
raw_msg = Fixtures::Message.dash_message
|
67
|
+
processed_msg = Fixtures::Message.dash_message
|
68
|
+
run_hook(processed_msg)
|
69
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
59
70
|
end
|
60
71
|
|
61
|
-
it '
|
72
|
+
it 'supports US-ASCII output' do
|
73
|
+
Premailer::Rails.config.merge!(output_encoding: 'US-ASCII')
|
74
|
+
|
62
75
|
raw_msg = Fixtures::Message.latin_message
|
63
76
|
processed_msg = Fixtures::Message.latin_message
|
64
77
|
run_hook(processed_msg)
|
@@ -68,6 +81,18 @@ describe Premailer::Rails::Hook do
|
|
68
81
|
processed_msg = Fixtures::Message.non_latin_message
|
69
82
|
run_hook(processed_msg)
|
70
83
|
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
84
|
+
|
85
|
+
raw_msg = Fixtures::Message.greek_message
|
86
|
+
processed_msg = Fixtures::Message.greek_message
|
87
|
+
run_hook(processed_msg)
|
88
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
89
|
+
|
90
|
+
raw_msg = Fixtures::Message.dash_message
|
91
|
+
processed_msg = Fixtures::Message.dash_message
|
92
|
+
run_hook(processed_msg)
|
93
|
+
expect(body_content(processed_msg)).to eq(body_content(raw_msg))
|
94
|
+
ensure
|
95
|
+
Premailer::Rails.config.delete(:output_encoding)
|
71
96
|
end
|
72
97
|
|
73
98
|
it 'generates a text part from the html' do
|
@@ -35,6 +35,30 @@ module Fixtures
|
|
35
35
|
</html>
|
36
36
|
HTML
|
37
37
|
|
38
|
+
HTML_PART_IN_GREEK = <<-HTML.encode(Encoding::ISO_8859_7)
|
39
|
+
<html>
|
40
|
+
<head>
|
41
|
+
</head>
|
42
|
+
<body>
|
43
|
+
<p>
|
44
|
+
Αα Ββ Γγ Δδ Εε Ζζ Ηη Θθ Ιι Κκ Λλ Μμ Νν Ξξ Οο Ππ Ρρ Σσ Ττ Υυ Φφ Χχ Ψψ Ωω
|
45
|
+
</p>
|
46
|
+
</body>
|
47
|
+
</html>
|
48
|
+
HTML
|
49
|
+
|
50
|
+
HTML_PART_WITH_DASHES = <<-HTML
|
51
|
+
<html>
|
52
|
+
<head>
|
53
|
+
</head>
|
54
|
+
<body>
|
55
|
+
<p>
|
56
|
+
Hello there—yes you! What's up with – pardon the interrupion – dashes? I can also do – and —.
|
57
|
+
</p>
|
58
|
+
</body>
|
59
|
+
</html>
|
60
|
+
HTML
|
61
|
+
|
38
62
|
HTML_PART_WITH_CSS = <<-HTML
|
39
63
|
<html>
|
40
64
|
<head>
|
@@ -130,6 +154,22 @@ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
130
154
|
end
|
131
155
|
end
|
132
156
|
|
157
|
+
def greek_message
|
158
|
+
base_message.tap do |message|
|
159
|
+
message.body = HTML_PART_IN_GREEK
|
160
|
+
message.content_type 'text/html; charset=ISO-8859-7'
|
161
|
+
message.ready_to_send!
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
def dash_message
|
166
|
+
base_message.tap do |message|
|
167
|
+
message.body = HTML_PART_WITH_DASHES
|
168
|
+
message.content_type 'text/html; charset=UTF-8'
|
169
|
+
message.ready_to_send!
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
133
173
|
private
|
134
174
|
|
135
175
|
def base_message
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: premailer-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philipe Fatio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: premailer
|
@@ -37,9 +37,6 @@ dependencies:
|
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '3'
|
40
|
-
- - "<"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '6'
|
43
40
|
type: :runtime
|
44
41
|
prerelease: false
|
45
42
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -47,9 +44,6 @@ dependencies:
|
|
47
44
|
- - ">="
|
48
45
|
- !ruby/object:Gem::Version
|
49
46
|
version: '3'
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '6'
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
48
|
name: rspec
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,6 +152,8 @@ files:
|
|
158
152
|
- spec/rails_app/config/environments/test.rb
|
159
153
|
- spec/rails_app/config/initializers/assets.rb
|
160
154
|
- spec/rails_app/config/routes.rb
|
155
|
+
- spec/rails_app/log/.keep
|
156
|
+
- spec/rails_app/tmp/.keep
|
161
157
|
- spec/spec_helper.rb
|
162
158
|
- spec/support/fixtures/html.rb
|
163
159
|
- spec/support/fixtures/message.rb
|
@@ -185,8 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
181
|
- !ruby/object:Gem::Version
|
186
182
|
version: '0'
|
187
183
|
requirements: []
|
188
|
-
|
189
|
-
rubygems_version: 2.7.3
|
184
|
+
rubygems_version: 3.1.2
|
190
185
|
signing_key:
|
191
186
|
specification_version: 4
|
192
187
|
summary: Easily create styled HTML emails in Rails.
|
@@ -224,6 +219,8 @@ test_files:
|
|
224
219
|
- spec/rails_app/config/environments/test.rb
|
225
220
|
- spec/rails_app/config/initializers/assets.rb
|
226
221
|
- spec/rails_app/config/routes.rb
|
222
|
+
- spec/rails_app/log/.keep
|
223
|
+
- spec/rails_app/tmp/.keep
|
227
224
|
- spec/spec_helper.rb
|
228
225
|
- spec/support/fixtures/html.rb
|
229
226
|
- spec/support/fixtures/message.rb
|