premailer 1.8.0 → 1.8.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/.travis.yml +16 -2
- data/README.md +3 -3
- data/gemfiles/ruby187.gemfile +11 -0
- data/gemfiles/ruby187.gemspec +31 -0
- data/lib/premailer/adapter/nokogiri.rb +6 -13
- data/lib/premailer/executor.rb +4 -0
- data/lib/premailer/premailer.rb +17 -32
- data/lib/premailer/version.rb +1 -1
- data/test/files/base.html +1 -3
- data/test/helper.rb +1 -2
- data/test/test_misc.rb +6 -5
- data/test/test_premailer.rb +17 -0
- metadata +31 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 780d807660eab934f32306d9ca689dab41f37a09
|
4
|
+
data.tar.gz: a250c50348de81e092ca35ac0092d09c952e0606
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b00c9baf702aff645325d6b10a71c98def9de70752b11e15f79f0d4218ae73a307a6ff826571148bafb335f477a4b3e909b97ec05ff6d6aa06c15325dd39e19d
|
7
|
+
data.tar.gz: b7305f4db9b442bbd2944fe05fdfcb823b963888a1d75156465be8505d934c6f7748d4cd28976ee9829f3ed0493358d005d1080d4f41927f5a980f0be2dcc91c
|
data/.travis.yml
CHANGED
@@ -5,5 +5,19 @@ rvm:
|
|
5
5
|
- 1.9.2
|
6
6
|
- 1.9.3
|
7
7
|
- 2.0.0
|
8
|
-
-
|
9
|
-
|
8
|
+
- ree
|
9
|
+
gemfile:
|
10
|
+
- Gemfile
|
11
|
+
- gemfiles/ruby187.gemfile
|
12
|
+
matrix:
|
13
|
+
exclude:
|
14
|
+
- rvm: 1.8.7
|
15
|
+
gemfile: Gemfile
|
16
|
+
- rvm: 1.9.2
|
17
|
+
gemfile: gemfiles/ruby187.gemfile
|
18
|
+
- rvm: 1.9.3
|
19
|
+
gemfile: gemfiles/ruby187.gemfile
|
20
|
+
- rvm: 2.0.0
|
21
|
+
gemfile: gemfiles/ruby187.gemfile
|
22
|
+
- rvm: ree
|
23
|
+
gemfile: Gemfile
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Premailer README
|
1
|
+
# Premailer README [](https://travis-ci.org/premailer/premailer)
|
2
2
|
|
3
3
|
## What is this?
|
4
4
|
|
@@ -16,7 +16,7 @@ script is my solution.
|
|
16
16
|
|
17
17
|
## Premailer 2.0 is coming
|
18
18
|
|
19
|
-
I'm looking for input on a version 2.0 update to Premailer.
|
19
|
+
I'm looking for input on a version 2.0 update to Premailer. Please visit the [Premailer 2.0 Planning Page](https://github.com/premailer/premailer/wiki/New-Premailer-2.0-Planning) and give me your feedback.
|
20
20
|
|
21
21
|
## Installation
|
22
22
|
|
@@ -54,7 +54,7 @@ end
|
|
54
54
|
|
55
55
|
## Ruby Compatibility
|
56
56
|
|
57
|
-
Premailer is tested on Ruby 1.8.7, Ruby 1.9.2
|
57
|
+
Premailer is tested on Ruby 1.8.7, Ruby 1.9.2, Ruby 1.9.3, and Ruby 2.0.0 . It also works on REE. JRuby support is close; contributors are welcome. Checkout the latest build status on the [Travis CI dashboard](http://travis-ci.org/#!/premailer/premailer).
|
58
58
|
|
59
59
|
## Premailer-specific CSS
|
60
60
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem 'css_parser', :git => 'git://github.com/premailer/css_parser.git'
|
4
|
+
gem 'webmock', :group => [:development, :test]
|
5
|
+
|
6
|
+
|
7
|
+
gemspec :name => 'ruby187'
|
8
|
+
|
9
|
+
gem "ripper", :group => :development, :platforms => :mri_18
|
10
|
+
|
11
|
+
gem "coveralls", :require => false, :platforms => [:mri_19, :mri_20], :group => :development
|
@@ -0,0 +1,31 @@
|
|
1
|
+
GEM_ROOT = File.dirname(File.dirname(__FILE__)).freeze unless defined?(GEM_ROOT)
|
2
|
+
|
3
|
+
lib_path = File.expand_path('lib', GEM_ROOT)
|
4
|
+
$LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include? lib_path
|
5
|
+
|
6
|
+
require 'premailer/version'
|
7
|
+
|
8
|
+
Gem::Specification.new do |s|
|
9
|
+
s.name = "premailer"
|
10
|
+
s.version = Premailer::VERSION.dup
|
11
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
12
|
+
s.summary = "Preflight for HTML e-mail."
|
13
|
+
s.email = "code@dunae.ca"
|
14
|
+
s.homepage = "http://premailer.dialect.ca/"
|
15
|
+
s.description = "Improve the rendering of HTML emails by making CSS inline, converting links and warning about unsupported code."
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.author = "Alex Dunae"
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
21
|
+
s.add_dependency('css_parser', '>= 1.3.5')
|
22
|
+
s.add_dependency('htmlentities', '>= 4.0.0')
|
23
|
+
s.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
s.add_development_dependency('rake', ['~> 0.8', '!= 0.9.0'])
|
25
|
+
s.add_development_dependency('hpricot', '>= 0.8.3')
|
26
|
+
s.add_development_dependency('nokogiri', '~> 1.5.10')
|
27
|
+
s.add_development_dependency('yard', '~> 0.8.7')
|
28
|
+
s.add_development_dependency('redcarpet', '~> 2.3.0')
|
29
|
+
s.add_development_dependency "yard-redcarpet-ext", "~> 0.0.3"
|
30
|
+
end
|
31
|
+
|
@@ -121,9 +121,9 @@ class Premailer
|
|
121
121
|
@processed_doc = doc
|
122
122
|
if is_xhtml?
|
123
123
|
# we don't want to encode carriage returns
|
124
|
-
@processed_doc.to_xhtml(:encoding =>
|
124
|
+
@processed_doc.to_xhtml(:encoding => @options[:output_encoding]).gsub(/&\#(xD|13);/i, "\r")
|
125
125
|
else
|
126
|
-
@processed_doc.to_html
|
126
|
+
@processed_doc.to_html(:encoding => @options[:output_encoding])
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
@@ -186,10 +186,10 @@ class Premailer
|
|
186
186
|
# TODO: duplicate options
|
187
187
|
if @options[:with_html_string] or @options[:inline] or input.respond_to?(:read)
|
188
188
|
thing = input
|
189
|
-
|
189
|
+
elsif @is_local_file
|
190
190
|
@base_dir = File.dirname(input)
|
191
191
|
thing = File.open(input, 'r')
|
192
|
-
|
192
|
+
else
|
193
193
|
thing = open(input)
|
194
194
|
end
|
195
195
|
|
@@ -202,15 +202,8 @@ class Premailer
|
|
202
202
|
|
203
203
|
# Handle HTML entities
|
204
204
|
if @options[:replace_html_entities] == true and thing.is_a?(String)
|
205
|
-
|
206
|
-
|
207
|
-
elsif RUBY_VERSION =~ /1.8/
|
208
|
-
html_entity_ruby_version = "1.8"
|
209
|
-
end
|
210
|
-
if html_entity_ruby_version
|
211
|
-
HTML_ENTITIES[html_entity_ruby_version].map do |entity, replacement|
|
212
|
-
thing.gsub! entity, replacement
|
213
|
-
end
|
205
|
+
HTML_ENTITIES.map do |entity, replacement|
|
206
|
+
thing.gsub! entity, replacement
|
214
207
|
end
|
215
208
|
end
|
216
209
|
# Default encoding is ASCII-8BIT (binary) per http://groups.google.com/group/nokogiri-talk/msg/0b81ef0dc180dc74
|
data/lib/premailer/executor.rb
CHANGED
@@ -52,6 +52,10 @@ opts = OptionParser.new do |opts|
|
|
52
52
|
options[:line_length] = v
|
53
53
|
end
|
54
54
|
|
55
|
+
opts.on("-e", "--entities", "Output HTML entities instead of UTF-8 when using Nokogiri") do |v|
|
56
|
+
options[:output_encoding] = "US-ASCII"
|
57
|
+
end
|
58
|
+
|
55
59
|
opts.on("-d", "--io-exceptions", "Abort on I/O errors") do |v|
|
56
60
|
options[:io_exceptions] = v
|
57
61
|
end
|
data/lib/premailer/premailer.rb
CHANGED
@@ -45,38 +45,17 @@ class Premailer
|
|
45
45
|
# list of HTMLEntities to fix
|
46
46
|
# source: http://stackoverflow.com/questions/2812781/how-to-convert-webpage-apostrophe-8217-to-ascii-39-in-ruby-1-
|
47
47
|
HTML_ENTITIES = {
|
48
|
-
"
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
"\342\200\041" => '-',
|
60
|
-
"\342\200\174" => '-',
|
61
|
-
"\342\200\220" => '-',
|
62
|
-
"\342\200\223" => '-',
|
63
|
-
"\342\200\224" => '--',
|
64
|
-
"\342\200\225" => '--',
|
65
|
-
"\342\200\042" => '--'
|
66
|
-
},
|
67
|
-
"1.9" => {
|
68
|
-
"’" => "'",
|
69
|
-
"…" => "...",
|
70
|
-
"‘" => "'",
|
71
|
-
"‚" => ',',
|
72
|
-
"‛" => "'",
|
73
|
-
"“" => '"',
|
74
|
-
"”" => '"',
|
75
|
-
"‐" => '-',
|
76
|
-
"–" => '-',
|
77
|
-
"—" => '--',
|
78
|
-
"―" => '--'
|
79
|
-
}
|
48
|
+
"’" => "'",
|
49
|
+
"…" => "...",
|
50
|
+
"‘" => "'",
|
51
|
+
"‚" => ',',
|
52
|
+
"‛" => "'",
|
53
|
+
"“" => '"',
|
54
|
+
"”" => '"',
|
55
|
+
"‐" => '-',
|
56
|
+
"–" => '-',
|
57
|
+
"—" => '--',
|
58
|
+
"―" => '--'
|
80
59
|
}
|
81
60
|
|
82
61
|
# list of CSS attributes that can be rendered as HTML attributes
|
@@ -185,7 +164,9 @@ class Premailer
|
|
185
164
|
# @option options [Boolean] :include_style_tags Whether to include css from <tt>style</tt> tags. Default is true.
|
186
165
|
# @option options [String] :input_encoding Manually specify the source documents encoding. This is a good idea. Default is ASCII-8BIT.
|
187
166
|
# @option options [Boolean] :replace_html_entities Convert HTML entities to actual characters. Default is false.
|
167
|
+
# @option options [Boolean] :escape_url_attributes URL Escapes href, src, and background attributes on elements. Default is true.
|
188
168
|
# @option options [Symbol] :adapter Which HTML parser to use, either <tt>:nokogiri</tt> or <tt>:hpricot</tt>. Default is <tt>:hpricot</tt>.
|
169
|
+
# @option options [String] :output_encoding Output encoding option for Nokogiri adapter. Should be set to "US-ASCII" to output HTML entities instead of Unicode characters.
|
189
170
|
def initialize(html, options = {})
|
190
171
|
@options = {:warn_level => Warnings::SAFE,
|
191
172
|
:line_length => 65,
|
@@ -207,7 +188,9 @@ class Premailer
|
|
207
188
|
:include_link_tags => true,
|
208
189
|
:include_style_tags => true,
|
209
190
|
:input_encoding => 'ASCII-8BIT',
|
191
|
+
:output_encoding => nil,
|
210
192
|
:replace_html_entities => false,
|
193
|
+
:escape_url_attributes => true,
|
211
194
|
:adapter => Adapter.use,
|
212
195
|
}.merge(options)
|
213
196
|
|
@@ -416,6 +399,7 @@ public
|
|
416
399
|
base_uri = URI.parse(base_uri) unless base_uri.kind_of?(URI)
|
417
400
|
|
418
401
|
append_qs = @options[:link_query_string] || ''
|
402
|
+
escape_attrs = @options[:escape_url_attributes]
|
419
403
|
|
420
404
|
['href', 'src', 'background'].each do |attribute|
|
421
405
|
tags = doc.search("*[@#{attribute}]")
|
@@ -438,6 +422,7 @@ public
|
|
438
422
|
merged = Premailer.resolve_link(tag.attributes[attribute].to_s, base_uri)
|
439
423
|
rescue
|
440
424
|
begin
|
425
|
+
next unless escape_attrs
|
441
426
|
merged = Premailer.resolve_link(URI.escape(tag.attributes[attribute].to_s), base_uri)
|
442
427
|
rescue; end
|
443
428
|
end
|
data/lib/premailer/version.rb
CHANGED
data/test/files/base.html
CHANGED
data/test/helper.rb
CHANGED
@@ -20,8 +20,7 @@ class Premailer::TestCase < Test::Unit::TestCase
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
stub_request(:get, /my\.example\.com\:8080\/*/)
|
24
|
-
.to_return(:status => 200, :body => "", :headers => {})
|
23
|
+
stub_request(:get, /my\.example\.com\:8080\/*/).to_return(:status => 200, :body => "", :headers => {})
|
25
24
|
end
|
26
25
|
|
27
26
|
def default_test; end
|
data/test/test_misc.rb
CHANGED
@@ -119,7 +119,7 @@ END_HTML
|
|
119
119
|
|
120
120
|
# should be preserved as unmergeable
|
121
121
|
|
122
|
-
assert_match /red
|
122
|
+
assert_match /color: red/i, premailer.processed_doc.at('body style').inner_html
|
123
123
|
|
124
124
|
assert_match /a:hover/i, premailer.processed_doc.at('style').inner_html
|
125
125
|
|
@@ -136,8 +136,9 @@ END_HTML
|
|
136
136
|
premailer = Premailer.new(html, :with_html_string => true, :verbose => true)
|
137
137
|
premailer.to_inline_css
|
138
138
|
|
139
|
-
|
140
|
-
|
139
|
+
# blue should be inlined
|
140
|
+
assert_no_match /a\:hover[\s]*\{[\s]*color\:[\s]*blue[\s]*;[\s]*\}/i, premailer.processed_doc.at('body style').inner_html
|
141
|
+
# red should remain in <style> block
|
141
142
|
assert_match /a\:hover[\s]*\{[\s]*color\:[\s]*red;[\s]*\}/i, premailer.processed_doc.at('body style').inner_html
|
142
143
|
end
|
143
144
|
|
@@ -171,9 +172,9 @@ END_HTML
|
|
171
172
|
|
172
173
|
assert_equal "color: blue", premailer.processed_doc.at('a').attributes['style'].to_s,
|
173
174
|
"#{adapter}: Failed to inline the default style"
|
174
|
-
assert_match /@media \(min-width:500px\) {.*?a {.*?color: red
|
175
|
+
assert_match /@media \(min-width:500px\) \{.*?a {.*?color: red;.*?\}.*?\}/m, style_tag_contents,
|
175
176
|
"#{adapter}: Failed to add media query with no type to style"
|
176
|
-
assert_match /@media screen and \(orientation: portrait\) {.*?a {.*?color: green
|
177
|
+
assert_match /@media screen and \(orientation: portrait\) \{.*?a \{.*?color: green;.*?\}.*?\}/m, style_tag_contents,
|
177
178
|
"#{adapter}: Failed to add media query with type to style"
|
178
179
|
end
|
179
180
|
|
data/test/test_premailer.rb
CHANGED
@@ -151,6 +151,23 @@ END_HTML
|
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
|
+
def test_initialize_no_escape_attributes_option
|
155
|
+
html = <<END_HTML
|
156
|
+
<html> <body>
|
157
|
+
<a id="google" href="http://google.com">Google</a>
|
158
|
+
<a id="noescape" href="{{link_url}}">Link</a>
|
159
|
+
</body> </html>
|
160
|
+
END_HTML
|
161
|
+
|
162
|
+
[:nokogiri, :hpricot].each do |adapter|
|
163
|
+
pm = Premailer.new(html, :with_html_string => true, :adapter => adapter, :escape_url_attributes => false)
|
164
|
+
pm.to_inline_css
|
165
|
+
doc = pm.processed_doc
|
166
|
+
assert_equal doc.at('#google')['href'], 'http://google.com'
|
167
|
+
assert_equal doc.at('#noescape')['href'], '{{link_url}}'
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
154
171
|
def test_remove_ids
|
155
172
|
html = <<END_HTML
|
156
173
|
<html> <head> <style type="text/css"> #remove { color:blue; } </style> </head>
|
metadata
CHANGED
@@ -1,145 +1,145 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: premailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Dunae
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: css_parser
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.3.5
|
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: 1.3.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: htmlentities
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 4.0.0
|
34
34
|
type: :runtime
|
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: 4.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
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: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.8'
|
62
|
-
- -
|
62
|
+
- - '!='
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: 0.9.0
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - ~>
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0.8'
|
72
|
-
- -
|
72
|
+
- - '!='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 0.9.0
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: hpricot
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - '>='
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: 0.8.3
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - '>='
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 0.8.3
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: nokogiri
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- -
|
93
|
+
- - '>='
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: 1.4.4
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - '>='
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 1.4.4
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: yard
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: 0.8.7
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- -
|
114
|
+
- - ~>
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 0.8.7
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: redcarpet
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- -
|
121
|
+
- - ~>
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: '3.0'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- -
|
128
|
+
- - ~>
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: '3.0'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: yard-redcarpet-ext
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- -
|
135
|
+
- - ~>
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: 0.0.3
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - ~>
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 0.0.3
|
145
145
|
description: Improve the rendering of HTML emails by making CSS inline, converting
|
@@ -150,14 +150,16 @@ executables:
|
|
150
150
|
extensions: []
|
151
151
|
extra_rdoc_files: []
|
152
152
|
files:
|
153
|
-
-
|
154
|
-
-
|
155
|
-
-
|
156
|
-
-
|
153
|
+
- .gitignore
|
154
|
+
- .jrubyrc
|
155
|
+
- .travis.yml
|
156
|
+
- .yardopts
|
157
157
|
- Gemfile
|
158
158
|
- LICENSE.md
|
159
159
|
- README.md
|
160
160
|
- bin/premailer
|
161
|
+
- gemfiles/ruby187.gemfile
|
162
|
+
- gemfiles/ruby187.gemspec
|
161
163
|
- init.rb
|
162
164
|
- lib/premailer.rb
|
163
165
|
- lib/premailer/adapter.rb
|
@@ -204,17 +206,17 @@ require_paths:
|
|
204
206
|
- lib
|
205
207
|
required_ruby_version: !ruby/object:Gem::Requirement
|
206
208
|
requirements:
|
207
|
-
- -
|
209
|
+
- - '>='
|
208
210
|
- !ruby/object:Gem::Version
|
209
211
|
version: '0'
|
210
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
213
|
requirements:
|
212
|
-
- -
|
214
|
+
- - '>='
|
213
215
|
- !ruby/object:Gem::Version
|
214
216
|
version: '0'
|
215
217
|
requirements: []
|
216
218
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.0.3
|
218
220
|
signing_key:
|
219
221
|
specification_version: 4
|
220
222
|
summary: Preflight for HTML e-mail.
|