slimmer 1.1.19 → 1.1.20
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/app.rb +5 -5
- data/lib/slimmer/related_items_inserter.rb +32 -0
- data/lib/slimmer/skin.rb +9 -3
- data/lib/slimmer/version.rb +1 -1
- data/lib/slimmer.rb +1 -0
- data/test/fixtures/related.raw.html.erb +30 -0
- data/test/test_helper.rb +24 -7
- data/test/typical_usage_test.rb +51 -0
- metadata +104 -84
data/lib/slimmer/app.rb
CHANGED
|
@@ -32,8 +32,8 @@ module Slimmer
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
def on_success(request,body)
|
|
36
|
-
@skin.success(request, body)
|
|
35
|
+
def on_success(source_request, request, body)
|
|
36
|
+
@skin.success(source_request, request, body)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def admin(request,body)
|
|
@@ -55,8 +55,8 @@ module Slimmer
|
|
|
55
55
|
b
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
def rewrite_response(env,
|
|
59
|
-
status, headers, app_body =
|
|
58
|
+
def rewrite_response(env, response_to_skin)
|
|
59
|
+
status, headers, app_body = response_to_skin
|
|
60
60
|
logger.debug "Slimmer: constructing request object"
|
|
61
61
|
source_request = Rack::Request.new(env)
|
|
62
62
|
logger.debug "Slimmer: constructing request headers object"
|
|
@@ -75,7 +75,7 @@ module Slimmer
|
|
|
75
75
|
rewritten_body = admin(request,s(app_body))
|
|
76
76
|
else
|
|
77
77
|
logger.debug "Slimmer: Rewriting this request as a public request"
|
|
78
|
-
rewritten_body = on_success(request,s(app_body))
|
|
78
|
+
rewritten_body = on_success(source_request, request, s(app_body))
|
|
79
79
|
end
|
|
80
80
|
when 301, 302, 304
|
|
81
81
|
logger.debug "Slimmer: I will not rewrite this request"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'gds_api/helpers'
|
|
2
|
+
|
|
3
|
+
class 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.citizen div#related-items')
|
|
19
|
+
page_template.at_css('body.citizen div#related-items').replace(related_item_block)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def metadata_from_panopticon
|
|
24
|
+
fetch_artefact(slug: requested_slug)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def related_item_block
|
|
28
|
+
artefact = metadata_from_panopticon
|
|
29
|
+
html = ERB.new(@related_block_template).result(binding)
|
|
30
|
+
Nokogiri::HTML.fragment(html)
|
|
31
|
+
end
|
|
32
|
+
end
|
data/lib/slimmer/skin.rb
CHANGED
|
@@ -56,8 +56,13 @@ module Slimmer
|
|
|
56
56
|
url = template_url template_name
|
|
57
57
|
logger.debug "Slimmer: template lives at '#{url}'"
|
|
58
58
|
source = open(url, "r:UTF-8", :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE).read
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
if template_name =~ /\.raw/
|
|
60
|
+
logger.debug "Slimmer: reading the raw template"
|
|
61
|
+
template = source
|
|
62
|
+
else
|
|
63
|
+
logger.debug "Slimmer: Evaluating the template as ERB"
|
|
64
|
+
template = ERB.new(source).result binding
|
|
65
|
+
end
|
|
61
66
|
cache template_name, template
|
|
62
67
|
logger.debug "Slimmer: Returning evaluated template"
|
|
63
68
|
template
|
|
@@ -117,7 +122,7 @@ module Slimmer
|
|
|
117
122
|
process(processors,body,template('admin'))
|
|
118
123
|
end
|
|
119
124
|
|
|
120
|
-
def success(request,body)
|
|
125
|
+
def success(source_request, request, body)
|
|
121
126
|
processors = [
|
|
122
127
|
TitleInserter.new(),
|
|
123
128
|
TagMover.new(),
|
|
@@ -126,6 +131,7 @@ module Slimmer
|
|
|
126
131
|
HeaderContextInserter.new(),
|
|
127
132
|
SectionInserter.new(),
|
|
128
133
|
GoogleAnalyticsConfigurator.new(request.env),
|
|
134
|
+
RelatedItemsInserter.new(template('related.raw'), source_request),
|
|
129
135
|
]
|
|
130
136
|
|
|
131
137
|
template_name = request.env.has_key?(TEMPLATE_HEADER) ? request.env[TEMPLATE_HEADER] : 'wrapper'
|
data/lib/slimmer/version.rb
CHANGED
data/lib/slimmer.rb
CHANGED
|
@@ -27,6 +27,7 @@ module Slimmer
|
|
|
27
27
|
autoload :UrlRewriter, 'slimmer/url_rewriter'
|
|
28
28
|
autoload :HeaderContextInserter, 'slimmer/header_context_inserter'
|
|
29
29
|
autoload :GoogleAnalyticsConfigurator, 'slimmer/google_analytics_configurator'
|
|
30
|
+
autoload :RelatedItemsInserter, 'slimmer/related_items_inserter'
|
|
30
31
|
|
|
31
32
|
class TemplateNotFoundException < StandardError; end
|
|
32
33
|
class CouldNotRetrieveTemplate < StandardError; end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<% if artefact && artefact.present? && artefact.related_items.size > 0 %>
|
|
2
|
+
|
|
3
|
+
<!-- related -->
|
|
4
|
+
<div class="related-positioning">
|
|
5
|
+
<div class="related-container">
|
|
6
|
+
|
|
7
|
+
<div class="related">
|
|
8
|
+
<div class="inner group">
|
|
9
|
+
<h2>Related tools & topics</h2>
|
|
10
|
+
<nav role="navigation">
|
|
11
|
+
<ul>
|
|
12
|
+
<% (artefact.related_items || []).each do |item| %>
|
|
13
|
+
<% if item.artefact %>
|
|
14
|
+
<li class="<%= h(item.artefact.kind) %>">
|
|
15
|
+
<a href="/<%= h(item.artefact.slug) %>"><%= h(item.artefact.name) %></a>
|
|
16
|
+
</li>
|
|
17
|
+
<% end %>
|
|
18
|
+
<% end %>
|
|
19
|
+
<% if artefact.section %>
|
|
20
|
+
<li class="related-topic"><a href="/browse/<%= h(artefact.section.parameterize) %>">View more in <span><%= h(artefact.section) %>→</span></a></li>
|
|
21
|
+
<% end %>
|
|
22
|
+
</ul>
|
|
23
|
+
</nav>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<!-- end related -->
|
|
30
|
+
<% end %>
|
data/test/test_helper.rb
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
require_relative '../lib/slimmer'
|
|
2
2
|
require 'minitest/autorun'
|
|
3
|
+
require 'minitest/unit'
|
|
3
4
|
require 'rack/test'
|
|
4
5
|
require 'webmock/minitest'
|
|
6
|
+
require 'json'
|
|
7
|
+
require 'logger'
|
|
5
8
|
|
|
6
9
|
WebMock.disable_net_connect!
|
|
10
|
+
ENV['FACTER_govuk_platform'] = 'test'
|
|
7
11
|
|
|
8
12
|
class MiniTest::Unit::TestCase
|
|
9
13
|
def as_nokogiri(html_string)
|
|
@@ -22,7 +26,7 @@ end
|
|
|
22
26
|
class SlimmerIntegrationTest < MiniTest::Unit::TestCase
|
|
23
27
|
include Rack::Test::Methods
|
|
24
28
|
|
|
25
|
-
def self.given_response(code, body, headers={})
|
|
29
|
+
def self.given_response(code, body, headers={}, url="/")
|
|
26
30
|
define_method(:app) do
|
|
27
31
|
inner_app = proc { |env|
|
|
28
32
|
[code, headers.merge("Content-Type" => "text/html"), body]
|
|
@@ -35,19 +39,25 @@ class SlimmerIntegrationTest < MiniTest::Unit::TestCase
|
|
|
35
39
|
end
|
|
36
40
|
|
|
37
41
|
define_method(:setup) do
|
|
42
|
+
additional_setup if self.class.method_defined? :additional_setup
|
|
38
43
|
template_name = case code
|
|
39
44
|
when 200 then 'wrapper'
|
|
40
45
|
when 404 then '404'
|
|
41
46
|
else '500'
|
|
42
47
|
end
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
get "/"
|
|
49
|
+
use_template(template_name)
|
|
50
|
+
use_template('related.raw')
|
|
51
|
+
get url
|
|
48
52
|
end
|
|
49
53
|
end
|
|
50
54
|
|
|
55
|
+
def use_template(template_name)
|
|
56
|
+
template = File.read File.dirname(__FILE__) + "/fixtures/#{template_name}.html.erb"
|
|
57
|
+
stub_request(:get, "http://template.local/templates/#{template_name}.html.erb").
|
|
58
|
+
to_return(:body => template)
|
|
59
|
+
end
|
|
60
|
+
|
|
51
61
|
private
|
|
52
62
|
|
|
53
63
|
def assert_not_rendered_in_template(content)
|
|
@@ -63,7 +73,14 @@ class SlimmerIntegrationTest < MiniTest::Unit::TestCase
|
|
|
63
73
|
end
|
|
64
74
|
end
|
|
65
75
|
element = Nokogiri::HTML.parse(last_response.body).at_css(selector)
|
|
66
|
-
assert element, message
|
|
67
|
-
|
|
76
|
+
assert element, message + ", but selector not found."
|
|
77
|
+
if content
|
|
78
|
+
message << ". But found #{element.inner_html.to_s}"
|
|
79
|
+
if content.is_a?(Regexp)
|
|
80
|
+
assert_match content, element.inner_html.to_s, message
|
|
81
|
+
else
|
|
82
|
+
assert_equal content, element.inner_html.to_s, message
|
|
83
|
+
end
|
|
84
|
+
end
|
|
68
85
|
end
|
|
69
86
|
end
|
data/test/typical_usage_test.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "test_helper"
|
|
2
|
+
require "gds_api/test_helpers/panopticon"
|
|
2
3
|
|
|
3
4
|
module TypicalUsage
|
|
4
5
|
|
|
@@ -53,6 +54,56 @@ module TypicalUsage
|
|
|
53
54
|
def test_should_insert_meta_navigation_links_into_the_navigation
|
|
54
55
|
assert_rendered_in_template "nav[role=navigation] li a[href='/this_section']", "This section"
|
|
55
56
|
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class ResponseWithRelatedItemsTest < SlimmerIntegrationTest
|
|
61
|
+
include GdsApi::TestHelpers::Panopticon
|
|
62
|
+
|
|
63
|
+
def additional_setup
|
|
64
|
+
panopticon_has_metadata(
|
|
65
|
+
'slug' => 'some-slug',
|
|
66
|
+
'title' => 'Example document',
|
|
67
|
+
'related_items' => [
|
|
68
|
+
{
|
|
69
|
+
'artefact' => {
|
|
70
|
+
'kind' => 'guide',
|
|
71
|
+
'name' => 'How to test computer software automatically & ensure that 2>1',
|
|
72
|
+
'slug' => 'how-to-test-computer-software-automatically',
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
class CitizenRelatedItemsTest < ResponseWithRelatedItemsTest
|
|
81
|
+
given_response 200, %{
|
|
82
|
+
<html>
|
|
83
|
+
<body class="citizen">
|
|
84
|
+
<div id="wrapper">The body of the page<div id="related-items"></div></div>
|
|
85
|
+
</body>
|
|
86
|
+
</html>
|
|
87
|
+
}, {}, "/some-slug"
|
|
88
|
+
|
|
89
|
+
def test_should_insert_related_items_block
|
|
90
|
+
assert_rendered_in_template "div.related nav li.guide a", "How to test computer software automatically & ensure that 2>1"
|
|
91
|
+
assert_rendered_in_template "div.related nav li.guide", %r{href="/how-to-test-computer-software-automatically"}
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
class NonCitizentRelatedItemsTest < ResponseWithRelatedItemsTest
|
|
96
|
+
given_response 200, %{
|
|
97
|
+
<html>
|
|
98
|
+
<body class="noncitizen">
|
|
99
|
+
<div id="wrapper">The body of the page<div id="related-items"></div></div>
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
102
|
+
}, {}, "/some-slug"
|
|
103
|
+
|
|
104
|
+
def test_should_not_insert_related_items_block
|
|
105
|
+
assert_rendered_in_template "div#related-items", ""
|
|
106
|
+
end
|
|
56
107
|
end
|
|
57
108
|
|
|
58
109
|
class HeaderContextResponseTest < SlimmerIntegrationTest
|
metadata
CHANGED
|
@@ -1,136 +1,150 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: slimmer
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.19
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
5
4
|
prerelease:
|
|
5
|
+
version: 1.1.20
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
7
|
+
authors:
|
|
8
8
|
- Ben Griffiths
|
|
9
9
|
- James Stewart
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
|
|
14
|
+
date: 2012-01-12 00:00:00 Z
|
|
15
|
+
dependencies:
|
|
16
|
+
- !ruby/object:Gem::Dependency
|
|
16
17
|
name: nokogiri
|
|
17
|
-
requirement: &
|
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
18
19
|
none: false
|
|
19
|
-
requirements:
|
|
20
|
+
requirements:
|
|
20
21
|
- - ~>
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
22
23
|
version: 1.5.0
|
|
23
24
|
type: :runtime
|
|
24
25
|
prerelease: false
|
|
25
|
-
version_requirements: *
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
26
|
+
version_requirements: *id001
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
27
28
|
name: rack
|
|
28
|
-
requirement: &
|
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
29
30
|
none: false
|
|
30
|
-
requirements:
|
|
31
|
+
requirements:
|
|
31
32
|
- - ~>
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
33
34
|
version: 1.3.5
|
|
34
35
|
type: :runtime
|
|
35
36
|
prerelease: false
|
|
36
|
-
version_requirements: *
|
|
37
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
+
version_requirements: *id002
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
38
39
|
name: plek
|
|
39
|
-
requirement: &
|
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
40
41
|
none: false
|
|
41
|
-
requirements:
|
|
42
|
-
- -
|
|
43
|
-
- !ruby/object:Gem::Version
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
44
45
|
version: 0.1.8
|
|
45
46
|
type: :runtime
|
|
46
47
|
prerelease: false
|
|
47
|
-
version_requirements: *
|
|
48
|
-
- !ruby/object:Gem::Dependency
|
|
48
|
+
version_requirements: *id003
|
|
49
|
+
- !ruby/object:Gem::Dependency
|
|
49
50
|
name: json
|
|
50
|
-
requirement: &
|
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
51
52
|
none: false
|
|
52
|
-
requirements:
|
|
53
|
-
- -
|
|
54
|
-
- !ruby/object:Gem::Version
|
|
55
|
-
version:
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: "0"
|
|
56
57
|
type: :runtime
|
|
57
58
|
prerelease: false
|
|
58
|
-
version_requirements: *
|
|
59
|
-
- !ruby/object:Gem::Dependency
|
|
59
|
+
version_requirements: *id004
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
60
61
|
name: null_logger
|
|
61
|
-
requirement: &
|
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
62
63
|
none: false
|
|
63
|
-
requirements:
|
|
64
|
-
- -
|
|
65
|
-
- !ruby/object:Gem::Version
|
|
66
|
-
version:
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: "0"
|
|
67
68
|
type: :runtime
|
|
68
69
|
prerelease: false
|
|
69
|
-
version_requirements: *
|
|
70
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
+
version_requirements: *id005
|
|
71
|
+
- !ruby/object:Gem::Dependency
|
|
72
|
+
name: gds-api-adapters
|
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
74
|
+
none: false
|
|
75
|
+
requirements:
|
|
76
|
+
- - ~>
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 0.0.33
|
|
79
|
+
type: :development
|
|
80
|
+
prerelease: false
|
|
81
|
+
version_requirements: *id006
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
71
83
|
name: rake
|
|
72
|
-
requirement: &
|
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
|
73
85
|
none: false
|
|
74
|
-
requirements:
|
|
86
|
+
requirements:
|
|
75
87
|
- - ~>
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
77
89
|
version: 0.9.2.2
|
|
78
90
|
type: :development
|
|
79
91
|
prerelease: false
|
|
80
|
-
version_requirements: *
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
92
|
+
version_requirements: *id007
|
|
93
|
+
- !ruby/object:Gem::Dependency
|
|
82
94
|
name: rack-test
|
|
83
|
-
requirement: &
|
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
|
84
96
|
none: false
|
|
85
|
-
requirements:
|
|
97
|
+
requirements:
|
|
86
98
|
- - ~>
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
88
100
|
version: 0.6.1
|
|
89
101
|
type: :development
|
|
90
102
|
prerelease: false
|
|
91
|
-
version_requirements: *
|
|
92
|
-
- !ruby/object:Gem::Dependency
|
|
103
|
+
version_requirements: *id008
|
|
104
|
+
- !ruby/object:Gem::Dependency
|
|
93
105
|
name: mocha
|
|
94
|
-
requirement: &
|
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
|
95
107
|
none: false
|
|
96
|
-
requirements:
|
|
108
|
+
requirements:
|
|
97
109
|
- - ~>
|
|
98
|
-
- !ruby/object:Gem::Version
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
99
111
|
version: 0.9.12
|
|
100
112
|
type: :development
|
|
101
113
|
prerelease: false
|
|
102
|
-
version_requirements: *
|
|
103
|
-
- !ruby/object:Gem::Dependency
|
|
114
|
+
version_requirements: *id009
|
|
115
|
+
- !ruby/object:Gem::Dependency
|
|
104
116
|
name: webmock
|
|
105
|
-
requirement: &
|
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
|
106
118
|
none: false
|
|
107
|
-
requirements:
|
|
119
|
+
requirements:
|
|
108
120
|
- - ~>
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
121
|
+
- !ruby/object:Gem::Version
|
|
122
|
+
version: "1.7"
|
|
111
123
|
type: :development
|
|
112
124
|
prerelease: false
|
|
113
|
-
version_requirements: *
|
|
114
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
+
version_requirements: *id010
|
|
126
|
+
- !ruby/object:Gem::Dependency
|
|
115
127
|
name: therubyracer
|
|
116
|
-
requirement: &
|
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
|
117
129
|
none: false
|
|
118
|
-
requirements:
|
|
119
|
-
- -
|
|
120
|
-
- !ruby/object:Gem::Version
|
|
121
|
-
version:
|
|
130
|
+
requirements:
|
|
131
|
+
- - ">="
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: "0"
|
|
122
134
|
type: :development
|
|
123
135
|
prerelease: false
|
|
124
|
-
version_requirements: *
|
|
136
|
+
version_requirements: *id011
|
|
125
137
|
description: Rack middleware for skinning pages using a specific template
|
|
126
|
-
email:
|
|
138
|
+
email:
|
|
127
139
|
- bengriffiths@gmail.com
|
|
128
140
|
- james.stewart@digital.cabinet-office.gov.uk
|
|
129
|
-
executables:
|
|
141
|
+
executables:
|
|
130
142
|
- render_slimmer_error
|
|
131
143
|
extensions: []
|
|
144
|
+
|
|
132
145
|
extra_rdoc_files: []
|
|
133
|
-
|
|
146
|
+
|
|
147
|
+
files:
|
|
134
148
|
- README.md
|
|
135
149
|
- CHANGELOG.md
|
|
136
150
|
- lib/slimmer/admin_title_inserter.rb
|
|
@@ -142,6 +156,7 @@ files:
|
|
|
142
156
|
- lib/slimmer/header_context_inserter.rb
|
|
143
157
|
- lib/slimmer/headers.rb
|
|
144
158
|
- lib/slimmer/railtie.rb
|
|
159
|
+
- lib/slimmer/related_items_inserter.rb
|
|
145
160
|
- lib/slimmer/section_inserter.rb
|
|
146
161
|
- lib/slimmer/skin.rb
|
|
147
162
|
- lib/slimmer/tag_mover.rb
|
|
@@ -155,6 +170,7 @@ files:
|
|
|
155
170
|
- Rakefile
|
|
156
171
|
- test/fixtures/404.html.erb
|
|
157
172
|
- test/fixtures/500.html.erb
|
|
173
|
+
- test/fixtures/related.raw.html.erb
|
|
158
174
|
- test/fixtures/wrapper.html.erb
|
|
159
175
|
- test/google_analytics_test.rb
|
|
160
176
|
- test/headers_test.rb
|
|
@@ -166,37 +182,41 @@ files:
|
|
|
166
182
|
- bin/render_slimmer_error
|
|
167
183
|
homepage: http://github.com/alphagov/slimmer
|
|
168
184
|
licenses: []
|
|
185
|
+
|
|
169
186
|
post_install_message:
|
|
170
187
|
rdoc_options: []
|
|
171
|
-
|
|
188
|
+
|
|
189
|
+
require_paths:
|
|
172
190
|
- lib
|
|
173
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
192
|
none: false
|
|
175
|
-
requirements:
|
|
176
|
-
- -
|
|
177
|
-
- !ruby/object:Gem::Version
|
|
178
|
-
|
|
179
|
-
segments:
|
|
193
|
+
requirements:
|
|
194
|
+
- - ">="
|
|
195
|
+
- !ruby/object:Gem::Version
|
|
196
|
+
hash: 4024382224342024618
|
|
197
|
+
segments:
|
|
180
198
|
- 0
|
|
181
|
-
|
|
182
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
|
+
version: "0"
|
|
200
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
201
|
none: false
|
|
184
|
-
requirements:
|
|
185
|
-
- -
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
|
|
188
|
-
segments:
|
|
202
|
+
requirements:
|
|
203
|
+
- - ">="
|
|
204
|
+
- !ruby/object:Gem::Version
|
|
205
|
+
hash: 4024382224342024618
|
|
206
|
+
segments:
|
|
189
207
|
- 0
|
|
190
|
-
|
|
208
|
+
version: "0"
|
|
191
209
|
requirements: []
|
|
210
|
+
|
|
192
211
|
rubyforge_project: slimmer
|
|
193
|
-
rubygems_version: 1.8.
|
|
212
|
+
rubygems_version: 1.8.13
|
|
194
213
|
signing_key:
|
|
195
214
|
specification_version: 3
|
|
196
215
|
summary: Thinner than the skinner
|
|
197
|
-
test_files:
|
|
216
|
+
test_files:
|
|
198
217
|
- test/fixtures/404.html.erb
|
|
199
218
|
- test/fixtures/500.html.erb
|
|
219
|
+
- test/fixtures/related.raw.html.erb
|
|
200
220
|
- test/fixtures/wrapper.html.erb
|
|
201
221
|
- test/google_analytics_test.rb
|
|
202
222
|
- test/headers_test.rb
|