middleman-inline-style 0.5.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 +7 -0
- data/.gitignore +4 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +55 -0
- data/README.rdoc +127 -0
- data/Rakefile +9 -0
- data/example.rb +5 -0
- data/lib/middleman-inline-style.rb +105 -0
- data/lib/middleman-inline-style/css_parser_wrapper.rb +15 -0
- data/lib/middleman-inline-style/csspool_wrapper.rb +12 -0
- data/lib/middleman-inline-style/mail-interceptor.rb +37 -0
- data/lib/middleman-inline-style/middleman-extension.rb +11 -0
- data/lib/middleman-inline-style/rack-middleware.rb +36 -0
- data/lib/middleman-inline-style/rule.rb +18 -0
- data/lib/middleman-inline-style/version.rb +3 -0
- data/middleman-inline-style.gemspec +29 -0
- data/spec/css_inlining_spec.rb +90 -0
- data/spec/css_parsing_spec.rb +146 -0
- data/spec/fixtures/all.css +3 -0
- data/spec/fixtures/boletin.html +261 -0
- data/spec/fixtures/box-model.html +37 -0
- data/spec/fixtures/inline.html +107 -0
- data/spec/fixtures/none.css +3 -0
- data/spec/fixtures/print.css +3 -0
- data/spec/fixtures/selectors.html +27 -0
- data/spec/fixtures/style.css +3 -0
- data/spec/interceptor_spec.rb +64 -0
- data/spec/rack_middleware_spec.rb +60 -0
- data/spec/spec_helper.rb +62 -0
- metadata +186 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
<!DOCTYPE html PUBliC "-//W3C//DTD html 4.01//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Examples of margins, padding, and borders</title>
|
5
|
+
<style type="text/css">
|
6
|
+
|
7
|
+
ul {
|
8
|
+
background: yellow;
|
9
|
+
margin: 12px 12px 12px 12px;
|
10
|
+
padding: 3px 3px 3px 3px;
|
11
|
+
/* No borders set */
|
12
|
+
}
|
13
|
+
li.withborder {
|
14
|
+
border-style: dashed;
|
15
|
+
border-width: medium; /* sets border width on all sides */
|
16
|
+
border-color: lime;
|
17
|
+
}
|
18
|
+
li {
|
19
|
+
color: white; /* text color is white */
|
20
|
+
background: blue; /* Content, padding will be blue */
|
21
|
+
margin: 12px 12px 12px 12px;
|
22
|
+
padding: 12px 0px 12px 12px; /* Note 0px padding right */
|
23
|
+
list-style: none /* no glyphs before a list item */
|
24
|
+
}
|
25
|
+
|
26
|
+
#A #B {
|
27
|
+
color: red;
|
28
|
+
}
|
29
|
+
</style>
|
30
|
+
</head>
|
31
|
+
<body>
|
32
|
+
<ul>
|
33
|
+
<li>First element of list</li>
|
34
|
+
<li class="withborder">Second element of list is a bit longer to illustrate wrapping.</li>
|
35
|
+
</ul>
|
36
|
+
</body>
|
37
|
+
</html>
|
@@ -0,0 +1,107 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-type">
|
5
|
+
<title> Boletín CENART - November
|
6
|
+
</title>
|
7
|
+
<link href="/print.css?1248460539" rel="stylesheet" media="print" type="text/css">
|
8
|
+
</head>
|
9
|
+
<body style='margin: 0; padding: 0; font: 13px "Lucida Grande", Lucida, Verdana, sans-serif; width: 680px; color: #373737; margin-left: auto; margin-right: auto;'>
|
10
|
+
<div id="header" style="margin: 0; padding: 0;">
|
11
|
+
<div id="aviso" style="margin: 0; padding: 25px 0; text-align: center; color: green;">Si usted no puede visualizar correctamente este boletín haga <a href="http://localhost:3000/boletines/noviembre-2009" style="margin: 0; padding: 0; color: #185d6b;">click aquí</a>
|
12
|
+
</div>
|
13
|
+
<div id="banner" style="margin: 15px; padding: 0; text-align: right; color: #639b22;">
|
14
|
+
<span id="cenart" style="margin: 0; padding: 0; font-size: 20px;">CENART</span> Noviembre 2009</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
<dl class="categoria" id="A" style="margin: 0; padding: 0;">
|
22
|
+
<dt style="margin: 0; padding: 10px; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57;">A</dt>
|
23
|
+
<dd style="margin: 0; padding: 0;">
|
24
|
+
|
25
|
+
|
26
|
+
<dl class="evento non" style="margin: 0; padding: 30px 25px 20px 35px; border-bottom: 1px dashed #a6a6a6; background-color: #d9e3cf;">
|
27
|
+
<dt style="margin: 0; padding: 0; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57; background: none; font-weight: bold; border: none;"><a href="" style="margin: 0; padding: 0; color: #185d6b;">1</a></dt>
|
28
|
+
|
29
|
+
<dd class="descripcion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
30
|
+
<p style="margin: 10px 0; padding: 0;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
31
|
+
</dd>
|
32
|
+
<dd class="fechas" style="margin: 10px 0; padding: 0; text-align: justify;">
|
33
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Fechas: </b>Fecha</dd>
|
34
|
+
<dd class="locacion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
35
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Lugar: </b>Lugar</dd>
|
36
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
37
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Público: </b>Público</dd>
|
38
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
39
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Precio: </b>Precio</dd>
|
40
|
+
</dl>
|
41
|
+
</dd>
|
42
|
+
</dl>
|
43
|
+
<dl class="categoria" id="B" style="margin: 0; padding: 0;">
|
44
|
+
<dt style="margin: 0; padding: 10px; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57;">B</dt>
|
45
|
+
<dd style="margin: 0; padding: 0;">
|
46
|
+
|
47
|
+
|
48
|
+
<dl class="evento par" style="margin: 0; padding: 30px 25px 20px 35px; border-bottom: 1px dashed #a6a6a6; background-color: #cfdfe3;">
|
49
|
+
<dt style="margin: 0; padding: 0; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57; background: none; font-weight: bold; border: none;"><a href="" style="margin: 0; padding: 0; color: #185d6b;">1</a></dt>
|
50
|
+
|
51
|
+
<dd class="descripcion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
52
|
+
<p style="margin: 10px 0; padding: 0;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
53
|
+
</dd>
|
54
|
+
<dd class="fechas" style="margin: 10px 0; padding: 0; text-align: justify;">
|
55
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Fechas: </b>Fecha</dd>
|
56
|
+
<dd class="locacion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
57
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Lugar: </b>Lugar</dd>
|
58
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
59
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Público: </b>Público</dd>
|
60
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
61
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Precio: </b>Precio</dd>
|
62
|
+
</dl>
|
63
|
+
</dd>
|
64
|
+
</dl>
|
65
|
+
<dl class="categoria" id="C" style="margin: 0; padding: 0;">
|
66
|
+
<dt style="margin: 0; padding: 10px; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57;">C</dt>
|
67
|
+
<dd style="margin: 0; padding: 0;">
|
68
|
+
|
69
|
+
|
70
|
+
<dl class="evento non" style="margin: 0; padding: 30px 25px 20px 35px; border-bottom: 1px dashed #a6a6a6; background-color: #d9e3cf;">
|
71
|
+
<dt style="margin: 0; padding: 0; font-size: 20px; background-color: #416517; border-bottom: 1px dashed #a6a6a6; color: #a0bf57; background: none; font-weight: bold; border: none;"><a href="" style="margin: 0; padding: 0; color: #185d6b;">1</a></dt>
|
72
|
+
|
73
|
+
<dd class="descripcion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
74
|
+
<p style="margin: 10px 0; padding: 0;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
75
|
+
</dd>
|
76
|
+
<dd class="fechas" style="margin: 10px 0; padding: 0; text-align: justify;">
|
77
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Fechas: </b>Fecha</dd>
|
78
|
+
<dd class="locacion" style="margin: 10px 0; padding: 0; text-align: justify;">
|
79
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Lugar: </b>Lugar</dd>
|
80
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
81
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Público: </b>Público</dd>
|
82
|
+
<dd class="precio" style="margin: 10px 0; padding: 0; text-align: justify;">
|
83
|
+
<b style="margin: 0; padding: 0; color: #185d6b;">Precio: </b>Precio</dd>
|
84
|
+
</dl>
|
85
|
+
</dd>
|
86
|
+
</dl>
|
87
|
+
<div id="footer" style="margin: 0; padding: 0;">
|
88
|
+
<div id="direccion" style="margin: 0; padding: 30px 25px 20px 35px;">
|
89
|
+
<b style="margin: 0; padding: 0; color: #5f792d;">lorem</b><br style="margin: 0; padding: 0;">
|
90
|
+
ipsum<br style="margin: 0; padding: 0;">
|
91
|
+
dolor<br style="margin: 0; padding: 0;">
|
92
|
+
sit<br style="margin: 0; padding: 0;">
|
93
|
+
</div>
|
94
|
+
|
95
|
+
<div id="contacto" style="margin: 0; padding: 30px 25px 20px 35px;">
|
96
|
+
contacto <br style="margin: 0; padding: 0;"><a href="mailto:mail@host.org" style="margin: 0; padding: 0; color: #185d6b; font-weight: bold; font-size: 1.2em;">mail@host.org</a>
|
97
|
+
</div>
|
98
|
+
<div id="logos" style="margin: 0; padding: 0; width: 100%; margin-top: 40px; background-image: url('/images/boletines/Noviembre/logos_fondo.jpg');">
|
99
|
+
<img src="A" id="izq" alt="A" style="margin: 30px; padding: 1px; float: left; border: none; color: red;"><img src="B" id="der" alt="B" style="margin: 0; padding: 0; float: right;"><div class="clearer" style="margin: 0; padding: 0; clear: both;">
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
</div>
|
106
|
+
</body>
|
107
|
+
</html>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<!DOCTYPE html PUBliC "-//W3C//DTD html 4.01//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Examples of margins, padding, and borders</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#A #B {
|
7
|
+
color: red;
|
8
|
+
}
|
9
|
+
.cA .cB {
|
10
|
+
color: blue;
|
11
|
+
}
|
12
|
+
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<div id="A">
|
17
|
+
A
|
18
|
+
<div id="B">B</div>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="cA">
|
22
|
+
cA
|
23
|
+
<div class="cB">cB</div>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
</body>
|
27
|
+
</html>
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require "#{ File.dirname __FILE__ }/spec_helper"
|
2
|
+
|
3
|
+
require 'mail'
|
4
|
+
Mail.defaults do
|
5
|
+
delivery_method :test
|
6
|
+
end
|
7
|
+
Mail.register_interceptor \
|
8
|
+
InlineStyle::Mail::Interceptor.new(:stylesheets_path => FIXTURES)
|
9
|
+
|
10
|
+
describe InlineStyle::Mail::Interceptor do
|
11
|
+
|
12
|
+
before do
|
13
|
+
Mail::TestMailer.deliveries.clear
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should inline html e-mail' do
|
17
|
+
Mail.deliver do
|
18
|
+
to 'joe@example.com'
|
19
|
+
from 'joe@example.com'
|
20
|
+
subject 'HTML e-mail'
|
21
|
+
content_type 'text/html'
|
22
|
+
body File.read("#{ FIXTURES }/boletin.html")
|
23
|
+
end
|
24
|
+
|
25
|
+
Mail::TestMailer.deliveries.first.body.to_s.
|
26
|
+
should == File.read("#{ FIXTURES }/inline.html")
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should not inline non-html' do
|
30
|
+
Mail.deliver do
|
31
|
+
to 'joe@example.com'
|
32
|
+
from 'joe@example.com'
|
33
|
+
subject 'Plain text e-mail (with HTML looking content)'
|
34
|
+
content_type 'text/plain'
|
35
|
+
body File.read("#{ FIXTURES }/boletin.html")
|
36
|
+
end
|
37
|
+
|
38
|
+
Mail::TestMailer.deliveries.first.body.to_s.
|
39
|
+
should == File.read("#{ FIXTURES }/boletin.html")
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should inline html part of multipart/alternative' do
|
43
|
+
Mail.deliver do
|
44
|
+
to 'joe@example.com'
|
45
|
+
from 'joe@example.com'
|
46
|
+
subject 'Multipart/alternative e-mail'
|
47
|
+
text_part do
|
48
|
+
body File.read("#{ FIXTURES }/boletin.html")
|
49
|
+
end
|
50
|
+
html_part do
|
51
|
+
content_type 'text/html; charset=UTF-8'
|
52
|
+
body File.read("#{ FIXTURES }/boletin.html")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
Mail::TestMailer.deliveries.first.parts[0].body.to_s.
|
57
|
+
should == File.read("#{ FIXTURES }/boletin.html")
|
58
|
+
|
59
|
+
Mail::TestMailer.deliveries.first.parts[1].body.to_s.
|
60
|
+
should == File.read("#{ FIXTURES }/inline.html")
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "middleman-inline-style/rack-middleware"
|
3
|
+
|
4
|
+
describe InlineStyle::Rack::Middleware do
|
5
|
+
def get_response path, body, opts = {}
|
6
|
+
content_type = opts.delete(:content_type) || 'text/html'
|
7
|
+
app = Rack::Builder.new do
|
8
|
+
use InlineStyle::Rack::Middleware, opts
|
9
|
+
run lambda { |env| env['DOCUMENT_ROOT'] = FIXTURES; [200, {'Content-Type' => content_type}, [body]] }
|
10
|
+
end
|
11
|
+
Nokogiri.HTML Rack::MockRequest.new(app).get(path).body
|
12
|
+
end
|
13
|
+
|
14
|
+
before do
|
15
|
+
@html = File.read("#{ FIXTURES }/boletin.html")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should inline css" do
|
19
|
+
get_response('/', @html, :stylesheets_path => FIXTURES).should have_inline_style_for('#A')
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should use external css" do
|
23
|
+
get_response('/', @html, :stylesheets_path => FIXTURES).css('#izq').first['style'].should match_style /margin: 30.0px/
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'Path inclusion' do
|
27
|
+
it "should inline style for string path" do
|
28
|
+
paths = "/some/path"
|
29
|
+
get_response('/some/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should have_inline_style_for('#A')
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should not inline style for string path" do
|
33
|
+
paths = "/some/path"
|
34
|
+
get_response('/some/other/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should_not have_inline_style_for('#A')
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should inline style for regexp path" do
|
38
|
+
paths = %r{/some/.*}
|
39
|
+
get_response('/some/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should have_inline_style_for('#A')
|
40
|
+
get_response('/some/other/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should have_inline_style_for('#A')
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should not inline style for regexp path" do
|
44
|
+
paths = %r{/some/.*}
|
45
|
+
get_response('/other/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should_not have_inline_style_for('#A')
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should inline style for array regexp path" do
|
49
|
+
paths = [%r{/some/path}, %r{/some/other/path}]
|
50
|
+
get_response('/some/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should have_inline_style_for('#A')
|
51
|
+
get_response('/some/other/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should have_inline_style_for('#A')
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should not inline style for array regexp path" do
|
55
|
+
paths = [%r{/some/path}, %r{/some/other/path}]
|
56
|
+
get_response('/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should_not have_inline_style_for('#A')
|
57
|
+
get_response('/other/path', @html, :stylesheets_path => FIXTURES, :paths => paths).should_not have_inline_style_for('#A')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rspec'
|
3
|
+
require 'rack'
|
4
|
+
require 'rack/mock'
|
5
|
+
|
6
|
+
require "middleman-inline-style"
|
7
|
+
require "middleman-inline-style/csspool_wrapper"
|
8
|
+
|
9
|
+
gem 'maca-fork-csspool'
|
10
|
+
require "csspool"
|
11
|
+
|
12
|
+
FIXTURES = "#{File.dirname __FILE__}/fixtures"
|
13
|
+
|
14
|
+
module InlineStyleMatchers
|
15
|
+
class HaveInlineStyle
|
16
|
+
def initialize selector
|
17
|
+
@selector = selector
|
18
|
+
end
|
19
|
+
|
20
|
+
def matches? html
|
21
|
+
@html = html
|
22
|
+
!@html.css(@selector).empty? and @html.css(@selector).inject(true){ |bool, e| bool and !e['style'].nil? }
|
23
|
+
end
|
24
|
+
|
25
|
+
def failure_message
|
26
|
+
"expected elements with selector #{@selector} style attribute not to be nil"
|
27
|
+
end
|
28
|
+
|
29
|
+
def negative_failure_message
|
30
|
+
"expected elements with selector #{@selector} style attribute to be nil"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class MatchStyle
|
35
|
+
def initialize style
|
36
|
+
@style = style
|
37
|
+
end
|
38
|
+
|
39
|
+
def matches? actual
|
40
|
+
@actual = actual.gsub(/([^\.0-9]\d+)(px|;|%|\s)/, '\1.0\2')
|
41
|
+
@actual =~ @style
|
42
|
+
end
|
43
|
+
|
44
|
+
def failure_message
|
45
|
+
"expected #{@actual} to match #{@style}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def negative_failure_message
|
49
|
+
"expected #{@actual} not to match #{@style}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def have_inline_style_for selector
|
54
|
+
HaveInlineStyle.new selector
|
55
|
+
end
|
56
|
+
|
57
|
+
def match_style style
|
58
|
+
MatchStyle.new style
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
RSpec.configure { |config| config.include InlineStyleMatchers }
|
metadata
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-inline-style
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Macario Ortega
|
8
|
+
- Eric Anderson
|
9
|
+
- Trenton Broughton
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rack
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rspec-core
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: mail
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: nokogiri
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: css_parser
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: maca-fork-csspool
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
description: Inlines CSS for html email delivery
|
114
|
+
email:
|
115
|
+
- trenton@ikso.us
|
116
|
+
executables: []
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- .gitignore
|
121
|
+
- .rspec
|
122
|
+
- Gemfile
|
123
|
+
- Gemfile.lock
|
124
|
+
- README.rdoc
|
125
|
+
- Rakefile
|
126
|
+
- example.rb
|
127
|
+
- lib/middleman-inline-style.rb
|
128
|
+
- lib/middleman-inline-style/css_parser_wrapper.rb
|
129
|
+
- lib/middleman-inline-style/csspool_wrapper.rb
|
130
|
+
- lib/middleman-inline-style/mail-interceptor.rb
|
131
|
+
- lib/middleman-inline-style/middleman-extension.rb
|
132
|
+
- lib/middleman-inline-style/rack-middleware.rb
|
133
|
+
- lib/middleman-inline-style/rule.rb
|
134
|
+
- lib/middleman-inline-style/version.rb
|
135
|
+
- middleman-inline-style.gemspec
|
136
|
+
- spec/css_inlining_spec.rb
|
137
|
+
- spec/css_parsing_spec.rb
|
138
|
+
- spec/fixtures/all.css
|
139
|
+
- spec/fixtures/boletin.html
|
140
|
+
- spec/fixtures/box-model.html
|
141
|
+
- spec/fixtures/inline.html
|
142
|
+
- spec/fixtures/none.css
|
143
|
+
- spec/fixtures/print.css
|
144
|
+
- spec/fixtures/selectors.html
|
145
|
+
- spec/fixtures/style.css
|
146
|
+
- spec/interceptor_spec.rb
|
147
|
+
- spec/rack_middleware_spec.rb
|
148
|
+
- spec/spec_helper.rb
|
149
|
+
homepage: https://github.com/trenton42/middleman-inline-style
|
150
|
+
licenses: []
|
151
|
+
metadata: {}
|
152
|
+
post_install_message: Please read documentation for changes on the default css parser
|
153
|
+
gem, specifically if you use csspool
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
requirements: []
|
168
|
+
rubyforge_project:
|
169
|
+
rubygems_version: 2.0.14
|
170
|
+
signing_key:
|
171
|
+
specification_version: 4
|
172
|
+
summary: Inlines CSS for html email delivery
|
173
|
+
test_files:
|
174
|
+
- spec/css_inlining_spec.rb
|
175
|
+
- spec/css_parsing_spec.rb
|
176
|
+
- spec/fixtures/all.css
|
177
|
+
- spec/fixtures/boletin.html
|
178
|
+
- spec/fixtures/box-model.html
|
179
|
+
- spec/fixtures/inline.html
|
180
|
+
- spec/fixtures/none.css
|
181
|
+
- spec/fixtures/print.css
|
182
|
+
- spec/fixtures/selectors.html
|
183
|
+
- spec/fixtures/style.css
|
184
|
+
- spec/interceptor_spec.rb
|
185
|
+
- spec/rack_middleware_spec.rb
|
186
|
+
- spec/spec_helper.rb
|