slimmer 9.5.0 → 9.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 902e1337c390ba8e7ebb919aa6a6de2ddac90b4f
4
- data.tar.gz: 3f38fdc000b501c9fb0a1f8e99e93b23b324c9d6
3
+ metadata.gz: d37cd678afb1296a6d4cbf84aee3bcd99a74df28
4
+ data.tar.gz: d2708c4354d2dbf6c4521ee51826636c40a18b3e
5
5
  SHA512:
6
- metadata.gz: f5c218e9f3a30cbbb927e98c3a435fc752b1890224fdcc35042992d8c9b6aaffaac3cdd369d48928d6505636098d382f792e3cdb691ca917656f129754d3fcbf
7
- data.tar.gz: ff37333f3ffda92f97ee5dbd7fa065c4eab3a294d12dd497ba126f4aca02b426fed33b761ad15f7c728544f1308f2dc09eaa2303326758df7e436759739e082f
6
+ metadata.gz: a3795f3e350eac43b774b3d08acc781b30017f8dd268ce937dc5bcb170023ee48ac1e4fee5081f43a5cc0310eef9f8d24584868e7e1458235d8e9a21ef9cc4ae
7
+ data.tar.gz: a2b70d4c759b3f0993d3274b5aed1dbc9ff7abbed4ef61f86bbf9b02e260bdfb483f1c1b3c2823d096a91b6f810c40594c8feea7bec208f51954065cfac92ebc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 9.6.0
2
+
3
+ * Adds an 'inside header inserter' processor which allows an application to
4
+ inject a block of HTML after the logo by including a .inside-header element
5
+ in their application’s output.
6
+ (PR #167 https://github.com/alphagov/slimmer/pull/167)
7
+
8
+ * Remove `MetaViewportRemover` processor as it is no longer used.
9
+ (PR #166 https://github.com/alphagov/slimmer/pull/166)
10
+
1
11
  # 9.5.0
2
12
 
3
13
  * Adds a Cucumber helper that makes it easy for host applications to
data/Rakefile CHANGED
@@ -4,6 +4,8 @@ require "bundler/gem_tasks"
4
4
  require "rdoc/task"
5
5
  require 'rake/testtask'
6
6
 
7
+ Dir.glob('lib/tasks/*.rake').each { |r| import r }
8
+
7
9
  RDoc::Task.new do |rd|
8
10
  rd.rdoc_files.include("lib/**/*.rb")
9
11
  rd.rdoc_dir = "rdoc"
@@ -22,4 +24,4 @@ task :publish_gem do |t|
22
24
  puts "Published #{gem}" if gem
23
25
  end
24
26
 
25
- task :default => :test
27
+ task :default => [:test, :lint]
data/lib/slimmer.rb CHANGED
@@ -29,8 +29,8 @@ module Slimmer
29
29
  autoload :FooterRemover, 'slimmer/processors/footer_remover'
30
30
  autoload :MetadataInserter, 'slimmer/processors/metadata_inserter'
31
31
  autoload :HeaderContextInserter, 'slimmer/processors/header_context_inserter'
32
+ autoload :InsideHeaderInserter, 'slimmer/processors/inside_header_inserter'
32
33
  autoload :NavigationMover, 'slimmer/processors/navigation_mover'
33
- autoload :MetaViewportRemover, 'slimmer/processors/meta_viewport_remover'
34
34
  autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
35
35
  autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
36
36
  autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
@@ -11,7 +11,6 @@ module Slimmer
11
11
  organisations: "Organisations",
12
12
  report_a_problem: "Report-a-Problem",
13
13
  world_locations: "World-Locations",
14
- remove_meta_viewport: "Remove-Meta-Viewport",
15
14
  result_count: "Result-Count",
16
15
  search_parameters: "Search-Parameters",
17
16
  section: "Section",
@@ -27,7 +26,6 @@ module Slimmer
27
26
  REPORT_A_PROBLEM_FORM = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:report_a_problem]}"
28
27
  WORLD_LOCATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:world_locations]}"
29
28
  PAGE_OWNER_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:page_owner]}"
30
- REMOVE_META_VIEWPORT = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:remove_meta_viewport]}"
31
29
  RESULT_COUNT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:result_count]}"
32
30
  SEARCH_PATH_HEADER = "#{HEADER_PREFIX}-Search-Path"
33
31
  SEARCH_PARAMETERS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:search_parameters]}"
@@ -0,0 +1,11 @@
1
+ module Slimmer::Processors
2
+ class InsideHeaderInserter
3
+ def filter(src, dest)
4
+ insertion = src.at_css('.slimmer-inside-header')
5
+
6
+ if insertion
7
+ dest.at_css('.header-logo').add_next_sibling(insertion.inner_html)
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/slimmer/skin.rb CHANGED
@@ -113,6 +113,7 @@ module Slimmer
113
113
  Processors::ConditionalCommentMover.new(),
