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.
@@ -1,3 +1,7 @@
1
+ # 3.27.0
2
+
3
+ * Added BETA_LABEL header and deprecated BETA_NOTICE header.
4
+
1
5
  # 3.26.0
2
6
 
3
7
  * Added X-Slimmer-World-Location header, value of which will be passed onto Google Analytics.
@@ -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'
@@ -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
-
@@ -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>
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '3.26.0'
2
+ VERSION = '3.27.0'
3
3
  end
@@ -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
@@ -78,6 +78,7 @@ class SlimmerIntegrationTest < MiniTest::Unit::TestCase
78
78
  use_template('related.raw')
79
79
  use_template('report_a_problem.raw')
80
80
  use_template('beta_notice')
81
+ use_template('beta_label')
81
82
 
82
83
  fetch_page
83
84
  end
@@ -253,21 +253,17 @@ module TypicalUsage
253
253
  end
254
254
  end
255
255
 
256
- class BetaNoticeInserterTest < SlimmerIntegrationTest
257
- def test_should_add_beta_warnings
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::BETA_HEADER => '1'}
264
+ }, {Slimmer::Headers::BETA_LABEL => 'after:#wrapper'}
265
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.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.26.0
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-02-18 00:00:00.000000000 Z
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: -2647039670405045744
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: -2647039670405045744
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