slimmer 1.2.5 → 2.0.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/CHANGELOG.md +14 -1
- data/lib/slimmer.rb +28 -17
- data/lib/slimmer/app.rb +9 -9
- data/lib/slimmer/headers.rb +32 -1
- data/lib/slimmer/{admin_title_inserter.rb → processors/admin_title_inserter.rb} +1 -1
- data/lib/slimmer/{body_class_copier.rb → processors/body_class_copier.rb} +1 -1
- data/lib/slimmer/{body_inserter.rb → processors/body_inserter.rb} +1 -1
- data/lib/slimmer/{conditional_comment_mover.rb → processors/conditional_comment_mover.rb} +1 -1
- data/lib/slimmer/{footer_remover.rb → processors/footer_remover.rb} +1 -1
- data/lib/slimmer/{google_analytics_configurator.rb → processors/google_analytics_configurator.rb} +3 -2
- data/lib/slimmer/{header_context_inserter.rb → processors/header_context_inserter.rb} +1 -1
- data/lib/slimmer/processors/logo_class_inserter.rb +20 -0
- data/lib/slimmer/processors/related_items_inserter.rb +20 -0
- data/lib/slimmer/{search_path_setter.rb → processors/search_path_setter.rb} +2 -4
- data/lib/slimmer/{section_inserter.rb → processors/section_inserter.rb} +1 -1
- data/lib/slimmer/{tag_mover.rb → processors/tag_mover.rb} +1 -1
- data/lib/slimmer/{title_inserter.rb → processors/title_inserter.rb} +1 -1
- data/lib/slimmer/skin.rb +28 -20
- data/lib/slimmer/template.rb +1 -1
- data/lib/slimmer/test.rb +5 -1
- data/lib/slimmer/test_template.rb +7 -1
- data/lib/slimmer/version.rb +1 -1
- data/test/fixtures/related.raw.html.erb +26 -22
- data/test/fixtures/wrapper.html.erb +2 -0
- data/test/headers_test.rb +56 -1
- data/test/processors/body_inserter_test.rb +4 -4
- data/test/{google_analytics_test.rb → processors/google_analytics_test.rb} +31 -0
- data/test/processors/header_context_inserter_test.rb +5 -5
- data/test/processors/logo_class_inserter_test.rb +55 -0
- data/test/processors/related_items_inserter_test.rb +61 -0
- data/test/{search_path_setter_test.rb → processors/search_path_setter_test.rb} +0 -0
- data/test/processors/section_inserter_test.rb +20 -5
- data/test/test_helper.rb +31 -22
- data/test/typical_usage_test.rb +101 -70
- metadata +60 -70
- data/lib/slimmer/related_items_inserter.rb +0 -36
- data/lib/slimmer/url_rewriter.rb +0 -40
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'gds_api/helpers'
|
2
|
-
|
3
|
-
class Slimmer::RelatedItemsInserter
|
4
|
-
include GdsApi::Helpers
|
5
|
-
include ERB::Util
|
6
|
-
|
7
|
-
def initialize(related_block_template, external_request)
|
8
|
-
@related_block_template = related_block_template
|
9
|
-
@external_request = external_request
|
10
|
-
end
|
11
|
-
|
12
|
-
def requested_slug
|
13
|
-
url_parts = @external_request.path_info.split('/')
|
14
|
-
url_parts.size > 0 ? url_parts[1] : ''
|
15
|
-
end
|
16
|
-
|
17
|
-
def filter(content_document, page_template)
|
18
|
-
if content_document.at_css('body.mainstream div#related-items')
|
19
|
-
page_template.at_css('body.mainstream div#related-items').replace(related_item_block)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def under_test?
|
24
|
-
ENV['RACK_ENV'] == 'test' || ENV['RAILS_ENV'] == 'test'
|
25
|
-
end
|
26
|
-
|
27
|
-
def metadata_from_panopticon
|
28
|
-
under_test? ? {} : fetch_artefact(slug: requested_slug)
|
29
|
-
end
|
30
|
-
|
31
|
-
def related_item_block
|
32
|
-
artefact = metadata_from_panopticon
|
33
|
-
html = ERB.new(@related_block_template).result(binding)
|
34
|
-
Nokogiri::HTML.fragment(html)
|
35
|
-
end
|
36
|
-
end
|
data/lib/slimmer/url_rewriter.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module Slimmer
|
2
|
-
class UrlRewriter
|
3
|
-
def initialize(request)
|
4
|
-
@request = request
|
5
|
-
end
|
6
|
-
|
7
|
-
def filter(src,dest)
|
8
|
-
rewrite_document src
|
9
|
-
end
|
10
|
-
|
11
|
-
def rewrite_document(doc)
|
12
|
-
rewrite_nodes doc.css('body img'),'src'
|
13
|
-
rewrite_nodes doc.css('script'),'src'
|
14
|
-
rewrite_nodes doc.css('link'),'href'
|
15
|
-
end
|
16
|
-
|
17
|
-
def rewrite_nodes(nodes,attr)
|
18
|
-
nodes.each do |node|
|
19
|
-
next unless node.attr(attr)
|
20
|
-
node_uri = URI.parse(node.attr(attr))
|
21
|
-
node.attribute(attr).value = rewrite_url(node_uri).to_s
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def rewrite_url(uri)
|
26
|
-
unless uri.absolute?
|
27
|
-
uri.scheme = @request.scheme
|
28
|
-
if @request.host =~ /:/
|
29
|
-
host,port = @request.host.split(":")
|
30
|
-
uri.host = host
|
31
|
-
uri.port = port
|
32
|
-
else
|
33
|
-
uri.host = @request.host
|
34
|
-
uri.port = @request.port
|
35
|
-
end
|
36
|
-
end
|
37
|
-
uri
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|