eyeliner 0.0.4 → 0.0.5
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/eyeliner/version.rb +1 -1
- data/lib/eyeliner.rb +6 -2
- data/spec/eyeliner_spec.rb +39 -1
- metadata +8 -8
data/lib/eyeliner/version.rb
CHANGED
data/lib/eyeliner.rb
CHANGED
@@ -65,17 +65,21 @@ class Eyeliner
|
|
65
65
|
|
66
66
|
def extract_stylesheets
|
67
67
|
@doc.css("style, link[rel=stylesheet][type='text/css']").each do |element|
|
68
|
-
next if
|
68
|
+
next if has_class("noinline", element)
|
69
69
|
case element.name
|
70
70
|
when "style"
|
71
71
|
@css << element.content
|
72
72
|
when "link"
|
73
73
|
@css << read_stylesheet(element["href"])
|
74
74
|
end
|
75
|
-
element.remove
|
75
|
+
element.remove unless has_class("retain", element)
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
def has_class(class_name, element)
|
80
|
+
element["class"] && element["class"].split.member?(class_name)
|
81
|
+
end
|
82
|
+
|
79
83
|
def read_stylesheet(name)
|
80
84
|
name_without_query = name.sub(%r{\?.*}, '')
|
81
85
|
full_path = File.join(@eyeliner.stylesheet_base, name_without_query)
|
data/spec/eyeliner_spec.rb
CHANGED
@@ -162,7 +162,7 @@ describe Eyeliner do
|
|
162
162
|
|
163
163
|
end
|
164
164
|
|
165
|
-
context "when the document contains a <style> block, classed noinline" do
|
165
|
+
context "when the document contains a <style> block, classed 'noinline'" do
|
166
166
|
|
167
167
|
before do
|
168
168
|
@input = <<-HTML
|
@@ -201,6 +201,44 @@ describe Eyeliner do
|
|
201
201
|
|
202
202
|
end
|
203
203
|
|
204
|
+
context "when the document contains a <style> block, classed 'retain'" do
|
205
|
+
|
206
|
+
before do
|
207
|
+
@input = <<-HTML
|
208
|
+
<html>
|
209
|
+
<head>
|
210
|
+
<style class="retain">
|
211
|
+
strong { text-decoration: underline; }
|
212
|
+
</style>
|
213
|
+
</head>
|
214
|
+
<body>
|
215
|
+
<p>
|
216
|
+
Feeling <strong>STRONG</strong>.
|
217
|
+
</p>
|
218
|
+
</body>
|
219
|
+
</html>
|
220
|
+
HTML
|
221
|
+
end
|
222
|
+
|
223
|
+
describe "#apply_to" do
|
224
|
+
|
225
|
+
before do
|
226
|
+
@output = eyeliner.apply_to(@input)
|
227
|
+
@output_doc = Nokogiri::HTML.fragment(@output)
|
228
|
+
end
|
229
|
+
|
230
|
+
it "inlines the styles" do
|
231
|
+
strong_element = @output_doc.css("strong").first
|
232
|
+
strong_element["style"].should == "text-decoration: underline;"
|
233
|
+
end
|
234
|
+
|
235
|
+
it "does not remove the <style> element" do
|
236
|
+
@output_doc.css("style").should_not be_empty
|
237
|
+
end
|
238
|
+
|
239
|
+
end
|
240
|
+
|
241
|
+
end
|
204
242
|
|
205
243
|
context "when the document contains a linked stylesheet" do
|
206
244
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyeliner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2012-01-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
17
|
-
requirement: &
|
17
|
+
requirement: &70241861041100 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.4.4
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70241861041100
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: css_parser
|
28
|
-
requirement: &
|
28
|
+
requirement: &70241861040600 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: 1.1.9
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70241861040600
|
37
37
|
description:
|
38
38
|
email:
|
39
39
|
- mike@cogentconsulting.com.au
|
@@ -64,7 +64,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
segments:
|
66
66
|
- 0
|
67
|
-
hash: -
|
67
|
+
hash: -4128840240962595108
|
68
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
69
|
none: false
|
70
70
|
requirements:
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
version: '0'
|
74
74
|
segments:
|
75
75
|
- 0
|
76
|
-
hash: -
|
76
|
+
hash: -4128840240962595108
|
77
77
|
requirements: []
|
78
78
|
rubyforge_project:
|
79
79
|
rubygems_version: 1.8.10
|