slimmer 3.5.0 → 3.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.
- data/lib/slimmer/headers.rb +1 -0
- data/lib/slimmer/processors/search_index_setter.rb +26 -0
- data/lib/slimmer/skin.rb +1 -0
- data/lib/slimmer/version.rb +1 -1
- data/lib/slimmer.rb +1 -0
- data/test/processors/search_index_setter_test.rb +39 -0
- metadata +49 -46
data/lib/slimmer/headers.rb
CHANGED
@@ -17,6 +17,7 @@ module Slimmer
|
|
17
17
|
TEMPLATE_HEADER = "#{HEADER_PREFIX}-Template"
|
18
18
|
SKIP_HEADER = "#{HEADER_PREFIX}-Skip"
|
19
19
|
SEARCH_PATH_HEADER = "#{HEADER_PREFIX}-Search-Path"
|
20
|
+
SEARCH_INDEX_HEADER = "#{HEADER_PREFIX}-Search-Index"
|
20
21
|
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
21
22
|
FORMAT_HEADER = "#{HEADER_PREFIX}-Format"
|
22
23
|
RESULT_COUNT_HEADER = "#{HEADER_PREFIX}-Result-Count"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Slimmer::Processors
|
2
|
+
include ERB::Util
|
3
|
+
|
4
|
+
class SearchIndexSetter
|
5
|
+
def initialize(response)
|
6
|
+
@response = response
|
7
|
+
end
|
8
|
+
|
9
|
+
def filter(content_document, page_template)
|
10
|
+
if search_index && page_template.at_css('form#search')
|
11
|
+
page_template.at_css('form#search') << hidden_input_element
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def search_index
|
18
|
+
@response.headers[Slimmer::Headers::SEARCH_INDEX_HEADER]
|
19
|
+
end
|
20
|
+
|
21
|
+
def hidden_input_element
|
22
|
+
html = ERB.new('<input type="hidden" name="search-index" value="<%= search_index %>">').result(binding)
|
23
|
+
Nokogiri::HTML.fragment(html)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/slimmer/skin.rb
CHANGED
@@ -139,6 +139,7 @@ module Slimmer
|
|
139
139
|
Processors::RelatedItemsInserter.new(self, artefact),
|
140
140
|
Processors::LogoClassInserter.new(artefact),
|
141
141
|
Processors::ReportAProblemInserter.new(self, source_request.url),
|
142
|
+
Processors::SearchIndexSetter.new(response),
|
142
143
|
]
|
143
144
|
|
144
145
|
template_name = response.headers[Headers::TEMPLATE_HEADER] || 'wrapper'
|
data/lib/slimmer/version.rb
CHANGED
data/lib/slimmer.rb
CHANGED
@@ -35,6 +35,7 @@ module Slimmer
|
|
35
35
|
autoload :LogoClassInserter, 'slimmer/processors/logo_class_inserter'
|
36
36
|
autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
|
37
37
|
autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
|
38
|
+
autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
|
38
39
|
autoload :SearchPathSetter, 'slimmer/processors/search_path_setter'
|
39
40
|
autoload :SectionInserter, 'slimmer/processors/section_inserter'
|
40
41
|
autoload :TagMover, 'slimmer/processors/tag_mover'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
module SearchIndexSetterTest
|
4
|
+
|
5
|
+
DOCUMENT_WITH_SEARCH = <<-END
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
</head>
|
9
|
+
<body class="body_class">
|
10
|
+
<div id="wrapper">
|
11
|
+
<form id="search" action="/path/to/search">
|
12
|
+
</form>
|
13
|
+
</div>
|
14
|
+
</body>
|
15
|
+
</html>
|
16
|
+
END
|
17
|
+
|
18
|
+
class WithHeaderTest < SlimmerIntegrationTest
|
19
|
+
headers = {
|
20
|
+
"X-Slimmer-Search-Index" => "government",
|
21
|
+
}
|
22
|
+
|
23
|
+
given_response 200, DOCUMENT_WITH_SEARCH, headers
|
24
|
+
|
25
|
+
def test_should_insert_index_field
|
26
|
+
search_index = Nokogiri::HTML.parse(last_response.body).at_css('#search input[name=search-index]')['value']
|
27
|
+
assert_equal "government", search_index
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class WithoutHeaderTest < SlimmerIntegrationTest
|
32
|
+
given_response 200, DOCUMENT_WITH_SEARCH, {}
|
33
|
+
|
34
|
+
def test_should_not_insert_index_field
|
35
|
+
search_index = Nokogiri::HTML.parse(last_response.body).at_css('#search input[name=search-index]')
|
36
|
+
assert_equal nil, search_index
|
37
|
+
end
|
38
|
+
end
|
39
|
+
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.6.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ben Griffiths
|
@@ -180,51 +180,53 @@ extra_rdoc_files: []
|
|
180
180
|
files:
|
181
181
|
- README.md
|
182
182
|
- CHANGELOG.md
|
183
|
-
- lib/tasks/slimmer.rake
|
184
183
|
- lib/slimmer.rb
|
185
|
-
- lib/slimmer/skin.rb
|
186
|
-
- lib/slimmer/railtie.rb
|
187
|
-
- lib/slimmer/template.rb
|
188
|
-
- lib/slimmer/test_template.rb
|
189
|
-
- lib/slimmer/test.rb
|
190
184
|
- lib/slimmer/app.rb
|
191
|
-
- lib/slimmer/
|
192
|
-
- lib/slimmer/
|
185
|
+
- lib/slimmer/test_template.rb
|
186
|
+
- lib/slimmer/version.rb
|
187
|
+
- lib/slimmer/railtie.rb
|
193
188
|
- lib/slimmer/processors/tag_mover.rb
|
189
|
+
- lib/slimmer/processors/body_class_copier.rb
|
190
|
+
- lib/slimmer/processors/logo_class_inserter.rb
|
191
|
+
- lib/slimmer/processors/header_context_inserter.rb
|
192
|
+
- lib/slimmer/processors/search_index_setter.rb
|
193
|
+
- lib/slimmer/processors/report_a_problem_inserter.rb
|
194
|
+
- lib/slimmer/processors/footer_remover.rb
|
195
|
+
- lib/slimmer/processors/google_analytics_configurator.rb
|
196
|
+
- lib/slimmer/processors/admin_title_inserter.rb
|
194
197
|
- lib/slimmer/processors/search_path_setter.rb
|
195
198
|
- lib/slimmer/processors/title_inserter.rb
|
196
|
-
- lib/slimmer/processors/google_analytics_configurator.rb
|
197
|
-
- lib/slimmer/processors/conditional_comment_mover.rb
|
198
199
|
- lib/slimmer/processors/related_items_inserter.rb
|
199
|
-
- lib/slimmer/processors/header_context_inserter.rb
|
200
|
-
- lib/slimmer/processors/body_inserter.rb
|
201
|
-
- lib/slimmer/processors/admin_title_inserter.rb
|
202
|
-
- lib/slimmer/processors/report_a_problem_inserter.rb
|
203
200
|
- lib/slimmer/processors/section_inserter.rb
|
204
|
-
- lib/slimmer/processors/
|
205
|
-
- lib/slimmer/
|
206
|
-
- lib/slimmer/version.rb
|
201
|
+
- lib/slimmer/processors/conditional_comment_mover.rb
|
202
|
+
- lib/slimmer/processors/body_inserter.rb
|
207
203
|
- lib/slimmer/artefact.rb
|
204
|
+
- lib/slimmer/skin.rb
|
205
|
+
- lib/slimmer/headers.rb
|
206
|
+
- lib/slimmer/template.rb
|
207
|
+
- lib/slimmer/test.rb
|
208
|
+
- lib/tasks/slimmer.rake
|
208
209
|
- Rakefile
|
209
|
-
- test/
|
210
|
-
- test/artefact_test.rb
|
211
|
-
- test/fixtures/related.raw.html.erb
|
212
|
-
- test/fixtures/500.html.erb
|
213
|
-
- test/fixtures/404.html.erb
|
214
|
-
- test/fixtures/wrapper.html.erb
|
215
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
216
|
-
- test/skin_test.rb
|
217
|
-
- test/processors/logo_class_inserter_test.rb
|
210
|
+
- test/processors/header_context_inserter_test.rb
|
218
211
|
- test/processors/google_analytics_test.rb
|
219
|
-
- test/processors/report_a_problem_inserter_test.rb
|
220
212
|
- test/processors/body_inserter_test.rb
|
221
|
-
- test/processors/
|
213
|
+
- test/processors/search_index_setter_test.rb
|
214
|
+
- test/processors/report_a_problem_inserter_test.rb
|
222
215
|
- test/processors/section_inserter_test.rb
|
216
|
+
- test/processors/search_path_setter_test.rb
|
223
217
|
- test/processors/related_items_inserter_test.rb
|
224
|
-
- test/processors/
|
225
|
-
- test/typical_usage_test.rb
|
218
|
+
- test/processors/logo_class_inserter_test.rb
|
226
219
|
- test/test_template_dependency_on_static_test.rb
|
220
|
+
- test/headers_test.rb
|
227
221
|
- test/test_helper.rb
|
222
|
+
- test/typical_usage_test.rb
|
223
|
+
- test/artefact_test.rb
|
224
|
+
- test/skin_test.rb
|
225
|
+
- test/fixtures/404.html.erb
|
226
|
+
- test/fixtures/500.html.erb
|
227
|
+
- test/fixtures/wrapper.html.erb
|
228
|
+
- test/fixtures/related.raw.html.erb
|
229
|
+
- test/fixtures/report_a_problem.raw.html.erb
|
228
230
|
- bin/render_slimmer_error
|
229
231
|
homepage: http://github.com/alphagov/slimmer
|
230
232
|
licenses: []
|
@@ -239,7 +241,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
241
|
requirements:
|
240
242
|
- - ">="
|
241
243
|
- !ruby/object:Gem::Version
|
242
|
-
hash:
|
244
|
+
hash: 2398001210038307961
|
243
245
|
segments:
|
244
246
|
- 0
|
245
247
|
version: "0"
|
@@ -248,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
250
|
requirements:
|
249
251
|
- - ">="
|
250
252
|
- !ruby/object:Gem::Version
|
251
|
-
hash:
|
253
|
+
hash: 2398001210038307961
|
252
254
|
segments:
|
253
255
|
- 0
|
254
256
|
version: "0"
|
@@ -260,22 +262,23 @@ signing_key:
|
|
260
262
|
specification_version: 3
|
261
263
|
summary: Thinner than the skinner
|
262
264
|
test_files:
|
263
|
-
- test/
|
264
|
-
- test/artefact_test.rb
|
265
|
-
- test/fixtures/related.raw.html.erb
|
266
|
-
- test/fixtures/500.html.erb
|
267
|
-
- test/fixtures/404.html.erb
|
268
|
-
- test/fixtures/wrapper.html.erb
|
269
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
270
|
-
- test/skin_test.rb
|
271
|
-
- test/processors/logo_class_inserter_test.rb
|
265
|
+
- test/processors/header_context_inserter_test.rb
|
272
266
|
- test/processors/google_analytics_test.rb
|
273
|
-
- test/processors/report_a_problem_inserter_test.rb
|
274
267
|
- test/processors/body_inserter_test.rb
|
275
|
-
- test/processors/
|
268
|
+
- test/processors/search_index_setter_test.rb
|
269
|
+
- test/processors/report_a_problem_inserter_test.rb
|
276
270
|
- test/processors/section_inserter_test.rb
|
271
|
+
- test/processors/search_path_setter_test.rb
|
277
272
|
- test/processors/related_items_inserter_test.rb
|
278
|
-
- test/processors/
|
279
|
-
- test/typical_usage_test.rb
|
273
|
+
- test/processors/logo_class_inserter_test.rb
|
280
274
|
- test/test_template_dependency_on_static_test.rb
|
275
|
+
- test/headers_test.rb
|
281
276
|
- test/test_helper.rb
|
277
|
+
- test/typical_usage_test.rb
|
278
|
+
- test/artefact_test.rb
|
279
|
+
- test/skin_test.rb
|
280
|
+
- test/fixtures/404.html.erb
|
281
|
+
- test/fixtures/500.html.erb
|
282
|
+
- test/fixtures/wrapper.html.erb
|
283
|
+
- test/fixtures/related.raw.html.erb
|
284
|
+
- test/fixtures/report_a_problem.raw.html.erb
|