slimmer 1.1.45 → 1.1.47
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/slimmer.rb +1 -0
- data/lib/slimmer/conditional_comment_mover.rb +17 -0
- data/lib/slimmer/skin.rb +2 -2
- data/lib/slimmer/version.rb +1 -1
- data/test/search_path_setter_test.rb +1 -1
- data/test/skin_test.rb +0 -9
- data/test/typical_usage_test.rb +6 -0
- metadata +6 -5
data/lib/slimmer.rb
CHANGED
@@ -22,6 +22,7 @@ module Slimmer
|
|
22
22
|
autoload :AdminTitleInserter, 'slimmer/admin_title_inserter'
|
23
23
|
autoload :SectionInserter, 'slimmer/section_inserter'
|
24
24
|
autoload :TagMover, 'slimmer/tag_mover'
|
25
|
+
autoload :ConditionalCommentMover, 'slimmer/conditional_comment_mover'
|
25
26
|
autoload :FooterRemover, 'slimmer/footer_remover'
|
26
27
|
autoload :BodyInserter, 'slimmer/body_inserter'
|
27
28
|
autoload :BodyClassCopier, 'slimmer/body_class_copier'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Slimmer
|
2
|
+
class ConditionalCommentMover
|
3
|
+
def filter(src, dest)
|
4
|
+
src.xpath('//comment()').each do |comment|
|
5
|
+
if match_conditional_comments(comment)
|
6
|
+
dest.at_xpath('/html/head') << comment
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def match_conditional_comments(str)
|
12
|
+
str.to_s =~ /<!--\[[A-Za-z0-9 ]+\]>(.*)<!\[endif\]-->/m
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
data/lib/slimmer/skin.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Slimmer
|
2
2
|
class Skin
|
3
|
-
attr_accessor :use_cache, :template_cache, :asset_host, :
|
3
|
+
attr_accessor :use_cache, :template_cache, :asset_host, :logger, :strict, :options
|
4
4
|
|
5
5
|
# TODO: Extract the cache to something we can pass in instead of using
|
6
6
|
# true/false and an in-memory cache.
|
@@ -8,7 +8,6 @@ module Slimmer
|
|
8
8
|
@options = options
|
9
9
|
@asset_host = options[:asset_host]
|
10
10
|
@template_cache = {}
|
11
|
-
@prefix = options[:prefix]
|
12
11
|
@use_cache = options[:use_cache] || false
|
13
12
|
@logger = options[:logger] || NullLogger.instance
|
14
13
|
@strict = options[:strict] || (%w{development test}.include?(ENV['RACK_ENV']))
|
@@ -126,6 +125,7 @@ module Slimmer
|
|
126
125
|
processors = [
|
127
126
|
TitleInserter.new(),
|
128
127
|
TagMover.new(),
|
128
|
+
ConditionalCommentMover.new(),
|
129
129
|
BodyInserter.new(options[:wrapper_id] || 'wrapper'),
|
130
130
|
BodyClassCopier.new,
|
131
131
|
HeaderContextInserter.new(),
|
data/lib/slimmer/version.rb
CHANGED
data/test/skin_test.rb
CHANGED
@@ -24,15 +24,6 @@ class SkinTest < MiniTest::Unit::TestCase
|
|
24
24
|
assert_same first_access, second_access
|
25
25
|
end
|
26
26
|
|
27
|
-
def test_should_interpolate_values_for_prefix
|
28
|
-
skin = Slimmer::Skin.new asset_host: "http://example.local/", use_cache: false, prefix: "this-is-the-prefix"
|
29
|
-
expected_url = "http://example.local/templates/example.html.erb"
|
30
|
-
stub_request(:get, expected_url).to_return :body => "<p><%= prefix %></p>"
|
31
|
-
|
32
|
-
template = skin.template 'example'
|
33
|
-
assert_equal "<p>this-is-the-prefix</p>", template
|
34
|
-
end
|
35
|
-
|
36
27
|
def test_should_raise_appropriate_exception_when_template_not_found
|
37
28
|
skin = Slimmer::Skin.new asset_host: "http://example.local/"
|
38
29
|
expected_url = "http://example.local/templates/example.html.erb"
|
data/test/typical_usage_test.rb
CHANGED
@@ -78,6 +78,7 @@ module TypicalUsage
|
|
78
78
|
<meta name="x-section-name" content="This section">
|
79
79
|
<meta name="x-section-link" content="/this_section">
|
80
80
|
<script src="blah.js"></script>
|
81
|
+
<!--[if lt IE 9]><link href="app-ie.css" rel="stylesheet" type="text/css"><![endif]-->
|
81
82
|
<link href="app.css" rel="stylesheet" type="text/css">
|
82
83
|
</head>
|
83
84
|
<body class="body_class">
|
@@ -106,6 +107,11 @@ module TypicalUsage
|
|
106
107
|
assert_rendered_in_template "head link[href='app.css']"
|
107
108
|
end
|
108
109
|
|
110
|
+
def test_should_move_conditional_comments_into_the_head
|
111
|
+
element = Nokogiri::HTML.parse(last_response.body).at_xpath('//comment()')
|
112
|
+
assert_match /app-ie\.css/, element.to_s, 'Not found conditional comment in output'
|
113
|
+
end
|
114
|
+
|
109
115
|
def test_should_copy_the_class_of_the_body_element
|
110
116
|
assert_rendered_in_template "body.body_class"
|
111
117
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: slimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.1.
|
5
|
+
version: 1.1.47
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ben Griffiths
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2012-07-
|
14
|
+
date: 2012-07-27 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
@@ -144,7 +144,7 @@ dependencies:
|
|
144
144
|
requirements:
|
145
145
|
- - ~>
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: 1.
|
147
|
+
version: 1.1.1
|
148
148
|
type: :development
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: *id012
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- lib/slimmer/test.rb
|
169
169
|
- lib/slimmer/footer_remover.rb
|
170
170
|
- lib/slimmer/skin.rb
|
171
|
+
- lib/slimmer/conditional_comment_mover.rb
|
171
172
|
- lib/slimmer/section_inserter.rb
|
172
173
|
- lib/slimmer/title_inserter.rb
|
173
174
|
- lib/slimmer/search_path_setter.rb
|
@@ -209,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
209
210
|
requirements:
|
210
211
|
- - ">="
|
211
212
|
- !ruby/object:Gem::Version
|
212
|
-
hash:
|
213
|
+
hash: 1631614823969087882
|
213
214
|
segments:
|
214
215
|
- 0
|
215
216
|
version: "0"
|
@@ -218,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
219
|
requirements:
|
219
220
|
- - ">="
|
220
221
|
- !ruby/object:Gem::Version
|
221
|
-
hash:
|
222
|
+
hash: 1631614823969087882
|
222
223
|
segments:
|
223
224
|
- 0
|
224
225
|
version: "0"
|