inline_styles_mailer 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|