slimmer 5.1.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ # 6.0.0
2
+
3
+ * Change ComponentResolver to use a bespoke tag - `test-govuk-component` - when
4
+ running in a test, rather than `script`. Use `data-template` rather than
5
+ `class` to identify which template was used.
6
+ * Fix bug where Slimmer::TestHelpers::SharedTemplates#shared_component_selector
7
+ returned the wrong selector.
8
+
1
9
  # 5.1.0
2
10
 
3
11
  * `ComponentResolver#test_body` returns a JSON blob of the components keys and values instead of just the values.
@@ -3,6 +3,8 @@ require 'active_support/core_ext/string/inflections'
3
3
 
4
4
  module Slimmer
5
5
  class ComponentResolver < ::ActionView::Resolver
6
+ TEST_TAG_NAME = 'test-govuk-component'
7
+
6
8
  def self.caching
7
9
  # this turns off the default ActionView::Resolver caching which caches
8
10
  # all templates for the duration of the current process in production
@@ -62,7 +64,7 @@ module Slimmer
62
64
  end
63
65
 
64
66
  def test_body(path)
65
- %Q{<script type="text/component-source" class="#{path.parameterize}"><%= JSON.dump(local_assigns) %></script>}
67
+ %Q{<#{TEST_TAG_NAME} data-template="#{path.parameterize}"><%= JSON.dump(local_assigns) %></#{TEST_TAG_NAME}>}
66
68
  end
67
69
  end
68
70
  end
@@ -2,7 +2,7 @@ module Slimmer
2
2
  module TestHelpers
3
3
  module SharedTemplates
4
4
  def shared_component_selector(name)
5
- "div[class='govuk_component-#{name}']"
5
+ "#{Slimmer::ComponentResolver::TEST_TAG_NAME}[data-template='govuk_component-#{name}']"
6
6
  end
7
7
  end
8
8
  end
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '5.1.0'
2
+ VERSION = '6.0.0'
3
3
  end
@@ -23,7 +23,7 @@ describe Slimmer::ComponentResolver do
23
23
  @resolver.expects(:test?).returns(true)
24
24
 
25
25
  templates = @resolver.find_templates('name', 'govuk_component', false, {})
26
- assert_match /<script type="text\/component-source" class="govuk_component-name">/, templates.first.args[0]
26
+ assert_match /<test-govuk-component data-template="govuk_component-name">/, templates.first.args[0]
27
27
  end
28
28
  end
29
29
  end
@@ -0,0 +1,19 @@
1
+ require_relative "../test_helper"
2
+ require_relative "../../lib/slimmer/test_helpers/shared_templates"
3
+
4
+ describe Slimmer::TestHelpers::SharedTemplates do
5
+
6
+ let(:subject) {
7
+ class Dummy
8
+ include Slimmer::TestHelpers::SharedTemplates
9
+ end
10
+ }
11
+
12
+ describe 'shared_component_selector' do
13
+ it 'should generate a selector for components' do
14
+ outcome = subject.new.shared_component_selector('flux_capacitor')
15
+ expected = "test-govuk-component[data-template='govuk_component-flux_capacitor']"
16
+ assert_equal expected, outcome
17
+ end
18
+ end
19
+ end
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: 5.1.0
4
+ version: 6.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-03 00:00:00.000000000 Z
13
+ date: 2014-12-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &12214100 !ruby/object:Gem::Requirement
17
+ requirement: &19898920 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.5.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *12214100
25
+ version_requirements: *19898920
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rack
28
- requirement: &12241700 !ruby/object:Gem::Requirement
28
+ requirement: &19914280 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.3.5
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *12241700
36
+ version_requirements: *19914280
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: plek
39
- requirement: &12239840 !ruby/object:Gem::Requirement
39
+ requirement: &19912620 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.1.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *12239840
47
+ version_requirements: *19912620
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json
50
- requirement: &12239120 !ruby/object:Gem::Requirement
50
+ requirement: &19911480 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *12239120
58
+ version_requirements: *19911480
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: null_logger
61
- requirement: &12237920 !ruby/object:Gem::Requirement
61
+ requirement: &19910020 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *12237920
69
+ version_requirements: *19910020
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rest-client
72
- requirement: &12236540 !ruby/object:Gem::Requirement
72
+ requirement: &19908180 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *12236540
80
+ version_requirements: *19908180
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: activesupport
83
- requirement: &12235640 !ruby/object:Gem::Requirement
83
+ requirement: &19907040 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *12235640
91
+ version_requirements: *19907040
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: minitest
94
- requirement: &12247000 !ruby/object:Gem::Requirement
94
+ requirement: &19931140 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '5.4'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *12247000
102
+ version_requirements: *19931140
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rake
105
- requirement: &12245280 !ruby/object:Gem::Requirement
105
+ requirement: &19954060 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: 0.9.2.2
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *12245280
113
+ version_requirements: *19954060
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: rack-test
116
- requirement: &12243820 !ruby/object:Gem::Requirement
116
+ requirement: &19952100 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ~>
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: 0.6.1
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *12243820
124
+ version_requirements: *19952100
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: mocha
127
- requirement: &12243140 !ruby/object:Gem::Requirement
127
+ requirement: &19950820 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ~>
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '1.1'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *12243140
135
+ version_requirements: *19950820
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: webmock
138
- requirement: &12270980 !ruby/object:Gem::Requirement
138
+ requirement: &19949700 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - =
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: 1.18.0
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *12270980
146
+ version_requirements: *19949700
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: therubyracer
149
- requirement: &12268780 !ruby/object:Gem::Requirement
149
+ requirement: &19972060 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ~>
@@ -154,10 +154,10 @@ dependencies:
154
154
  version: 0.10.2
155
155
  type: :development
156
156
  prerelease: false
157
- version_requirements: *12268780
157
+ version_requirements: *19972060
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: gem_publisher
160
- requirement: &12266940 !ruby/object:Gem::Requirement
160
+ requirement: &19970640 !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
163
163
  - - ~>
@@ -165,10 +165,10 @@ dependencies:
165
165
  version: 1.1.1
166
166
  type: :development
167
167
  prerelease: false
168
- version_requirements: *12266940
168
+ version_requirements: *19970640
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: gds-api-adapters
171
- requirement: &12265940 !ruby/object:Gem::Requirement
171
+ requirement: &19969780 !ruby/object:Gem::Requirement
172
172
  none: false
173
173
  requirements:
174
174
  - - =
@@ -176,10 +176,10 @@ dependencies:
176
176
  version: 2.7.1
177
177
  type: :development
178
178
  prerelease: false
179
- version_requirements: *12265940
179
+ version_requirements: *19969780
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: timecop
182
- requirement: &12264600 !ruby/object:Gem::Requirement
182
+ requirement: &19968420 !ruby/object:Gem::Requirement
183
183
  none: false
184
184
  requirements:
185
185
  - - ~>
@@ -187,7 +187,7 @@ dependencies:
187
187
  version: 0.5.1
188
188
  type: :development
189
189
  prerelease: false
190
- version_requirements: *12264600
190
+ version_requirements: *19968420
191
191
  description: Rack middleware for skinning pages using a specific template
192
192
  email:
193
193
  - bengriffiths@gmail.com
@@ -199,6 +199,7 @@ extra_rdoc_files: []
199
199
  files:
200
200
  - README.md
201
201
  - CHANGELOG.md
202
+ - lib/slimmer/i18n_backend.rb
202
203
  - lib/slimmer/railtie.rb
203
204
  - lib/slimmer/headers.rb
204
205
  - lib/slimmer/skin.rb
@@ -215,7 +216,6 @@ files:
215
216
  - lib/slimmer/shared_templates.rb
216
217
  - lib/slimmer/govuk_request_id.rb
217
218
  - lib/slimmer/template.rb
218
- - lib/slimmer/component_i18n_backend.rb
219
219
  - lib/slimmer/component_resolver.rb
220
220
  - lib/slimmer/cache.rb
221
221
  - lib/slimmer/processors/header_context_inserter.rb
@@ -242,6 +242,7 @@ files:
242
242
  - Rakefile
243
243
  - test/component_resolver_test.rb
244
244
  - test/changelog_test.rb
245
+ - test/test_helpers/shared_templates_test.rb
245
246
  - test/typical_usage_test.rb
246
247
  - test/skin_test.rb
247
248
  - test/deprecated_usage_test.rb
@@ -289,7 +290,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
290
  version: '0'
290
291
  segments:
291
292
  - 0
292
- hash: 3888968595251477904
293
+ hash: -1405185890624183511
293
294
  required_rubygems_version: !ruby/object:Gem::Requirement
294
295
  none: false
295
296
  requirements:
@@ -298,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
299
  version: '0'
299
300
  segments:
300
301
  - 0
301
- hash: 3888968595251477904
302
+ hash: -1405185890624183511
302
303
  requirements: []
303
304
  rubyforge_project: slimmer
304
305
  rubygems_version: 1.8.11
@@ -308,6 +309,7 @@ summary: Thinner than the skinner
308
309
  test_files:
309
310
  - test/component_resolver_test.rb
310
311
  - test/changelog_test.rb
312
+ - test/test_helpers/shared_templates_test.rb
311
313
  - test/typical_usage_test.rb
312
314
  - test/skin_test.rb
313
315
  - test/deprecated_usage_test.rb