slimmer 3.15.0 → 3.16.0
Sign up to get free protection for your applications and to get access to all the features.
data/lib/slimmer/headers.rb
CHANGED
@@ -26,6 +26,7 @@ module Slimmer
|
|
26
26
|
REMOVE_META_VIEWPORT = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:remove_meta_viewport]}"
|
27
27
|
RESULT_COUNT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:result_count]}"
|
28
28
|
SEARCH_INDEX_HEADER = "#{HEADER_PREFIX}-Search-Index"
|
29
|
+
SEARCH_PATH_HEADER = "#{HEADER_PREFIX}-Search-Path"
|
29
30
|
SKIP_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:skip]}"
|
30
31
|
TEMPLATE_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:template]}"
|
31
32
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Slimmer::Processors
|
2
|
+
class SearchPathSetter
|
3
|
+
def initialize(response)
|
4
|
+
@response = response
|
5
|
+
end
|
6
|
+
|
7
|
+
def filter(content_document, page_template)
|
8
|
+
if search_scope && page_template.at_css('form#search')
|
9
|
+
page_template.at_css('form#search').attributes["action"].value = search_scope
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def search_scope
|
14
|
+
@response.headers[Slimmer::Headers::SEARCH_PATH_HEADER]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/slimmer/skin.rb
CHANGED
@@ -124,6 +124,7 @@ module Slimmer
|
|
124
124
|
Processors::HeaderContextInserter.new(),
|
125
125
|
Processors::SectionInserter.new(artefact),
|
126
126
|
Processors::GoogleAnalyticsConfigurator.new(response, artefact),
|
127
|
+
Processors::SearchPathSetter.new(response),
|
127
128
|
Processors::RelatedItemsInserter.new(self, artefact),
|
128
129
|
Processors::LogoClassInserter.new(artefact),
|
129
130
|
Processors::ReportAProblemInserter.new(self, source_request.url),
|
data/lib/slimmer/version.rb
CHANGED
data/lib/slimmer.rb
CHANGED
@@ -39,6 +39,7 @@ module Slimmer
|
|
39
39
|
autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
|
40
40
|
autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
|
41
41
|
autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
|
42
|
+
autoload :SearchPathSetter, 'slimmer/processors/search_path_setter'
|
42
43
|
autoload :SectionInserter, 'slimmer/processors/section_inserter'
|
43
44
|
autoload :TagMover, 'slimmer/processors/tag_mover'
|
44
45
|
autoload :TitleInserter, 'slimmer/processors/title_inserter'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
module SearchPathSetterTest
|
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-Path" => "/specialist/search",
|
21
|
+
}
|
22
|
+
|
23
|
+
given_response 200, DOCUMENT_WITH_SEARCH, headers
|
24
|
+
|
25
|
+
def test_should_rewrite_search_action
|
26
|
+
search_action = Nokogiri::HTML.parse(last_response.body).at_css('#search')["action"]
|
27
|
+
assert_equal "/specialist/search", search_action
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class WithoutHeaderTest < SlimmerIntegrationTest
|
32
|
+
given_response 200, DOCUMENT_WITH_SEARCH, {}
|
33
|
+
|
34
|
+
def test_should_leave_original_search_action
|
35
|
+
search_action = Nokogiri::HTML.parse(last_response.body).at_css('#search')["action"]
|
36
|
+
assert_equal "/path/to/search", search_action
|
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.16.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: 2013-04-
|
14
|
+
date: 2013-04-23 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
@@ -192,6 +192,7 @@ files:
|
|
192
192
|
- lib/slimmer/processors/search_index_setter.rb
|
193
193
|
- lib/slimmer/processors/body_class_copier.rb
|
194
194
|
- lib/slimmer/processors/tag_mover.rb
|
195
|
+
- lib/slimmer/processors/search_path_setter.rb
|
195
196
|
- lib/slimmer/processors/title_inserter.rb
|
196
197
|
- lib/slimmer/processors/google_analytics_configurator.rb
|
197
198
|
- lib/slimmer/processors/navigation_mover.rb
|
@@ -228,6 +229,7 @@ files:
|
|
228
229
|
- test/processors/google_analytics_test.rb
|
229
230
|
- test/processors/report_a_problem_inserter_test.rb
|
230
231
|
- test/processors/body_inserter_test.rb
|
232
|
+
- test/processors/search_path_setter_test.rb
|
231
233
|
- test/processors/section_inserter_test.rb
|
232
234
|
- test/processors/related_items_inserter_test.rb
|
233
235
|
- test/processors/header_context_inserter_test.rb
|
@@ -248,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
248
250
|
requirements:
|
249
251
|
- - ">="
|
250
252
|
- !ruby/object:Gem::Version
|
251
|
-
hash: -
|
253
|
+
hash: -2273354827305852219
|
252
254
|
segments:
|
253
255
|
- 0
|
254
256
|
version: "0"
|
@@ -257,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
259
|
requirements:
|
258
260
|
- - ">="
|
259
261
|
- !ruby/object:Gem::Version
|
260
|
-
hash: -
|
262
|
+
hash: -2273354827305852219
|
261
263
|
segments:
|
262
264
|
- 0
|
263
265
|
version: "0"
|
@@ -288,6 +290,7 @@ test_files:
|
|
288
290
|
- test/processors/google_analytics_test.rb
|
289
291
|
- test/processors/report_a_problem_inserter_test.rb
|
290
292
|
- test/processors/body_inserter_test.rb
|
293
|
+
- test/processors/search_path_setter_test.rb
|
291
294
|
- test/processors/section_inserter_test.rb
|
292
295
|
- test/processors/related_items_inserter_test.rb
|
293
296
|
- test/processors/header_context_inserter_test.rb
|