slimmer 3.26.0 → 3.27.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -0
- data/lib/slimmer.rb +1 -0
- data/lib/slimmer/headers.rb +2 -0
- data/lib/slimmer/processors/beta_label_inserter.rb +35 -0
- data/lib/slimmer/processors/beta_notice_inserter.rb +1 -1
- data/lib/slimmer/skin.rb +1 -0
- data/lib/slimmer/test_templates/beta_label.html +1 -0
- data/lib/slimmer/version.rb +1 -1
- data/test/deprecated_usage_test.rb +25 -0
- data/test/fixtures/beta_label.html.erb +1 -0
- data/test/processors/beta_label_inserter_test.rb +42 -0
- data/test/test_helper.rb +1 -0
- data/test/typical_usage_test.rb +4 -8
- metadata +12 -4
data/CHANGELOG.md
CHANGED
data/lib/slimmer.rb
CHANGED
@@ -24,6 +24,7 @@ module Slimmer
|
|
24
24
|
|
25
25
|
module Processors
|
26
26
|
autoload :BetaNoticeInserter, 'slimmer/processors/beta_notice_inserter'
|
27
|
+
autoload :BetaLabelInserter, 'slimmer/processors/beta_label_inserter'
|
27
28
|
autoload :BodyClassCopier, 'slimmer/processors/body_class_copier'
|
28
29
|
autoload :BodyInserter, 'slimmer/processors/body_inserter'
|
29
30
|
autoload :ConditionalCommentMover, 'slimmer/processors/conditional_comment_mover'
|
data/lib/slimmer/headers.rb
CHANGED
@@ -7,6 +7,7 @@ module Slimmer
|
|
7
7
|
SLIMMER_HEADER_MAPPING = {
|
8
8
|
application_name: "Application-Name",
|
9
9
|
beta: "Beta",
|
10
|
+
beta_label: "Beta-Label",
|
10
11
|
format: "Format",
|
11
12
|
need_id: "Need-ID",
|
12
13
|
page_owner: "Page-Owner",
|
@@ -23,6 +24,7 @@ module Slimmer
|
|
23
24
|
APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}"
|
24
25
|
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
25
26
|
BETA_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta]}"
|
27
|
+
BETA_LABEL = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta_label]}"
|
26
28
|
FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
|
27
29
|
ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
|
28
30
|
WORLD_LOCATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:world_locations]}"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Slimmer::Processors
|
2
|
+
class BetaLabelInserter
|
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_label?
|
10
|
+
if position == 'before'
|
11
|
+
page_template.at_css(selector).add_previous_sibling(beta_label_block)
|
12
|
+
elsif position == 'after'
|
13
|
+
page_template.at_css(selector).add_next_sibling(beta_label_block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def should_add_beta_label?
|
19
|
+
!! @headers[Slimmer::Headers::BETA_LABEL]
|
20
|
+
end
|
21
|
+
|
22
|
+
def beta_label_block
|
23
|
+
@beta_label_block ||= @skin.template('beta_label').to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
def selector
|
28
|
+
@headers[Slimmer::Headers::BETA_LABEL].gsub(/.*:/, '')
|
29
|
+
end
|
30
|
+
|
31
|
+
def position
|
32
|
+
@headers[Slimmer::Headers::BETA_LABEL].gsub(/:.*/, '')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -7,6 +7,7 @@ module Slimmer::Processors
|
|
7
7
|
|
8
8
|
def filter(content_document, page_template)
|
9
9
|
if should_add_beta_notice?
|
10
|
+
warn "[DEPRECATION WARNING] BETA_HEADER is deprecated. Use BETA_LABEL instead."
|
10
11
|
page_template.css('body').add_class('beta')
|
11
12
|
if header = page_template.at_css('#global-header')
|
12
13
|
header.add_next_sibling(beta_notice_block)
|
@@ -32,4 +33,3 @@ module Slimmer::Processors
|
|
32
33
|
end
|
33
34
|
end
|
34
35
|
end
|
35
|
-
|
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::BetaNoticeInserter.new(self, response.headers),
|
132
|
+
Processors::BetaLabelInserter.new(self, response.headers)
|
132
133
|
]
|
133
134
|
|
134
135
|
template_name = response.headers[Headers::TEMPLATE_HEADER] || 'wrapper'
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="beta-label"><p>This page is BETA.</p></div>
|
data/lib/slimmer/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative "test_helper"
|
2
|
+
|
3
|
+
module DeprecatedUsage
|
4
|
+
class BetaNoticeInserterTest < SlimmerIntegrationTest
|
5
|
+
def test_should_add_beta_warnings
|
6
|
+
Slimmer::Processors::BetaNoticeInserter.any_instance.
|
7
|
+
expects(:warn).
|
8
|
+
with(regexp_matches(/BETA_HEADER is deprecated. Use BETA_LABEL instead/))
|
9
|
+
|
10
|
+
given_response 200, %{
|
11
|
+
<html>
|
12
|
+
<body class="wibble">
|
13
|
+
<div id="wrapper">The body of the page</div>
|
14
|
+
</body>
|
15
|
+
</html>
|
16
|
+
}, {Slimmer::Headers::BETA_HEADER => '1'}
|
17
|
+
|
18
|
+
# beta notice after cookie bar
|
19
|
+
assert_rendered_in_template "body.beta.wibble #global-header + div.beta-notice"
|
20
|
+
|
21
|
+
# beta notice before footer
|
22
|
+
assert_rendered_in_template "body.beta.wibble div.beta-notice.js-footer + #footer"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="beta-label"><p>This page is BETA.</p></div>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative "../test_helper"
|
2
|
+
|
3
|
+
class BetaLabelInserterTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
beta_label_block = '<div class="beta-label"><p>This page is BETA.</p></div>'
|
8
|
+
@skin = stub("Skin", :template => beta_label_block)
|
9
|
+
@template = as_nokogiri %{
|
10
|
+
<html><body><div><div id="wrapper"><header id="main">GOV.UK</header></div></div></body></html>
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_should_add_beta_label_after
|
15
|
+
|
16
|
+
headers = {
|
17
|
+
Slimmer::Headers::BETA_LABEL => "after:header#main"
|
18
|
+
}
|
19
|
+
|
20
|
+
Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
|
21
|
+
|
22
|
+
assert_in @template, '#main + .beta-label'
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_should_add_beta_label_before
|
26
|
+
headers = {
|
27
|
+
Slimmer::Headers::BETA_LABEL => "before:header#main"
|
28
|
+
}
|
29
|
+
|
30
|
+
Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
|
31
|
+
|
32
|
+
assert_in @template, '.beta-label + #main'
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_should_not_add_beta_label
|
36
|
+
headers = {}
|
37
|
+
|
38
|
+
Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
|
39
|
+
|
40
|
+
assert_not_in @template, '.beta-label'
|
41
|
+
end
|
42
|
+
end
|
data/test/test_helper.rb
CHANGED
data/test/typical_usage_test.rb
CHANGED
@@ -253,21 +253,17 @@ module TypicalUsage
|
|
253
253
|
end
|
254
254
|
end
|
255
255
|
|
256
|
-
class
|
257
|
-
def
|
256
|
+
class BetaLabelInserterTest < SlimmerIntegrationTest
|
257
|
+
def test_should_add_beta_label
|
258
258
|
given_response 200, %{
|
259
259
|
<html>
|
260
260
|
<body class="wibble">
|
261
261
|
<div id="wrapper">The body of the page</div>
|
262
262
|
</body>
|
263
263
|
</html>
|
264
|
-
}, {Slimmer::Headers::
|
264
|
+
}, {Slimmer::Headers::BETA_LABEL => 'after:#wrapper'}
|
265
265
|
|
266
|
-
|
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.js-footer + #footer"
|
266
|
+
assert_rendered_in_template '.beta-label'
|
271
267
|
end
|
272
268
|
end
|
273
269
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.27.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-03-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
@@ -270,6 +270,7 @@ files:
|
|
270
270
|
- lib/slimmer/test_templates/header_footer_only.html
|
271
271
|
- lib/slimmer/test_templates/wrapper.html
|
272
272
|
- lib/slimmer/test_templates/beta_notice.html
|
273
|
+
- lib/slimmer/test_templates/beta_label.html
|
273
274
|
- lib/slimmer/test.rb
|
274
275
|
- lib/slimmer/version.rb
|
275
276
|
- lib/slimmer/artefact.rb
|
@@ -283,6 +284,7 @@ files:
|
|
283
284
|
- lib/slimmer/processors/tag_mover.rb
|
284
285
|
- lib/slimmer/processors/meta_viewport_remover.rb
|
285
286
|
- lib/slimmer/processors/body_class_copier.rb
|
287
|
+
- lib/slimmer/processors/beta_label_inserter.rb
|
286
288
|
- lib/slimmer/processors/report_a_problem_inserter.rb
|
287
289
|
- lib/slimmer/processors/title_inserter.rb
|
288
290
|
- lib/slimmer/processors/search_index_setter.rb
|
@@ -298,12 +300,14 @@ files:
|
|
298
300
|
- test/changelog_test.rb
|
299
301
|
- test/typical_usage_test.rb
|
300
302
|
- test/skin_test.rb
|
303
|
+
- test/deprecated_usage_test.rb
|
301
304
|
- test/artefact_test.rb
|
302
305
|
- test/fixtures/wrapper.html.erb
|
303
306
|
- test/fixtures/500.html.erb
|
304
307
|
- test/fixtures/proposition_menu.html.erb
|
305
308
|
- test/fixtures/404.html.erb
|
306
309
|
- test/fixtures/report_a_problem.raw.html.erb
|
310
|
+
- test/fixtures/beta_label.html.erb
|
307
311
|
- test/fixtures/related.raw.html.erb
|
308
312
|
- test/fixtures/beta_notice.html.erb
|
309
313
|
- test/headers_test.rb
|
@@ -321,6 +325,7 @@ files:
|
|
321
325
|
- test/processors/report_a_problem_inserter_test.rb
|
322
326
|
- test/processors/tag_mover_test.rb
|
323
327
|
- test/processors/logo_class_inserter_test.rb
|
328
|
+
- test/processors/beta_label_inserter_test.rb
|
324
329
|
- bin/render_slimmer_error
|
325
330
|
homepage: http://github.com/alphagov/slimmer
|
326
331
|
licenses: []
|
@@ -336,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
336
341
|
version: '0'
|
337
342
|
segments:
|
338
343
|
- 0
|
339
|
-
hash:
|
344
|
+
hash: 553986080410227119
|
340
345
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
341
346
|
none: false
|
342
347
|
requirements:
|
@@ -345,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
345
350
|
version: '0'
|
346
351
|
segments:
|
347
352
|
- 0
|
348
|
-
hash:
|
353
|
+
hash: 553986080410227119
|
349
354
|
requirements: []
|
350
355
|
rubyforge_project: slimmer
|
351
356
|
rubygems_version: 1.8.23
|
@@ -356,12 +361,14 @@ test_files:
|
|
356
361
|
- test/changelog_test.rb
|
357
362
|
- test/typical_usage_test.rb
|
358
363
|
- test/skin_test.rb
|
364
|
+
- test/deprecated_usage_test.rb
|
359
365
|
- test/artefact_test.rb
|
360
366
|
- test/fixtures/wrapper.html.erb
|
361
367
|
- test/fixtures/500.html.erb
|
362
368
|
- test/fixtures/proposition_menu.html.erb
|
363
369
|
- test/fixtures/404.html.erb
|
364
370
|
- test/fixtures/report_a_problem.raw.html.erb
|
371
|
+
- test/fixtures/beta_label.html.erb
|
365
372
|
- test/fixtures/related.raw.html.erb
|
366
373
|
- test/fixtures/beta_notice.html.erb
|
367
374
|
- test/headers_test.rb
|
@@ -379,3 +386,4 @@ test_files:
|
|
379
386
|
- test/processors/report_a_problem_inserter_test.rb
|
380
387
|
- test/processors/tag_mover_test.rb
|
381
388
|
- test/processors/logo_class_inserter_test.rb
|
389
|
+
- test/processors/beta_label_inserter_test.rb
|