slimmer 3.10.1 → 3.11.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.
- data/lib/slimmer.rb +1 -0
- data/lib/slimmer/headers.rb +2 -0
- data/lib/slimmer/processors/beta_notice_inserter.rb +29 -0
- data/lib/slimmer/skin.rb +1 -0
- data/lib/slimmer/test.rb +2 -0
- data/lib/slimmer/test_template.rb +6 -16
- data/lib/slimmer/version.rb +1 -1
- data/test/fixtures/beta_notice.html.erb +3 -0
- data/test/fixtures/wrapper.html.erb +13 -11
- data/test/test_helper.rb +1 -0
- data/test/typical_usage_test.rb +24 -1
- metadata +57 -54
data/lib/slimmer.rb
CHANGED
|
@@ -25,6 +25,7 @@ module Slimmer
|
|
|
25
25
|
autoload :Artefact, 'slimmer/artefact'
|
|
26
26
|
|
|
27
27
|
module Processors
|
|
28
|
+
autoload :BetaNoticeInserter, 'slimmer/processors/beta_notice_inserter'
|
|
28
29
|
autoload :BodyClassCopier, 'slimmer/processors/body_class_copier'
|
|
29
30
|
autoload :BodyInserter, 'slimmer/processors/body_inserter'
|
|
30
31
|
autoload :ConditionalCommentMover, 'slimmer/processors/conditional_comment_mover'
|
data/lib/slimmer/headers.rb
CHANGED
|
@@ -5,6 +5,7 @@ module Slimmer
|
|
|
5
5
|
HEADER_PREFIX = "X-Slimmer"
|
|
6
6
|
|
|
7
7
|
SLIMMER_HEADER_MAPPING = {
|
|
8
|
+
beta: "Beta",
|
|
8
9
|
campaign_notification:"Campaign-Notification",
|
|
9
10
|
format: "Format",
|
|
10
11
|
need_id: "Need-ID",
|
|
@@ -18,6 +19,7 @@ module Slimmer
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
|
22
|
+
BETA_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta]}"
|
|
21
23
|
CAMPAIGN_NOTIFICATION = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:campaign_notification]}"
|
|
22
24
|
FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
|
|
23
25
|
ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Slimmer::Processors
|
|
2
|
+
class BetaNoticeInserter
|
|
3
|
+
def initialize(skin, headers)
|
|
4
|
+
@skin = skin
|
|
5
|
+
@headers = headers
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def filter(content_document, page_template)
|
|
9
|
+
if should_add_beta_notice?
|
|
10
|
+
page_template.css('body').add_class('beta')
|
|
11
|
+
if header = page_template.at_css('#global-header')
|
|
12
|
+
header.add_next_sibling(beta_notice_block)
|
|
13
|
+
end
|
|
14
|
+
if footer = page_template.at_css('footer#footer')
|
|
15
|
+
footer.add_previous_sibling(beta_notice_block)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def should_add_beta_notice?
|
|
21
|
+
!! @headers[Slimmer::Headers::BETA_HEADER]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def beta_notice_block
|
|
25
|
+
@beta_notice_block ||= @skin.template('beta_notice')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
data/lib/slimmer/skin.rb
CHANGED
|
@@ -129,6 +129,7 @@ module Slimmer
|
|
|
129
129
|
Processors::SearchIndexSetter.new(response),
|
|
130
130
|
Processors::MetaViewportRemover.new(response),
|
|
131
131
|
Processors::CampaignNotificationInserter.new(self, response.headers),
|
|
132
|
+
Processors::BetaNoticeInserter.new(self, response.headers),
|
|
132
133
|
]
|
|
133
134
|
|
|
134
135
|
template_name = response.headers[Headers::TEMPLATE_HEADER] || 'wrapper'
|
data/lib/slimmer/test.rb
CHANGED
|
@@ -7,6 +7,8 @@ module Slimmer
|
|
|
7
7
|
logger.debug "Slimmer: TEST MODE - Loading fixture template from #{__FILE__}"
|
|
8
8
|
if name =~ /\A(.*)\.raw\z/
|
|
9
9
|
%{<div id="test-#{$1}"></div>}
|
|
10
|
+
elsif name == "beta_notice"
|
|
11
|
+
%{<div class="beta-notice"><p>This page is BETA.</p></div>}
|
|
10
12
|
elsif name == "campaign"
|
|
11
13
|
'<section class="black" id="campaign-notification"><div><p>Notifications!</p></div></section>'
|
|
12
14
|
else
|
|
@@ -3,24 +3,12 @@ module Slimmer::TestTemplate
|
|
|
3
3
|
<html>
|
|
4
4
|
<head>
|
|
5
5
|
<title>Test Template</title>
|
|
6
|
-
<script src="https://static.preview.alphagov.co.uk/static/libs/jquery/jquery-1.7.2.min.js"></script><!-- no defer on jquery -->
|
|
7
|
-
<script src="https://static.preview.alphagov.co.uk/static/
|
|
8
|
-
<script src="https://static.preview.alphagov.co.uk/static/libs/jquery/plugins/jquery.base64.js" defer></script>
|
|
9
|
-
<script src="https://static.preview.alphagov.co.uk/static/libs/jquery/plugins/jquery.mustache.js" defer></script>
|
|
10
|
-
<script src="https://static.preview.alphagov.co.uk/static/search.js" defer></script>
|
|
11
|
-
<script src="https://static.preview.alphagov.co.uk/static/core.js" defer></script>
|
|
12
|
-
<script src="https://static.preview.alphagov.co.uk/static/devolution.js" defer></script>
|
|
13
|
-
<script src="https://static.preview.alphagov.co.uk/static/popup.js" defer></script>
|
|
14
|
-
<script src="https://static.preview.alphagov.co.uk/static/geo-locator.js" defer></script>
|
|
15
|
-
<script src="https://static.preview.alphagov.co.uk/static/customisation-settings.js" defer></script>
|
|
16
|
-
<script src="https://static.preview.alphagov.co.uk/static/welcome.js" defer></script>
|
|
17
|
-
<script src="https://static.preview.alphagov.co.uk/static/browse.js" defer></script>
|
|
18
|
-
<script src="https://static.preview.alphagov.co.uk/static/jquery.history.js" defer></script>
|
|
19
|
-
<script src="https://static.preview.alphagov.co.uk/static/jquery.tabs.js" defer></script>
|
|
20
|
-
<script src="https://static.preview.alphagov.co.uk/static/libs/jquery/plugins/jquery.player.min.js" defer></script>
|
|
6
|
+
<script src="https://static.preview.alphagov.co.uk/static/libs/jquery/jquery-1.7.2.min.js" type="text/javascript"></script><!-- no defer on jquery -->
|
|
7
|
+
<script src="https://static.preview.alphagov.co.uk/static/application.js" type="text/javascript" defer="defer"></script>
|
|
21
8
|
</head>
|
|
22
9
|
<body>
|
|
23
|
-
<
|
|
10
|
+
<header id="global-header"></header>
|
|
11
|
+
<div id="global-navigation" class="header-context">
|
|
24
12
|
<nav role="navigation">
|
|
25
13
|
<ol class="group">
|
|
26
14
|
<li><a href="/">Home</a></li>
|
|
@@ -29,6 +17,8 @@ module Slimmer::TestTemplate
|
|
|
29
17
|
</div>
|
|
30
18
|
|
|
31
19
|
<div id="wrapper"></div>
|
|
20
|
+
|
|
21
|
+
<footer id="footer"></footer>
|
|
32
22
|
</body>
|
|
33
23
|
</html>
|
|
34
24
|
}
|
data/lib/slimmer/version.rb
CHANGED
|
@@ -2,21 +2,23 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<title>Slimmer, yay!</title>
|
|
5
|
-
</head>
|
|
6
|
-
<body>
|
|
7
|
-
<div class="content">
|
|
8
|
-
<header><h1>I AM A TITLE</h1></header>
|
|
9
|
-
<div class="header-context">
|
|
10
|
-
<nav role="navigation"><ol><li>MySite</li></ol></nav>
|
|
11
|
-
</div>
|
|
12
|
-
<div id="wrapper" class="group">
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
|
|
16
5
|
<script id="ga-params" type="text/javascript">
|
|
17
6
|
var GOVUK = GOVUK || {};
|
|
18
7
|
GOVUK.Analytics = GOVUK.Analytics || {};
|
|
19
8
|
var _gaq = _gaq || [];
|
|
20
9
|
</script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<header id="global-header"><h1>I AM A TITLE</h1></header>
|
|
13
|
+
|
|
14
|
+
<div id="global-navigation" class="header-context">
|
|
15
|
+
<nav role="navigation"><ol><li>MySite</li></ol></nav>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<div id="wrapper" class="group">
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<footer id="footer">
|
|
22
|
+
</footer>
|
|
21
23
|
</body>
|
|
22
24
|
</html>
|
data/test/test_helper.rb
CHANGED
data/test/typical_usage_test.rb
CHANGED
|
@@ -136,6 +136,11 @@ module TypicalUsage
|
|
|
136
136
|
def test_should_add_logo_classes_to_wrapper
|
|
137
137
|
assert_rendered_in_template "#wrapper.directgov"
|
|
138
138
|
end
|
|
139
|
+
|
|
140
|
+
def test_should_not_add_beta_notice_to_non_beta_pages
|
|
141
|
+
assert_no_selector "body.beta"
|
|
142
|
+
assert_no_selector ".beta-notice"
|
|
143
|
+
end
|
|
139
144
|
end
|
|
140
145
|
|
|
141
146
|
class ConditionalCommentTest < SlimmerIntegrationTest
|
|
@@ -248,6 +253,24 @@ module TypicalUsage
|
|
|
248
253
|
end
|
|
249
254
|
end
|
|
250
255
|
|
|
256
|
+
class BetaNoticeInserterTest < SlimmerIntegrationTest
|
|
257
|
+
def test_should_add_beta_warnings
|
|
258
|
+
given_response 200, %{
|
|
259
|
+
<html>
|
|
260
|
+
<body class="wibble">
|
|
261
|
+
<div id="wrapper">The body of the page</div>
|
|
262
|
+
</body>
|
|
263
|
+
</html>
|
|
264
|
+
}, {Slimmer::Headers::BETA_HEADER => '1'}
|
|
265
|
+
|
|
266
|
+
# beta notice after cookie bar
|
|
267
|
+
assert_rendered_in_template "body.beta.wibble #global-header + div.beta-notice"
|
|
268
|
+
|
|
269
|
+
# beta notice before footer
|
|
270
|
+
assert_rendered_in_template "body.beta.wibble div.beta-notice + #footer"
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
|
|
251
274
|
class Error500ResponseTest < SlimmerIntegrationTest
|
|
252
275
|
include Rack::Test::Methods
|
|
253
276
|
|
|
@@ -346,7 +369,7 @@ module TypicalUsage
|
|
|
346
369
|
}, {}, {wrapper_id: "custom_wrapper"}
|
|
347
370
|
|
|
348
371
|
def test_should_replace_wrapper_with_custom_wrapper
|
|
349
|
-
assert_rendered_in_template "body
|
|
372
|
+
assert_rendered_in_template "body #custom_wrapper", "The body of the page"
|
|
350
373
|
assert_no_selector "#wrapper"
|
|
351
374
|
end
|
|
352
375
|
end
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: slimmer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 3.
|
|
5
|
+
version: 3.11.0
|
|
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: 2013-
|
|
14
|
+
date: 2013-02-20 00:00:00 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: nokogiri
|
|
@@ -180,55 +180,57 @@ extra_rdoc_files: []
|
|
|
180
180
|
files:
|
|
181
181
|
- README.md
|
|
182
182
|
- CHANGELOG.md
|
|
183
|
-
- lib/tasks/slimmer.rake
|
|
184
183
|
- lib/slimmer.rb
|
|
185
|
-
- lib/slimmer/skin.rb
|
|
186
|
-
- lib/slimmer/railtie.rb
|
|
187
|
-
- lib/slimmer/template.rb
|
|
188
|
-
- lib/slimmer/test_template.rb
|
|
189
|
-
- lib/slimmer/test.rb
|
|
190
184
|
- lib/slimmer/app.rb
|
|
191
|
-
- lib/slimmer/
|
|
192
|
-
- lib/slimmer/
|
|
193
|
-
- lib/slimmer/
|
|
185
|
+
- lib/slimmer/test_template.rb
|
|
186
|
+
- lib/slimmer/version.rb
|
|
187
|
+
- lib/slimmer/railtie.rb
|
|
194
188
|
- lib/slimmer/processors/tag_mover.rb
|
|
195
|
-
- lib/slimmer/processors/
|
|
196
|
-
- lib/slimmer/processors/
|
|
197
|
-
- lib/slimmer/processors/
|
|
198
|
-
- lib/slimmer/processors/related_items_inserter.rb
|
|
189
|
+
- lib/slimmer/processors/body_class_copier.rb
|
|
190
|
+
- lib/slimmer/processors/logo_class_inserter.rb
|
|
191
|
+
- lib/slimmer/processors/beta_notice_inserter.rb
|
|
199
192
|
- lib/slimmer/processors/header_context_inserter.rb
|
|
200
|
-
- lib/slimmer/processors/body_inserter.rb
|
|
201
|
-
- lib/slimmer/processors/report_a_problem_inserter.rb
|
|
202
193
|
- lib/slimmer/processors/meta_viewport_remover.rb
|
|
194
|
+
- lib/slimmer/processors/search_index_setter.rb
|
|
195
|
+
- lib/slimmer/processors/report_a_problem_inserter.rb
|
|
203
196
|
- lib/slimmer/processors/campaign_notification_inserter.rb
|
|
204
|
-
- lib/slimmer/processors/section_inserter.rb
|
|
205
197
|
- lib/slimmer/processors/footer_remover.rb
|
|
206
|
-
- lib/slimmer/
|
|
207
|
-
- lib/slimmer/
|
|
198
|
+
- lib/slimmer/processors/google_analytics_configurator.rb
|
|
199
|
+
- lib/slimmer/processors/title_inserter.rb
|
|
200
|
+
- lib/slimmer/processors/related_items_inserter.rb
|
|
201
|
+
- lib/slimmer/processors/section_inserter.rb
|
|
202
|
+
- lib/slimmer/processors/conditional_comment_mover.rb
|
|
203
|
+
- lib/slimmer/processors/body_inserter.rb
|
|
208
204
|
- lib/slimmer/artefact.rb
|
|
205
|
+
- lib/slimmer/skin.rb
|
|
206
|
+
- lib/slimmer/headers.rb
|
|
207
|
+
- lib/slimmer/template.rb
|
|
208
|
+
- lib/slimmer/test.rb
|
|
209
|
+
- lib/tasks/slimmer.rake
|
|
209
210
|
- Rakefile
|
|
210
|
-
- test/
|
|
211
|
-
- test/artefact_test.rb
|
|
212
|
-
- test/fixtures/related.raw.html.erb
|
|
213
|
-
- test/fixtures/campaign.html.erb
|
|
214
|
-
- test/fixtures/500.html.erb
|
|
215
|
-
- test/fixtures/404.html.erb
|
|
216
|
-
- test/fixtures/wrapper.html.erb
|
|
217
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
|
218
|
-
- test/skin_test.rb
|
|
219
|
-
- test/processors/campaign_notification_inserter_test.rb
|
|
220
|
-
- test/processors/meta_viewport_remover_test.rb
|
|
221
|
-
- test/processors/logo_class_inserter_test.rb
|
|
222
|
-
- test/processors/search_index_setter_test.rb
|
|
211
|
+
- test/processors/header_context_inserter_test.rb
|
|
223
212
|
- test/processors/google_analytics_test.rb
|
|
224
|
-
- test/processors/report_a_problem_inserter_test.rb
|
|
225
213
|
- test/processors/body_inserter_test.rb
|
|
214
|
+
- test/processors/search_index_setter_test.rb
|
|
215
|
+
- test/processors/meta_viewport_remover_test.rb
|
|
216
|
+
- test/processors/report_a_problem_inserter_test.rb
|
|
226
217
|
- test/processors/section_inserter_test.rb
|
|
218
|
+
- test/processors/campaign_notification_inserter_test.rb
|
|
227
219
|
- test/processors/related_items_inserter_test.rb
|
|
228
|
-
- test/processors/
|
|
229
|
-
- test/typical_usage_test.rb
|
|
220
|
+
- test/processors/logo_class_inserter_test.rb
|
|
230
221
|
- test/test_template_dependency_on_static_test.rb
|
|
222
|
+
- test/headers_test.rb
|
|
231
223
|
- test/test_helper.rb
|
|
224
|
+
- test/typical_usage_test.rb
|
|
225
|
+
- test/artefact_test.rb
|
|
226
|
+
- test/skin_test.rb
|
|
227
|
+
- test/fixtures/campaign.html.erb
|
|
228
|
+
- test/fixtures/404.html.erb
|
|
229
|
+
- test/fixtures/beta_notice.html.erb
|
|
230
|
+
- test/fixtures/500.html.erb
|
|
231
|
+
- test/fixtures/wrapper.html.erb
|
|
232
|
+
- test/fixtures/related.raw.html.erb
|
|
233
|
+
- test/fixtures/report_a_problem.raw.html.erb
|
|
232
234
|
- bin/render_slimmer_error
|
|
233
235
|
homepage: http://github.com/alphagov/slimmer
|
|
234
236
|
licenses: []
|
|
@@ -243,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
243
245
|
requirements:
|
|
244
246
|
- - ">="
|
|
245
247
|
- !ruby/object:Gem::Version
|
|
246
|
-
hash:
|
|
248
|
+
hash: 3638550350140807883
|
|
247
249
|
segments:
|
|
248
250
|
- 0
|
|
249
251
|
version: "0"
|
|
@@ -252,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
252
254
|
requirements:
|
|
253
255
|
- - ">="
|
|
254
256
|
- !ruby/object:Gem::Version
|
|
255
|
-
hash:
|
|
257
|
+
hash: 3638550350140807883
|
|
256
258
|
segments:
|
|
257
259
|
- 0
|
|
258
260
|
version: "0"
|
|
@@ -264,25 +266,26 @@ signing_key:
|
|
|
264
266
|
specification_version: 3
|
|
265
267
|
summary: Thinner than the skinner
|
|
266
268
|
test_files:
|
|
267
|
-
- test/
|
|
268
|
-
- test/artefact_test.rb
|
|
269
|
-
- test/fixtures/related.raw.html.erb
|
|
270
|
-
- test/fixtures/campaign.html.erb
|
|
271
|
-
- test/fixtures/500.html.erb
|
|
272
|
-
- test/fixtures/404.html.erb
|
|
273
|
-
- test/fixtures/wrapper.html.erb
|
|
274
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
|
275
|
-
- test/skin_test.rb
|
|
276
|
-
- test/processors/campaign_notification_inserter_test.rb
|
|
277
|
-
- test/processors/meta_viewport_remover_test.rb
|
|
278
|
-
- test/processors/logo_class_inserter_test.rb
|
|
279
|
-
- test/processors/search_index_setter_test.rb
|
|
269
|
+
- test/processors/header_context_inserter_test.rb
|
|
280
270
|
- test/processors/google_analytics_test.rb
|
|
281
|
-
- test/processors/report_a_problem_inserter_test.rb
|
|
282
271
|
- test/processors/body_inserter_test.rb
|
|
272
|
+
- test/processors/search_index_setter_test.rb
|
|
273
|
+
- test/processors/meta_viewport_remover_test.rb
|
|
274
|
+
- test/processors/report_a_problem_inserter_test.rb
|
|
283
275
|
- test/processors/section_inserter_test.rb
|
|
276
|
+
- test/processors/campaign_notification_inserter_test.rb
|
|
284
277
|
- test/processors/related_items_inserter_test.rb
|
|
285
|
-
- test/processors/
|
|
286
|
-
- test/typical_usage_test.rb
|
|
278
|
+
- test/processors/logo_class_inserter_test.rb
|
|
287
279
|
- test/test_template_dependency_on_static_test.rb
|
|
280
|
+
- test/headers_test.rb
|
|
288
281
|
- test/test_helper.rb
|
|
282
|
+
- test/typical_usage_test.rb
|
|
283
|
+
- test/artefact_test.rb
|
|
284
|
+
- test/skin_test.rb
|
|
285
|
+
- test/fixtures/campaign.html.erb
|
|
286
|
+
- test/fixtures/404.html.erb
|
|
287
|
+
- test/fixtures/beta_notice.html.erb
|
|
288
|
+
- test/fixtures/500.html.erb
|
|
289
|
+
- test/fixtures/wrapper.html.erb
|
|
290
|
+
- test/fixtures/related.raw.html.erb
|
|
291
|
+
- test/fixtures/report_a_problem.raw.html.erb
|