114
114
  Processors::BodyInserter.new(wrapper_id),
115
115
  Processors::BodyClassCopier.new,
116
+ Processors::InsideHeaderInserter.new,
116
117
  Processors::HeaderContextInserter.new(),
117
118
  Processors::SectionInserter.new(artefact),
118
119
  Processors::MetadataInserter.new(response, artefact, options[:app_name]),
@@ -123,7 +124,6 @@ module Slimmer
123
124
  source_request.url,
124
125
  response.headers,
125
126
  wrapper_id),
126
- Processors::MetaViewportRemover.new(self, response.headers),
127
127
  Processors::SearchRemover.new(response.headers),
128
128
  ]
129
129
 
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '9.5.0'
2
+ VERSION = '9.6.0'
3
3
  end
@@ -0,0 +1,4 @@
1
+ desc "Run govuk-lint with similar params to CI"
2
+ task :lint do
3
+ sh "bundle exec govuk-lint-ruby --diff --cached --format clang bin lib test"
4
+ end
data/test/headers_test.rb CHANGED
@@ -59,15 +59,6 @@ class HeadersTest < MiniTest::Test
59
59
  set_slimmer_headers seccion: "wrong"
60
60
  end
61
61
  end
62
-
63
- def test_should_not_have_meta_viewport_header_set
64
- assert_equal nil, headers["X-Slimmer-Remove-Meta-Viewport"]
65
- end
66
-
67
- def test_should_set_meta_viewport_header
68
- set_slimmer_headers remove_meta_viewport: true
69
- assert_equal "true", headers["X-Slimmer-Remove-Meta-Viewport"]
70
- end
71
62
  end
72
63
 
73
64
  describe Slimmer::Headers do
@@ -0,0 +1,35 @@
1
+ require_relative '../test_helper'
2
+
3
+ class InsideHeaderInserterTest < MiniTest::Test
4
+ def test_should_insert_into_header
5
+ source = as_nokogiri %{
6
+ <html>
7
+ <body>
8
+ <div class="slimmer-inside-header">
9
+ <h2>Inserted Page Title</h2>
10
+ </div>
11
+ </body>
12
+ </html>
13
+ }
14
+ template = as_nokogiri %{
15
+ <html>
16
+ <body>
17
+ <div class="header-global">
18
+ <div class="header-logo">
19
+ <a href="https://www.gov.uk/" title="Go to the GOV.UK homepage" id="logo" class="content">
20
+ <img src="/assets/gov.uk_logotype_crown_invert_trans.png" width="35" height="31" alt="">
21
+ </a>
22
+ </div>
23
+ </div>
24
+ </body>
25
+ </html>
26
+ }
27
+
28
+ Slimmer::Processors::InsideHeaderInserter.new.filter(source, template)
29
+
30
+ assert_in template,
31
+ "div.header-global .header-logo + h2",
32
+ "Inserted Page Title",
33
+ 'Expecting the H2 to be inserted after .header-logo'
34
+ end
35
+ end
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: 9.5.0
4
+ version: 9.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Griffiths
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-10 00:00:00.000000000 Z
12
+ date: 2016-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -268,7 +268,7 @@ files:
268
268
  - lib/slimmer/processors/conditional_comment_mover.rb
269
269
  - lib/slimmer/processors/footer_remover.rb
270
270
  - lib/slimmer/processors/header_context_inserter.rb
271
- - lib/slimmer/processors/meta_viewport_remover.rb
271
+ - lib/slimmer/processors/inside_header_inserter.rb
272
272
  - lib/slimmer/processors/metadata_inserter.rb
273
273
  - lib/slimmer/processors/navigation_mover.rb
274
274
  - lib/slimmer/processors/related_items_inserter.rb
@@ -289,6 +289,7 @@ files:
289
289
  - lib/slimmer/test_templates/header_footer_only.html
290
290
  - lib/slimmer/test_templates/wrapper.html
291
291
  - lib/slimmer/version.rb
292
+ - lib/tasks/lint.rake
292
293
  - lib/tasks/slimmer.rake
293
294
  - test/artefact_test.rb
294
295
  - test/cache_test.rb
@@ -304,7 +305,7 @@ files:
304
305
  - test/headers_test.rb
305
306
  - test/processors/body_inserter_test.rb
306
307
  - test/processors/header_context_inserter_test.rb
307
- - test/processors/meta_viewport_remover_test.rb
308
+ - test/processors/inside_header_inserter_test.rb
308
309
  - test/processors/metadata_inserter_test.rb
309
310
  - test/processors/navigation_mover_test.rb
310
311
  - test/processors/related_items_inserter_test.rb
