slimmer 9.5.0 → 9.6.0

Sign up to get free protection for your applications and to get access to all the features.
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