slimmer 3.6.1 → 3.7.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/lib/slimmer.rb +1 -0
- data/lib/slimmer/headers.rb +13 -11
- data/lib/slimmer/processors/meta_viewport_remover.rb +13 -0
- data/lib/slimmer/skin.rb +1 -0
- data/lib/slimmer/version.rb +1 -1
- data/test/headers_test.rb +9 -0
- data/test/processors/meta_viewport_remover_test.rb +25 -0
- metadata +7 -4
data/lib/slimmer.rb
CHANGED
@@ -33,6 +33,7 @@ module Slimmer
|
|
33
33
|
autoload :GoogleAnalyticsConfigurator, 'slimmer/processors/google_analytics_configurator'
|
34
34
|
autoload :HeaderContextInserter, 'slimmer/processors/header_context_inserter'
|
35
35
|
autoload :LogoClassInserter, 'slimmer/processors/logo_class_inserter'
|
36
|
+
autoload :MetaViewportRemover, 'slimmer/processors/meta_viewport_remover'
|
36
37
|
autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
|
37
38
|
autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
|
38
39
|
autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
|
data/lib/slimmer/headers.rb
CHANGED
@@ -5,22 +5,24 @@ module Slimmer
|
|
5
5
|
HEADER_PREFIX = "X-Slimmer"
|
6
6
|
|
7
7
|
SLIMMER_HEADER_MAPPING = {
|
8
|
-
|
9
|
-
need_id:
|
10
|
-
|
11
|
-
|
12
|
-
result_count:
|
13
|
-
|
14
|
-
skip:
|
8
|
+
format: "Format",
|
9
|
+
need_id: "Need-ID",
|
10
|
+
proposition: "Proposition",
|
11
|
+
remove_meta_viewport: "Remove-Meta-Viewport",
|
12
|
+
result_count: "Result-Count",
|
13
|
+
section: "Section",
|
14
|
+
skip: "Skip",
|
15
|
+
template: "Template",
|
15
16
|
}
|
16
17
|
|
17
|
-
TEMPLATE_HEADER = "#{HEADER_PREFIX}-Template"
|
18
|
-
SKIP_HEADER = "#{HEADER_PREFIX}-Skip"
|
19
|
-
SEARCH_PATH_HEADER = "#{HEADER_PREFIX}-Search-Path"
|
20
|
-
SEARCH_INDEX_HEADER = "#{HEADER_PREFIX}-Search-Index"
|
21
18
|
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
22
19
|
FORMAT_HEADER = "#{HEADER_PREFIX}-Format"
|
20
|
+
REMOVE_META_VIEWPORT = "#{HEADER_PREFIX}-Remove-Meta-Viewport"
|
23
21
|
RESULT_COUNT_HEADER = "#{HEADER_PREFIX}-Result-Count"
|
22
|
+
SEARCH_INDEX_HEADER = "#{HEADER_PREFIX}-Search-Index"
|
23
|
+
SEARCH_PATH_HEADER = "#{HEADER_PREFIX}-Search-Path"
|
24
|
+
SKIP_HEADER = "#{HEADER_PREFIX}-Skip"
|
25
|
+
TEMPLATE_HEADER = "#{HEADER_PREFIX}-Template"
|
24
26
|
|
25
27
|
def set_slimmer_headers(hash)
|
26
28
|
raise InvalidHeader if (hash.keys - SLIMMER_HEADER_MAPPING.keys).any?
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Slimmer::Processors
|
2
|
+
class MetaViewportRemover
|
3
|
+
def initialize(response)
|
4
|
+
@response = response
|
5
|
+
end
|
6
|
+
|
7
|
+
def filter(src, dest)
|
8
|
+
if @response.headers["X-Slimmer-Remove-Meta-Viewport"] == "true"
|
9
|
+
dest.at_xpath('//head//meta[@name="viewport"]').remove
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/slimmer/skin.rb
CHANGED
@@ -140,6 +140,7 @@ module Slimmer
|
|
140
140
|
Processors::LogoClassInserter.new(artefact),
|
141
141
|
Processors::ReportAProblemInserter.new(self, source_request.url),
|
142
142
|
Processors::SearchIndexSetter.new(response),
|
143
|
+
Processors::MetaViewportRemover.new(response),
|
143
144
|
]
|
144
145
|
|
145
146
|
template_name = response.headers[Headers::TEMPLATE_HEADER] || 'wrapper'
|
data/lib/slimmer/version.rb
CHANGED
data/test/headers_test.rb
CHANGED
@@ -54,6 +54,15 @@ class HeadersTest < MiniTest::Unit::TestCase
|
|
54
54
|
set_slimmer_headers seccion: "wrong"
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
def test_should_not_have_meta_viewport_header_set
|
59
|
+
assert_equal nil, headers["X-Slimmer-Remove-Meta-Viewport"]
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_should_set_meta_viewport_header
|
63
|
+
set_slimmer_headers remove_meta_viewport: true
|
64
|
+
assert_equal "true", headers["X-Slimmer-Remove-Meta-Viewport"]
|
65
|
+
end
|
57
66
|
end
|
58
67
|
|
59
68
|
describe Slimmer::Headers do
|
@@ -0,0 +1,25 @@
|
|
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
|
+
def test_should_leave_all_content_as_it_is_if_there_is_not_a_meta_viewport_header_set
|
16
|
+
given_response 200, TEMPLATE, {}
|
17
|
+
assert_equal "<meta name=\"viewport\" content=\"width=device-width, intial-scale=1\">",
|
18
|
+
Nokogiri::HTML.parse(last_response.body).at_xpath('//head//meta[@name="viewport"]').to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_should_remove_the_meta_viewport_if_the_relevant_header_is_set
|
22
|
+
given_response 200, TEMPLATE, {Slimmer::Headers::REMOVE_META_VIEWPORT => "true"}
|
23
|
+
assert_nil Nokogiri::HTML.parse(last_response.body).at_xpath('//head//meta[@name="viewport"]')
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: slimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 3.
|
5
|
+
version: 3.7.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ben Griffiths
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2012-10-
|
14
|
+
date: 2012-10-09 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- lib/slimmer/processors/body_inserter.rb
|
202
202
|
- lib/slimmer/processors/admin_title_inserter.rb
|
203
203
|
- lib/slimmer/processors/report_a_problem_inserter.rb
|
204
|
+
- lib/slimmer/processors/meta_viewport_remover.rb
|
204
205
|
- lib/slimmer/processors/section_inserter.rb
|
205
206
|
- lib/slimmer/processors/footer_remover.rb
|
206
207
|
- lib/slimmer/headers.rb
|
@@ -215,6 +216,7 @@ files:
|
|
215
216
|
- test/fixtures/wrapper.html.erb
|
216
217
|
- test/fixtures/report_a_problem.raw.html.erb
|
217
218
|
- test/skin_test.rb
|
219
|
+
- test/processors/meta_viewport_remover_test.rb
|
218
220
|
- test/processors/logo_class_inserter_test.rb
|
219
221
|
- test/processors/search_index_setter_test.rb
|
220
222
|
- test/processors/google_analytics_test.rb
|
@@ -241,7 +243,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
241
243
|
requirements:
|
242
244
|
- - ">="
|
243
245
|
- !ruby/object:Gem::Version
|
244
|
-
hash:
|
246
|
+
hash: 1998055775306667395
|
245
247
|
segments:
|
246
248
|
- 0
|
247
249
|
version: "0"
|
@@ -250,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
252
|
requirements:
|
251
253
|
- - ">="
|
252
254
|
- !ruby/object:Gem::Version
|
253
|
-
hash:
|
255
|
+
hash: 1998055775306667395
|
254
256
|
segments:
|
255
257
|
- 0
|
256
258
|
version: "0"
|
@@ -270,6 +272,7 @@ test_files:
|
|
270
272
|
- test/fixtures/wrapper.html.erb
|
271
273
|
- test/fixtures/report_a_problem.raw.html.erb
|
272
274
|
- test/skin_test.rb
|
275
|
+
- test/processors/meta_viewport_remover_test.rb
|
273
276
|
- test/processors/logo_class_inserter_test.rb
|
274
277
|
- test/processors/search_index_setter_test.rb
|
275
278
|
- test/processors/google_analytics_test.rb
|