@@ -344,32 +345,32 @@ signing_key:
344
345
  specification_version: 4
345
346
  summary: Thinner than the skinner
346
347
  test_files:
347
- - test/component_resolver_test.rb
348
- - test/changelog_test.rb
349
- - test/test_helpers/shared_templates_test.rb
348
+ - test/test_helper.rb
350
349
  - test/typical_usage_test.rb
350
+ - test/cache_test.rb
351
+ - test/test_helpers/shared_templates_test.rb
351
352
  - test/skin_test.rb
352
- - test/artefact_test.rb
353
353
  - test/fixtures/500.html.erb
354
- - test/fixtures/proposition_menu.html.erb
354
+ - test/fixtures/related.raw.html.erb
355
+ - test/fixtures/404.html.erb
355
356
  - test/fixtures/410.html.erb
356
357
  - test/fixtures/core_layout.html.erb
357
- - test/fixtures/404.html.erb
358
+ - test/fixtures/proposition_menu.html.erb
358
359
  - test/fixtures/report_a_problem.raw.html.erb
359
- - test/fixtures/related.raw.html.erb
360
+ - test/changelog_test.rb
361
+ - test/component_resolver_test.rb
360
362
  - test/headers_test.rb
361
363
  - test/test_template_dependency_on_static_test.rb
362
- - test/cache_test.rb
363
- - test/test_helper.rb
364
+ - test/artefact_test.rb
365
+ - test/processors/search_parameter_inserter_test.rb
366
+ - test/processors/metadata_inserter_test.rb
364
367
  - test/processors/header_context_inserter_test.rb
365
- - test/processors/body_inserter_test.rb
366
- - test/processors/navigation_mover_test.rb
367
368
  - test/processors/related_items_inserter_test.rb
368
- - test/processors/search_path_setter_test.rb
369
- - test/processors/meta_viewport_remover_test.rb
370
- - test/processors/search_parameter_inserter_test.rb
371
- - test/processors/search_remover_test.rb
372
369
  - test/processors/section_inserter_test.rb
370
+ - test/processors/body_inserter_test.rb
373
371
  - test/processors/report_a_problem_inserter_test.rb
372
+ - test/processors/search_remover_test.rb
373
+ - test/processors/inside_header_inserter_test.rb
374
+ - test/processors/navigation_mover_test.rb
375
+ - test/processors/search_path_setter_test.rb
374
376
  - test/processors/tag_mover_test.rb
375
- - test/processors/metadata_inserter_test.rb
@@ -1,19 +0,0 @@
1
- module Slimmer::Processors
2
- class MetaViewportRemover
3
- def initialize(skin, headers)
4
- @skin = skin
5
- @headers = headers
6
- end
7
-
8
- def filter(content_document, page_template)
9
- if should_remove_meta_viewport?
10
- viewport = page_template.at_xpath('//head//meta[@name="viewport"]')
11
- viewport.remove if viewport
12
- end
13
- end
14
-
15
- def should_remove_meta_viewport?
16
- !! @headers[Slimmer::Headers::REMOVE_META_VIEWPORT]
17
- end
18
- end
19
- end
@@ -1,39 +0,0 @@
1
- require_relative "../test_helper"
2
-
3
- class MetaViewportRemover < SlimmerIntegrationTest
4
- TEMPLATE = <<-END
5
- <html>
6
- <head>
7
- <meta name="viewport" content="width=device-width, intial-scale=1">
8
- </head>
9
- <body>
10
- <div><div id="wrapper"></div></div>
11
- </body>
12
- </html>
13
- END
14
-
15
- NO_VIEWPORT_TEMPLATE = <<-END
16
- <html>
17
- <head>
18
- </head>
19
- <body>
20
- <div><div id="wrapper"></div></div>
21
- </body>
22
- </html>
23
- END
24
-
25
- def test_should_leave_all_content_as_it_is_if_there_is_not_a_meta_viewport_header_set
26
- given_response 200, TEMPLATE, {}
27
- assert_equal "<meta name=\"viewport\" content=\"width=device-width, intial-scale=1\">",
28
- Nokogiri::HTML.parse(last_response.body).at_xpath('//head//meta[@name="viewport"]').to_s
29
- end
30
-
31
- def test_should_not_fail_if_there_is_no_viewport_meta
32
- given_response 200, NO_VIEWPORT_TEMPLATE, {Slimmer::Headers::REMOVE_META_VIEWPORT => "true"}
33
- end
34
-
35
- def test_should_remove_the_meta_viewport_if_the_relevant_header_is_set
36
- given_response 200, TEMPLATE, {Slimmer::Headers::REMOVE_META_VIEWPORT => "true"}
37
- assert_nil Nokogiri::HTML.parse(last_response.body).at_xpath('//head//meta[@name="viewport"]')
38
- end
39
- end