inline_styles_mailer 0.0.6 → 0.0.7
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.
- data/lib/inline_styles_mailer/version.rb +1 -1
- data/lib/inline_styles_mailer.rb +19 -11
- data/spec/fixtures/views/foo_mailer/backwards.html.erb +1 -0
- data/spec/fixtures/views/foo_mailer/backwards.text.erb +1 -0
- data/spec/fixtures/views/foo_mailer/foo.html.erb +1 -1
- data/spec/fixtures/views/foo_mailer/foo.text.erb +1 -0
- data/spec/foo_mailer.rb +4 -0
- data/spec/inline_styles_mailer/inline_styles_mailer_spec.rb +62 -30
- metadata +8 -2
data/lib/inline_styles_mailer.rb
CHANGED
@@ -63,17 +63,25 @@ module InlineStylesMailer
|
|
63
63
|
prefixes = options[:template_path] || self.class.name.underscore
|
64
64
|
prefixes = [prefixes] unless Rails.version =~ /^3\.0/
|
65
65
|
templates = lookup_context.find_all(options[:template_name] || action_name, prefixes)
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
66
|
+
options.reverse_merge!(:mime_version => "1.0", :charset => "UTF-8", :content_type => "text/plain", :parts_order => [ "text/plain", "text/enriched", "text/html"])
|
67
|
+
templates.sort_by {|t|
|
68
|
+
i = options[:parts_order].index(t.mime_type)
|
69
|
+
i > -1 ? i : 99
|
70
|
+
}.each do |template|
|
71
|
+
# templates.each do |template|
|
72
|
+
# e.g. template = app/views/user_mailer/welcome.html.erb
|
73
|
+
template_path = template.inspect.split("/").slice(-2, 2).join("/") # e.g. user_mailer/welcome.html.erb
|
74
|
+
parts = template_path.split('.')
|
75
|
+
handler = parts.pop.to_sym # e.g. erb
|
76
|
+
extension = parts.pop.to_sym # e.g. html
|
77
|
+
file = parts.join('.') # e.g. user_mailer/welcome (you get a deprecation warning if you don't strip off the format and handler)
|
78
|
+
format.send(extension) do
|
79
|
+
case extension
|
80
|
+
when :html
|
81
|
+
html = render_to_string :file => file, :layout => layout_to_use, handlers: [handler]
|
82
|
+
render :text => self.class.page.with_html(html).apply
|
83
|
+
else
|
84
|
+
render
|
77
85
|
end
|
78
86
|
end
|
79
87
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>Backwards text/html.</p>
|
@@ -0,0 +1 @@
|
|
1
|
+
Backwards text/plain.
|
@@ -1 +1 @@
|
|
1
|
-
<p>Testing foo.</p>
|
1
|
+
<p>Testing foo text/html.</p>
|
@@ -0,0 +1 @@
|
|
1
|
+
Testing foo text/plain.
|
data/spec/foo_mailer.rb
CHANGED
@@ -6,48 +6,80 @@ describe InlineStylesMailer do
|
|
6
6
|
before(:each) do
|
7
7
|
FooMailer.reset
|
8
8
|
Rails.should_receive(:root).any_number_of_times.and_return(Pathname.new(File.join("spec", "fixtures")))
|
9
|
-
FooMailer.stylesheet_path "assets/stylesheets"
|
10
9
|
end
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
mail.body.should =~ /<p style="color: red;">Testing foo\.<\/p>/
|
16
|
-
mail.body.should =~ /<body style="background: yellow;">/
|
11
|
+
describe "Inlining CSS" do
|
12
|
+
before do
|
13
|
+
FooMailer.stylesheet_path "assets/stylesheets"
|
17
14
|
end
|
18
|
-
end
|
19
15
|
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
context "Default CSS file" do
|
17
|
+
it "should inline the CSS" do
|
18
|
+
mail = FooMailer.foo
|
19
|
+
mail.body.parts.length.should eq(2)
|
20
|
+
mail.body.parts[1].body.should =~ /<p style="color: red;">Testing foo text\/html\.<\/p>/
|
21
|
+
mail.body.parts[1].body.should =~ /<body style="background: yellow;">/
|
22
|
+
end
|
23
23
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
|
25
|
+
context "SCSS preprocessing" do
|
26
|
+
before(:each) do
|
27
|
+
FooMailer.use_stylesheet("_override.css.scss")
|
28
|
+
end
|
29
|
+
it "should inline the CSS" do
|
30
|
+
mail = FooMailer.foo
|
31
|
+
mail.body.parts.length.should eq(2)
|
32
|
+
mail.body.parts[1].body.should =~ /<p style="color: orange;">Testing foo text\/html\.<\/p>/
|
33
|
+
mail.body.parts[1].body.should =~ /<body style="background: yellow;">/
|
34
|
+
end
|
28
35
|
end
|
29
|
-
end
|
30
36
|
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
context "SASS preprocessing" do
|
38
|
+
before(:each) do
|
39
|
+
FooMailer.use_stylesheet("_override.css.sass")
|
40
|
+
end
|
41
|
+
it "should inline the CSS" do
|
42
|
+
mail = FooMailer.foo
|
43
|
+
mail.body.parts.length.should eq(2)
|
44
|
+
mail.body.parts[1].body.should =~ /<p style="color: green;">Testing foo text\/html\.<\/p>/
|
45
|
+
mail.body.parts[1].body.should =~ /<body style="background: yellow;">/
|
46
|
+
end
|
34
47
|
end
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
48
|
+
|
49
|
+
context "No preprocessing (plain old CSS)" do
|
50
|
+
before(:each) do
|
51
|
+
FooMailer.use_stylesheet("_override.css")
|
52
|
+
end
|
53
|
+
it "should inline the CSS" do
|
54
|
+
mail = FooMailer.foo
|
55
|
+
mail.body.parts.length.should eq(2)
|
56
|
+
mail.body.parts[1].body.should =~ /<p style="color: blue;">Testing foo text\/html\.<\/p>/
|
57
|
+
mail.body.parts[1].body.should =~ /<body style="background: yellow;">/
|
58
|
+
end
|
39
59
|
end
|
60
|
+
|
40
61
|
end
|
41
62
|
|
42
|
-
|
43
|
-
|
44
|
-
|
63
|
+
describe "Switch parts order" do
|
64
|
+
|
65
|
+
context "text/plain first (default)" do
|
66
|
+
it "should inline the CSS" do
|
67
|
+
mail = FooMailer.foo
|
68
|
+
mail.body.parts.length.should eq(2)
|
69
|
+
mail.body.parts[0].content_type.should =~ /^text\/plain/
|
70
|
+
mail.body.parts[1].content_type.should =~ /^text\/html/
|
71
|
+
end
|
45
72
|
end
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
73
|
+
|
74
|
+
context "text/html first" do
|
75
|
+
it "should inline the CSS" do
|
76
|
+
mail = FooMailer.backwards
|
77
|
+
mail.body.parts.length.should eq(2)
|
78
|
+
mail.body.parts[0].content_type.should =~ /^text\/html/
|
79
|
+
mail.body.parts[1].content_type.should =~ /^text\/plain/
|
80
|
+
end
|
50
81
|
end
|
82
|
+
|
51
83
|
end
|
52
84
|
|
53
|
-
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inline_styles_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -99,7 +99,10 @@ files:
|
|
99
99
|
- spec/fixtures/assets/stylesheets/_override.css.sass
|
100
100
|
- spec/fixtures/assets/stylesheets/_override.css.scss
|
101
101
|
- spec/fixtures/layout.html.erb
|
102
|
+
- spec/fixtures/views/foo_mailer/backwards.html.erb
|
103
|
+
- spec/fixtures/views/foo_mailer/backwards.text.erb
|
102
104
|
- spec/fixtures/views/foo_mailer/foo.html.erb
|
105
|
+
- spec/fixtures/views/foo_mailer/foo.text.erb
|
103
106
|
- spec/fixtures/views/layouts/foo_mailer.html.erb
|
104
107
|
- spec/foo_mailer.rb
|
105
108
|
- spec/inline_styles_mailer/inline_styles_mailer_spec.rb
|
@@ -134,7 +137,10 @@ test_files:
|
|
134
137
|
- spec/fixtures/assets/stylesheets/_override.css.sass
|
135
138
|
- spec/fixtures/assets/stylesheets/_override.css.scss
|
136
139
|
- spec/fixtures/layout.html.erb
|
140
|
+
- spec/fixtures/views/foo_mailer/backwards.html.erb
|
141
|
+
- spec/fixtures/views/foo_mailer/backwards.text.erb
|
137
142
|
- spec/fixtures/views/foo_mailer/foo.html.erb
|
143
|
+
- spec/fixtures/views/foo_mailer/foo.text.erb
|
138
144
|
- spec/fixtures/views/layouts/foo_mailer.html.erb
|
139
145
|
- spec/foo_mailer.rb
|
140
146
|
- spec/inline_styles_mailer/inline_styles_mailer_spec.rb
|