premailer-rails 1.4.0 → 1.5.0
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 +2 -4
- data/CHANGELOG.md +25 -0
- data/README.md +10 -7
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/premailer/rails.rb +3 -3
- data/lib/premailer/rails/css_helper.rb +1 -1
- data/lib/premailer/rails/css_loaders.rb +3 -2
- data/lib/premailer/rails/customized_premailer.rb +2 -2
- data/lib/premailer/rails/hook.rb +7 -7
- data/premailer-rails.gemspec +3 -4
- data/spec/fixtures/html.rb +1 -1
- data/spec/fixtures/message.rb +2 -2
- data/spec/lib/css_helper_spec.rb +29 -28
- data/spec/lib/customized_premailer_spec.rb +10 -8
- data/spec/lib/hook_registration_spec.rb +2 -2
- data/spec/lib/premailer_rails_3_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -8
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: faaccc100fbcc92e0c79ee426a2a3b4b2ae16ecd
|
4
|
+
data.tar.gz: 4e183a0856f2bcd01e5955efc1d7bd750e19edf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83535e5fd7f0b6540c8d9e18769a6b3e0dd0112559f56fa33dd279bbd399e281aee0ecbf3f885aea3bad3e529f2eca0026ef8c1092c6b70844c214caec7ddb6d
|
7
|
+
data.tar.gz: e195868f2495abe7d4a8b188f389d0a84ce9870d1b66e48793b62b8c72722ed86d3bf73d2fce29d8869c63f692677b035423732e2befe2ea1e98570c95dad282
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v1.5.0
|
4
|
+
|
5
|
+
- No longer support ruby 1.8
|
6
|
+
|
7
|
+
- Find linked stylesheets by `rel='stylesheet'` attribute instead of
|
8
|
+
`type='text/css'`
|
9
|
+
|
10
|
+
- Don't test hpricot on JRuby due to incompatibility
|
11
|
+
|
12
|
+
## v1.4.0
|
13
|
+
|
14
|
+
- Fix attachments
|
15
|
+
|
16
|
+
## v1.3.2
|
17
|
+
|
18
|
+
- Rename gem to premailer-rails (drop the 3)
|
19
|
+
|
20
|
+
- Add support for rails 4
|
21
|
+
|
22
|
+
- Refactor code
|
23
|
+
|
24
|
+
- Add support for precompiled assets
|
25
|
+
|
26
|
+
- No longer include default `email.css`
|
27
|
+
|
3
28
|
## v1.1.0
|
4
29
|
|
5
30
|
- Fixed several bugs
|
data/README.md
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
[](http://badge.fury.io/rb/premailer-rails)
|
5
5
|
[](https://gemnasium.com/fphilipe/premailer-rails)
|
6
6
|
[](https://codeclimate.com/github/fphilipe/premailer-rails)
|
7
|
-
[](https://coveralls.io/r/fphilipe/premailer-rails)
|
8
7
|
|
9
8
|
This gem is a no config solution for the wonderful [Premailer gem](https://github.com/alexdunae/premailer) to be used with Rails.
|
10
9
|
It uses interceptors which were introduced in Rails 3 and tweaks all mails which are `deliver`ed and adds a plain text part to them and inlines all CSS rules into the HTML part.
|
@@ -12,7 +11,7 @@ It uses interceptors which were introduced in Rails 3 and tweaks all mails which
|
|
12
11
|
By default it inlines all inline `<style>` declarations and all the CSS files that are linked to in the HTML:
|
13
12
|
|
14
13
|
```html
|
15
|
-
<link
|
14
|
+
<link rel="stylesheet" ... />
|
16
15
|
```
|
17
16
|
|
18
17
|
Don't worry about the host in the CSS URL since this will be ignored.
|
@@ -50,8 +49,8 @@ pass these options on to the underlying premailer instance, specify them in an
|
|
50
49
|
initializer:
|
51
50
|
|
52
51
|
```ruby
|
53
|
-
Premailer::Rails.config.merge!(:
|
54
|
-
:
|
52
|
+
Premailer::Rails.config.merge!(preserve_styles: true,
|
53
|
+
remove_ids: true)
|
55
54
|
```
|
56
55
|
|
57
56
|
For a list of options, refer to the [Premailer documentation](http://rubydoc.info/gems/premailer/1.7.3/Premailer:initialize)
|
@@ -60,9 +59,9 @@ The default configs are:
|
|
60
59
|
|
61
60
|
```ruby
|
62
61
|
{
|
63
|
-
:
|
64
|
-
:
|
65
|
-
:
|
62
|
+
input_encoding: 'UTF-8',
|
63
|
+
inputencoding: 'UTF-8',
|
64
|
+
generate_text_part: true
|
66
65
|
}
|
67
66
|
```
|
68
67
|
|
@@ -73,3 +72,7 @@ If you want to use another encoding make sure to specify the right one or both.
|
|
73
72
|
If you don't want to automatically generate a text part from the html part, set the config `:generate_text_part` to false.
|
74
73
|
|
75
74
|
Note that the options `:with_html_string` and `:css_string` are used internally and thus will be overridden.
|
75
|
+
|
76
|
+
|
77
|
+
[](https://bitdeli.com/free "Bitdeli Badge")
|
78
|
+
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/lib/premailer/rails.rb
CHANGED
@@ -11,9 +11,9 @@ require 'premailer/rails/nokogiri_fix'
|
|
11
11
|
class Premailer
|
12
12
|
module Rails
|
13
13
|
@config = {
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
14
|
+
input_encoding: 'UTF-8',
|
15
|
+
inputencoding: 'UTF-8',
|
16
|
+
generate_text_part: true
|
17
17
|
}
|
18
18
|
class << self
|
19
19
|
attr_accessor :config
|
@@ -32,8 +32,9 @@ class Premailer
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def file_name(path)
|
35
|
-
path
|
36
|
-
.sub(
|
35
|
+
path
|
36
|
+
.sub("#{::Rails.configuration.assets.prefix}/", '')
|
37
|
+
.sub(/-\h{32}\.css$/, '.css')
|
37
38
|
end
|
38
39
|
|
39
40
|
def request_and_unzip(file)
|
@@ -8,11 +8,11 @@ class Premailer
|
|
8
8
|
# suitable adaptor (Nokogiri or Hpricot). To make load_html work, an
|
9
9
|
# adaptor needs to be included and @options[:with_html_string] needs to
|
10
10
|
# be set. For further information, refer to ::Premailer#initialize.
|
11
|
-
@options = Rails.config.merge(:
|
11
|
+
@options = Rails.config.merge(with_html_string: true)
|
12
12
|
Premailer.send(:include, Adapter.find(Adapter.use))
|
13
13
|
doc = load_html(html)
|
14
14
|
|
15
|
-
options = @options.merge(:
|
15
|
+
options = @options.merge(css_string: CSSHelper.css_for_doc(doc))
|
16
16
|
super(html, options)
|
17
17
|
end
|
18
18
|
end
|
data/lib/premailer/rails/hook.rb
CHANGED
@@ -44,7 +44,7 @@ class Premailer
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def generate_alternative_part
|
47
|
-
part = Mail::Part.new(:
|
47
|
+
part = Mail::Part.new(content_type: 'multipart/alternative')
|
48
48
|
part.add_part(generate_html_part)
|
49
49
|
part.add_part(generate_text_part)
|
50
50
|
|
@@ -57,18 +57,18 @@ class Premailer
|
|
57
57
|
generate_text_part if generate_text_part?
|
58
58
|
|
59
59
|
Mail::Part.new(
|
60
|
-
:
|
61
|
-
:
|
60
|
+
content_type: "text/html; charset=#{html_part.charset}",
|
61
|
+
body: premailer.to_inline_css)
|
62
62
|
end
|
63
63
|
|
64
64
|
def generate_text_part
|
65
65
|
@text_part ||= Mail::Part.new(
|
66
|
-
:
|
67
|
-
:
|
66
|
+
content_type: "text/plain; charset=#{html_part.charset}",
|
67
|
+
body: premailer.to_plain_text)
|
68
68
|
end
|
69
69
|
|
70
70
|
def premailer
|
71
|
-
@premailer ||= CustomizedPremailer.new(html_part.
|
71
|
+
@premailer ||= CustomizedPremailer.new(html_part.decoded)
|
72
72
|
end
|
73
73
|
|
74
74
|
def html_part
|
@@ -91,7 +91,7 @@ class Premailer
|
|
91
91
|
# are used for the message. If the new part is
|
92
92
|
def replace_in_pure_html_message(new_part)
|
93
93
|
if new_part.content_type.include?('text/html')
|
94
|
-
message.body = new_part.
|
94
|
+
message.body = new_part.decoded
|
95
95
|
message.content_type = new_part.content_type
|
96
96
|
else
|
97
97
|
message.body = nil
|
data/premailer-rails.gemspec
CHANGED
@@ -20,14 +20,13 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
|
-
s.add_dependency
|
24
|
-
s.add_dependency
|
23
|
+
s.add_dependency 'premailer', '~> 1.7'
|
24
|
+
s.add_dependency 'rails', '>= 3'
|
25
25
|
|
26
26
|
s.add_development_dependency 'rspec-core'
|
27
27
|
s.add_development_dependency 'rspec-expectations'
|
28
28
|
s.add_development_dependency 'mocha'
|
29
29
|
s.add_development_dependency 'mail'
|
30
30
|
s.add_development_dependency 'nokogiri'
|
31
|
-
s.add_development_dependency 'hpricot'
|
32
|
-
s.add_development_dependency 'coveralls'
|
31
|
+
s.add_development_dependency 'hpricot' unless RUBY_PLATFORM == 'java'
|
33
32
|
end
|
data/spec/fixtures/html.rb
CHANGED
data/spec/fixtures/message.rb
CHANGED
@@ -52,7 +52,7 @@ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
52
52
|
content_part = message
|
53
53
|
|
54
54
|
if part_types.include?(:html) and part_types.include?(:text)
|
55
|
-
content_part = Mail::Part.new(:
|
55
|
+
content_part = Mail::Part.new(content_type: 'multipart/alternative')
|
56
56
|
message.add_part(content_part)
|
57
57
|
end
|
58
58
|
|
@@ -73,7 +73,7 @@ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
73
73
|
end
|
74
74
|
|
75
75
|
if part_types.include? :attachment
|
76
|
-
message.add_file(:
|
76
|
+
message.add_file(filename: 'foo.png', content: 'foobar')
|
77
77
|
end
|
78
78
|
|
79
79
|
message.ready_to_send!
|
data/spec/lib/css_helper_spec.rb
CHANGED
@@ -14,19 +14,19 @@ describe Premailer::Rails::CSSHelper do
|
|
14
14
|
|
15
15
|
describe '#css_for_doc' do
|
16
16
|
let(:html) { Fixtures::HTML.with_css_links(*files) }
|
17
|
-
let(:doc) {
|
17
|
+
let(:doc) { Nokogiri(html) }
|
18
18
|
|
19
19
|
context 'when HTML contains linked CSS files' do
|
20
20
|
let(:files) { %w[ stylesheets/base.css stylesheets/font.css ] }
|
21
21
|
|
22
22
|
it 'should return the content of both files concatenated' do
|
23
|
-
Premailer::Rails::CSSHelper
|
24
|
-
.expects(:load_css)
|
25
|
-
.with('http://example.com/stylesheets/base.css')
|
23
|
+
Premailer::Rails::CSSHelper
|
24
|
+
.expects(:load_css)
|
25
|
+
.with('http://example.com/stylesheets/base.css')
|
26
26
|
.returns('content of base.css')
|
27
|
-
Premailer::Rails::CSSHelper
|
28
|
-
.expects(:load_css)
|
29
|
-
.with('http://example.com/stylesheets/font.css')
|
27
|
+
Premailer::Rails::CSSHelper
|
28
|
+
.expects(:load_css)
|
29
|
+
.with('http://example.com/stylesheets/font.css')
|
30
30
|
.returns('content of font.css')
|
31
31
|
|
32
32
|
css_for_doc(doc).should == "content of base.css\ncontent of font.css"
|
@@ -57,7 +57,7 @@ describe Premailer::Rails::CSSHelper do
|
|
57
57
|
Premailer::Rails::CSSHelper.send(:instance_variable_get, '@cache')
|
58
58
|
cache['/stylesheets/base.css'] = 'content of base.css'
|
59
59
|
|
60
|
-
load_css('http://example.com/stylesheets/base.css')
|
60
|
+
load_css('http://example.com/stylesheets/base.css')
|
61
61
|
.should == 'content of base.css'
|
62
62
|
end
|
63
63
|
end
|
@@ -67,12 +67,12 @@ describe Premailer::Rails::CSSHelper do
|
|
67
67
|
cache =
|
68
68
|
Premailer::Rails::CSSHelper.send(:instance_variable_get, '@cache')
|
69
69
|
cache['/stylesheets/base.css'] = 'cached content of base.css'
|
70
|
-
File.expects(:read)
|
71
|
-
.with('RAILS_ROOT/public/stylesheets/base.css')
|
70
|
+
File.expects(:read)
|
71
|
+
.with('RAILS_ROOT/public/stylesheets/base.css')
|
72
72
|
.returns('new content of base.css')
|
73
73
|
Rails.env.stubs(:development?).returns(true)
|
74
74
|
|
75
|
-
load_css('http://example.com/stylesheets/base.css')
|
75
|
+
load_css('http://example.com/stylesheets/base.css')
|
76
76
|
.should == 'new content of base.css'
|
77
77
|
end
|
78
78
|
end
|
@@ -81,26 +81,27 @@ describe Premailer::Rails::CSSHelper do
|
|
81
81
|
before {
|
82
82
|
Rails.configuration.stubs(:assets).returns(
|
83
83
|
stub(
|
84
|
-
:
|
85
|
-
:
|
84
|
+
enabled: true,
|
85
|
+
prefix: '/assets'
|
86
86
|
)
|
87
87
|
)
|
88
88
|
}
|
89
89
|
|
90
90
|
it 'should return the content of the file compiled by Rails' do
|
91
|
-
Rails.application.assets
|
92
|
-
|
93
|
-
|
91
|
+
Rails.application.assets
|
92
|
+
.expects(:find_asset)
|
93
|
+
.with('base.css')
|
94
|
+
.returns(mock(to_s: 'content of base.css'))
|
94
95
|
|
95
|
-
load_css('http://example.com/assets/base.css')
|
96
|
+
load_css('http://example.com/assets/base.css')
|
96
97
|
.should == 'content of base.css'
|
97
98
|
end
|
98
99
|
|
99
100
|
it 'should return same file when path contains file fingerprint' do
|
100
|
-
Rails.application.assets
|
101
|
-
|
102
|
-
|
103
|
-
|
101
|
+
Rails.application.assets
|
102
|
+
.expects(:find_asset)
|
103
|
+
.with('base.css')
|
104
|
+
.returns(mock(to_s: 'content of base.css'))
|
104
105
|
|
105
106
|
load_css(
|
106
107
|
'http://example.com/assets/base-089e35bd5d84297b8d31ad552e433275.css'
|
@@ -111,13 +112,13 @@ describe Premailer::Rails::CSSHelper do
|
|
111
112
|
before {
|
112
113
|
Rails.application.assets.stubs(:find_asset).returns(nil)
|
113
114
|
Rails.configuration.stubs(:action_controller).returns(
|
114
|
-
stub(:
|
115
|
+
stub(asset_host: 'http://example.com')
|
115
116
|
)
|
116
117
|
Rails.configuration.stubs(:assets).returns(
|
117
118
|
stub(
|
118
|
-
:
|
119
|
-
:
|
120
|
-
:
|
119
|
+
enabled: true,
|
120
|
+
prefix: '/assets',
|
121
|
+
digests: {
|
121
122
|
'base.css' => 'base-089e35bd5d84297b8d31ad552e433275.css'
|
122
123
|
}
|
123
124
|
)
|
@@ -148,11 +149,11 @@ describe Premailer::Rails::CSSHelper do
|
|
148
149
|
|
149
150
|
context 'when static stylesheets are used' do
|
150
151
|
it 'should return the content of the static file' do
|
151
|
-
File.expects(:read)
|
152
|
-
.with('RAILS_ROOT/public/stylesheets/base.css')
|
152
|
+
File.expects(:read)
|
153
|
+
.with('RAILS_ROOT/public/stylesheets/base.css')
|
153
154
|
.returns('content of base.css')
|
154
155
|
|
155
|
-
load_css('http://example.com/stylesheets/base.css')
|
156
|
+
load_css('http://example.com/stylesheets/base.css')
|
156
157
|
.should == 'content of base.css'
|
157
158
|
end
|
158
159
|
end
|
@@ -4,15 +4,17 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Premailer::Rails::CustomizedPremailer do
|
6
6
|
[ :nokogiri, :hpricot ].each do |adapter|
|
7
|
+
next if adapter == :hpricot and RUBY_PLATFORM == 'java'
|
8
|
+
|
7
9
|
context "when adapter is #{adapter}" do
|
8
10
|
before { Premailer::Adapter.stubs(:use).returns(adapter) }
|
9
11
|
|
10
12
|
describe '#to_plain_text' do
|
11
13
|
it 'should include the text from the HTML part' do
|
12
14
|
premailer =
|
13
|
-
Premailer::Rails::CustomizedPremailer
|
15
|
+
Premailer::Rails::CustomizedPremailer
|
14
16
|
.new(Fixtures::Message::HTML_PART)
|
15
|
-
premailer.to_plain_text.gsub(/\s/, ' ').strip
|
17
|
+
premailer.to_plain_text.gsub(/\s/, ' ').strip
|
16
18
|
.should == Fixtures::Message::TEXT_PART.gsub(/\s/, ' ').strip
|
17
19
|
end
|
18
20
|
end
|
@@ -20,12 +22,12 @@ describe Premailer::Rails::CustomizedPremailer do
|
|
20
22
|
describe '#to_inline_css' do
|
21
23
|
context 'when inline CSS block present' do
|
22
24
|
it 'should return the HTML with the CSS inlined' do
|
23
|
-
Premailer::Rails::CSSHelper
|
24
|
-
.stubs(:css_for_doc)
|
25
|
+
Premailer::Rails::CSSHelper
|
26
|
+
.stubs(:css_for_doc)
|
25
27
|
.returns('p { color: red; }')
|
26
28
|
html = Fixtures::Message::HTML_PART
|
27
29
|
premailer = Premailer::Rails::CustomizedPremailer.new(html)
|
28
|
-
premailer.to_inline_css.should
|
30
|
+
premailer.to_inline_css.should =~ /<p style=("|')color: ?red;?\1>/
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
@@ -33,7 +35,7 @@ describe Premailer::Rails::CustomizedPremailer do
|
|
33
35
|
it 'should return the HTML with the CSS inlined' do
|
34
36
|
html = Fixtures::Message::HTML_PART_WITH_CSS
|
35
37
|
premailer = Premailer::Rails::CustomizedPremailer.new(html)
|
36
|
-
premailer.to_inline_css.should
|
38
|
+
premailer.to_inline_css.should =~ /<p style=("|')color: ?red;?\1>/
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
@@ -47,13 +49,13 @@ describe Premailer::Rails::CustomizedPremailer do
|
|
47
49
|
end
|
48
50
|
|
49
51
|
it 'should pass on the configs' do
|
50
|
-
Premailer::Rails.config = { :
|
52
|
+
Premailer::Rails.config = { foo: :bar }
|
51
53
|
premailer = Premailer::Rails::CustomizedPremailer.new('some html')
|
52
54
|
premailer.instance_variable_get(:'@options')[:foo].should == :bar
|
53
55
|
end
|
54
56
|
|
55
57
|
it 'should not allow to override with_html_string' do
|
56
|
-
Premailer::Rails.config = { :
|
58
|
+
Premailer::Rails.config = { with_html_string: false }
|
57
59
|
premailer = Premailer::Rails::CustomizedPremailer.new('some html')
|
58
60
|
options = premailer.instance_variable_get(:'@options')
|
59
61
|
options[:with_html_string].should == true
|
@@ -2,8 +2,8 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'ActionMailer::Base.register_interceptor' do
|
4
4
|
it 'should register interceptor Premailer::Rails::Hook' do
|
5
|
-
ActionMailer::Base
|
6
|
-
.expects(:register_interceptor)
|
5
|
+
ActionMailer::Base
|
6
|
+
.expects(:register_interceptor)
|
7
7
|
.with(Premailer::Rails::Hook)
|
8
8
|
load 'premailer/rails.rb'
|
9
9
|
end
|
@@ -4,8 +4,8 @@ describe Premailer::Rails do
|
|
4
4
|
describe '#config' do
|
5
5
|
subject { Premailer::Rails.config }
|
6
6
|
context 'when set' do
|
7
|
-
before { Premailer::Rails.config = { :
|
8
|
-
it { should == { :
|
7
|
+
before { Premailer::Rails.config = { foo: :bar } }
|
8
|
+
it { should == { foo: :bar } }
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,3 @@
|
|
1
|
-
if RUBY_VERSION >= '1.9'
|
2
|
-
require 'coveralls'
|
3
|
-
Coveralls.wear! do
|
4
|
-
add_filter 'spec/'
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
1
|
require 'premailer/rails'
|
9
2
|
|
10
3
|
require 'stubs/action_mailer'
|
@@ -12,7 +5,7 @@ require 'stubs/rails'
|
|
12
5
|
require 'fixtures/message'
|
13
6
|
require 'fixtures/html'
|
14
7
|
|
15
|
-
require 'hpricot'
|
8
|
+
require 'hpricot' unless RUBY_PLATFORM == 'java'
|
16
9
|
require 'nokogiri'
|
17
10
|
|
18
11
|
RSpec.configure do |config|
|
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.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philipe Fatio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: premailer
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: coveralls
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '>='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '>='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
125
|
description: |-
|
140
126
|
This gem brings you the power of the premailer gem to Rails
|
141
127
|
without any configuration needs. Create HTML emails,
|
@@ -195,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
181
|
version: '0'
|
196
182
|
requirements: []
|
197
183
|
rubyforge_project:
|
198
|
-
rubygems_version: 2.0.
|
184
|
+
rubygems_version: 2.0.2
|
199
185
|
signing_key:
|
200
186
|
specification_version: 4
|
201
187
|
summary: Easily create styled HTML emails in Rails.
|