slimmer 3.26.0 → 3.27.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/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
|