slimmer 9.1.0 → 9.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +63 -33
- data/lib/slimmer/skin.rb +1 -3
- data/lib/slimmer/test_templates/header_footer_only.html +3 -3
- data/lib/slimmer/test_templates/wrapper.html +3 -3
- data/lib/slimmer/version.rb +1 -1
- data/test/skin_test.rb +11 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 198037ca5d17fc3fc1467bde87d433ff877907e2
|
4
|
+
data.tar.gz: c1c0aaf2f5b4339c30eea89e888b8eea65bfe9af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcca6785e9a96d4cf4053ee4d2c2d549390c6b23a9a85f91d6e3259a1916d3a29979ad2014c9c3ca787c70c3ee8db8a532903b418c6c17b187acb600ec691110
|
7
|
+
data.tar.gz: bfa3b5cc6ea1831bf2b040bc5a3e3be0699e060e47430e2d96931fb816db0e99df8844467a0f30851ef38bde54d59542624e9cdb7d418bcd5338da31474c8284
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# Slimmer
|
2
|
+
|
1
3
|
Slimmer provides Rack middleware for applying a standard header and footer around pages
|
2
4
|
returned by a Ruby (Rack) application.
|
3
5
|
|
@@ -13,9 +15,11 @@ Plek gem to look for the 'static' (previously 'assets') host for the current env
|
|
13
15
|
If you want to use your own set of templates you will need to specify the appropriate host
|
14
16
|
eg.
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
18
|
+
```rb
|
19
|
+
YourApp::Application.configure do
|
20
|
+
config.slimmer.asset_host = 'http://your.server.somewhere'
|
21
|
+
end
|
22
|
+
```
|
19
23
|
|
20
24
|
it expects to find templates in a folder called 'templates' on that host.
|
21
25
|
|
@@ -23,17 +27,23 @@ it expects to find templates in a folder called 'templates' on that host.
|
|
23
27
|
|
24
28
|
Slimmer will work as standard rack middleware:
|
25
29
|
|
26
|
-
|
30
|
+
```rb
|
31
|
+
use Slimmer::App
|
32
|
+
```
|
27
33
|
|
28
34
|
or
|
29
35
|
|
30
|
-
|
36
|
+
```rb
|
37
|
+
use Slimmer::App, :asset_host => "http://my.alternative.host"
|
38
|
+
```
|
31
39
|
|
32
40
|
## Asset tag helpers
|
33
41
|
|
34
42
|
To get asset tag helpers to point to your external asset server, add
|
35
43
|
|
36
|
-
|
44
|
+
```rb
|
45
|
+
config.action_controller.asset_host = "http://my.alternative.host"
|
46
|
+
```
|
37
47
|
|
38
48
|
to `application.rb`.
|
39
49
|
|
@@ -43,23 +53,29 @@ A specific template can be requested by giving its name in the `X-Slimmer-Templa
|
|
43
53
|
|
44
54
|
In a controller action, you can do this by calling `slimmer_template`.
|
45
55
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
56
|
+
```rb
|
57
|
+
class MyController < ApplicationController
|
58
|
+
def index
|
59
|
+
slimmer_template 'homepage'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
```
|
51
63
|
|
52
64
|
There's also a macro style method which will affect all actions:
|
53
65
|
|
54
|
-
|
55
|
-
|
56
|
-
|
66
|
+
```rb
|
67
|
+
class YourController < ApplicationController
|
68
|
+
slimmer_template :admin
|
69
|
+
end
|
70
|
+
```
|
57
71
|
|
58
72
|
To get this, include Slimmer::Template in your ApplicationController:
|
59
73
|
|
60
|
-
|
61
|
-
|
62
|
-
|
74
|
+
```rb
|
75
|
+
class ApplicationController < ActionController::Base
|
76
|
+
include Slimmer::Template
|
77
|
+
end
|
78
|
+
```
|
63
79
|
|
64
80
|
## Logging
|
65
81
|
|
@@ -67,9 +83,11 @@ Slimmer can be configured with a logger by passing in a logger instance
|
|
67
83
|
(anything that quacks like an instance of `Logger`). For example, to log
|
68
84
|
to the Rails log, put the following in an initializer:
|
69
85
|
|
70
|
-
|
71
|
-
|
72
|
-
|
86
|
+
```rb
|
87
|
+
YourApp::Application.configure do
|
88
|
+
config.slimmer.logger = Rails.logger
|
89
|
+
end
|
90
|
+
```
|
73
91
|
|
74
92
|
**Note:** This can't be in `application.rb` because the Rails logger hasn't been initialized by then.
|
75
93
|
|
@@ -77,21 +95,27 @@ to the Rails log, put the following in an initializer:
|
|
77
95
|
|
78
96
|
By default if you pass in a logger with its log level set to `debug`, slimmer will dup this logger and reduce the level to `info`. (Slimmer's debug logging is very noisy). To prevent this, set the `enable_debugging` option to true. e.g. for Rails:
|
79
97
|
|
80
|
-
|
81
|
-
|
82
|
-
|
98
|
+
```rb
|
99
|
+
YourApp::Application.configure do
|
100
|
+
config.slimmer.enable_debugging = true
|
101
|
+
end
|
102
|
+
```
|
83
103
|
|
84
104
|
## Shared components
|
85
105
|
|
86
106
|
To use shared template components you need to include the shared template resolver
|
87
107
|
|
88
|
-
|
89
|
-
|
90
|
-
|
108
|
+
```rb
|
109
|
+
class ApplicationController < ActionController::Base
|
110
|
+
include Slimmer::SharedTemplates
|
111
|
+
end
|
112
|
+
```
|
91
113
|
|
92
114
|
This will make calls out to static when you try and render a partial prefixed with `govuk-component`:
|
93
115
|
|
94
|
-
|
116
|
+
```erb
|
117
|
+
<%= render partial: 'govuk-component/example_component' %>
|
118
|
+
```
|
95
119
|
|
96
120
|
You will need a copy of static running for the templates to be loaded from.
|
97
121
|
|
@@ -105,19 +129,25 @@ A test helper is included which returns a CSS selector for finding a given
|
|
105
129
|
component to assert that it was used. You can make it available in your tests
|
106
130
|
with:
|
107
131
|
|
108
|
-
|
109
|
-
|
132
|
+
```rb
|
133
|
+
require 'slimmer/test_helpers/shared_templates'
|
134
|
+
include Slimmer::TestHelpers::SharedTemplates
|
135
|
+
```
|
110
136
|
|
111
137
|
And then assert that the component has been used:
|
112
138
|
|
113
|
-
|
139
|
+
```rb
|
140
|
+
page.should have_css(shared_component_selector('metadata'))
|
141
|
+
```
|
114
142
|
|
115
143
|
Or look for one of the arguments to the component which will have been
|
116
144
|
`JSON.dump`ed inside the tag:
|
117
145
|
|
118
|
-
|
119
|
-
|
120
|
-
|
146
|
+
```rb
|
147
|
+
within(shared_component_selector('title')) do
|
148
|
+
expect(page).to have_content(expected_title_text)
|
149
|
+
end
|
150
|
+
```
|
121
151
|
|
122
152
|
## The name
|
123
153
|
|
data/lib/slimmer/skin.rb
CHANGED
@@ -28,9 +28,7 @@ module Slimmer
|
|
28
28
|
response.body
|
29
29
|
rescue RestClient::Exception => e
|
30
30
|
raise TemplateNotFoundException, "Unable to fetch: '#{template_name}' from '#{url}' because #{e}", caller
|
31
|
-
rescue Errno::ECONNREFUSED => e
|
32
|
-
raise CouldNotRetrieveTemplate, "Unable to fetch: '#{template_name}' from '#{url}' because #{e}", caller
|
33
|
-
rescue SocketError => e
|
31
|
+
rescue Errno::ECONNREFUSED, SocketError, OpenSSL::SSL::SSLError => e
|
34
32
|
raise CouldNotRetrieveTemplate, "Unable to fetch: '#{template_name}' from '#{url}' because #{e}", caller
|
35
33
|
end
|
36
34
|
|
@@ -16,8 +16,8 @@
|
|
16
16
|
|
17
17
|
<footer id="footer"></footer>
|
18
18
|
|
19
|
-
<script src="https://assets.
|
20
|
-
<script src="https://assets.
|
21
|
-
<script src="https://assets.
|
19
|
+
<script src="https://assets.publishing.service.gov.uk/static/govuk-template.js" type="text/javascript"></script>
|
20
|
+
<script src="https://assets.publishing.service.gov.uk/static/libs/jquery/jquery-1.7.2.js" type="text/javascript"></script>
|
21
|
+
<script src="https://assets.publishing.service.gov.uk/static/header-footer-only.js" type="text/javascript"></script>
|
22
22
|
</body>
|
23
23
|
</html>
|
@@ -16,8 +16,8 @@
|
|
16
16
|
|
17
17
|
<footer id="footer"></footer>
|
18
18
|
|
19
|
-
<script src="https://assets.
|
20
|
-
<script src="https://assets.
|
21
|
-
<script src="https://assets.
|
19
|
+
<script src="https://assets.publishing.service.gov.uk/static/govuk-template.js" type="text/javascript"></script>
|
20
|
+
<script src="https://assets.publishing.service.gov.uk/static/libs/jquery/jquery-1.7.2.js" type="text/javascript"></script>
|
21
|
+
<script src="https://assets.publishing.service.gov.uk/static/application.js" type="text/javascript"></script>
|
22
22
|
</body>
|
23
23
|
</html>
|
data/lib/slimmer/version.rb
CHANGED
data/test/skin_test.rb
CHANGED
@@ -84,6 +84,17 @@ describe Slimmer::Skin do
|
|
84
84
|
skin.template 'example'
|
85
85
|
end
|
86
86
|
end
|
87
|
+
|
88
|
+
it "should raise appropriate exception when encountering an SSL error" do
|
89
|
+
skin = Slimmer::Skin.new asset_host: "https://bad-ssl.domain/", cache: Slimmer::Cache.instance
|
90
|
+
|
91
|
+
expected_url = "https://bad-ssl.domain/templates/example.html.erb"
|
92
|
+
stub_request(:get, expected_url).to_raise(OpenSSL::SSL::SSLError)
|
93
|
+
|
94
|
+
assert_raises(Slimmer::CouldNotRetrieveTemplate) do
|
95
|
+
skin.template 'example'
|
96
|
+
end
|
97
|
+
end
|
87
98
|
end
|
88
99
|
|
89
100
|
describe "parsing artefact from header" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Griffiths
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-07-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -336,7 +336,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
336
336
|
version: '0'
|
337
337
|
requirements: []
|
338
338
|
rubyforge_project: slimmer
|
339
|
-
rubygems_version: 2.
|
339
|
+
rubygems_version: 2.5.1
|
340
340
|
signing_key:
|
341
341
|
specification_version: 4
|
342
342
|
summary: Thinner than the skinner
|