govuk_navigation_helpers 1.0.0 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4176c900f1ecc9f326253506091426c84a04185
4
- data.tar.gz: 1382b484bfbdf27857da344c9eab90ea44f6cecb
3
+ metadata.gz: ae03499e445926565f940d61ac2ca8a9e6566f40
4
+ data.tar.gz: e4b3be57785db7c30e2846cb9b2d410d1b3f4309
5
5
  SHA512:
6
- metadata.gz: 8382fe5f7de451bdba0ca038f1e0a481ede4a19d9e05231178e5c7e2fa166783e11896755ae7c999330760f73c3b5ac0bf6a18b56391f054803d88c467f103a7
7
- data.tar.gz: f8862c700764b6e0fea0cc61a6307b5f2661d255ef99ec350620f4233913b0dde4d83d2f996c53ee814c85825d300fb088bc4c95aa8ad365f78766792098d078
6
+ metadata.gz: 08da4b0086ef29b400da2c05c5b87bbc5219656cefa84fbdf139beefc73e8e150a95ac81c7d4ee08aa412ead50289bff2df652149aa3d8cacb1091d61ce0d5a3
7
+ data.tar.gz: 3dd946e21c66b799ad1119e2a97a8db3d1cefb3d022e7fc04e6b9542d7d05a409f44d2d429815eaeaab70775738ea8e322fa09a713cda3c927aed34be8916a85
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 2.0.0
2
+
3
+ * Functionality to generate data for the related items component
4
+ * Breadcrumbs are now returned in a hash so that they can be passed to
5
+ `govuk_components` directly.
6
+
1
7
  ## 1.0.0
2
8
 
3
9
  * Functionality to generate data for the breadcrumb component
data/README.md CHANGED
@@ -36,7 +36,11 @@ end
36
36
  Render the component:
37
37
 
38
38
  ```ruby
39
- <%= render partial: 'govuk_component/breadcrumbs', locals: { breadcrumbs: @navigation.breadcrumbs }
39
+ <%= render partial: 'govuk_component/breadcrumbs', locals: @navigation.breadcrumbs %>
40
+ ```
41
+
42
+ ```ruby
43
+ <%= render partial: 'govuk_component/related_items', locals: @navigation.related_items %>
40
44
  ```
41
45
 
42
46
  ### Running the test suite
@@ -53,4 +57,4 @@ To run a Yard server locally to preview documentation, run:
53
57
 
54
58
  ## Licence
55
59
 
56
- [MIT License](LICENCE.txt)
60
+ [MIT License](LICENCE.txt)
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "govuk-lint", "~> 1.2.1"
26
26
  spec.add_development_dependency "pry-byebug", "~> 3.4"
27
27
  spec.add_development_dependency "yard", "~> 0.8"
28
- spec.add_development_dependency "govuk_schemas", "~> 0.1"
28
+ spec.add_development_dependency "govuk_schemas", "~> 1.0"
29
29
 
30
30
  spec.required_ruby_version = ">= 2.3.1"
31
31
  end
@@ -20,7 +20,9 @@ module GovukNavigationHelpers
20
20
 
21
21
  ordered_parents << { title: "Home", url: "/" }
22
22
 
23
- ordered_parents.reverse
23
+ {
24
+ breadcrumbs: ordered_parents.reverse
25
+ }
24
26
  end
25
27
 
26
28
  private
@@ -0,0 +1,47 @@
1
+ module GovukNavigationHelpers
2
+ # Simple wrapper around a content store representation of a content item. Works
3
+ # for both the main content item and the expanded links in the links hash.
4
+ #
5
+ # @private
6
+ class ContentItem
7
+ attr_reader :content_store_response
8
+
9
+ def initialize(content_store_response)
10
+ @content_store_response = content_store_response
11
+ end
12
+
13
+ def parent
14
+ parent_item = content_store_response.dig("links", "parent", 0)
15
+ return unless parent_item
16
+ ContentItem.new(parent_item)
17
+ end
18
+
19
+ def mainstream_browse_pages
20
+ content_store_response.dig("links", "mainstream_browse_pages").to_a.map do |link|
21
+ ContentItem.new(link)
22
+ end
23
+ end
24
+
25
+ def title
26
+ content_store_response.fetch("title")
27
+ end
28
+
29
+ def base_path
30
+ content_store_response.fetch("base_path")
31
+ end
32
+
33
+ def content_id
34
+ content_store_response.fetch("content_id")
35
+ end
36
+
37
+ def related_links
38
+ content_store_response.dig("links", "ordered_related_items").to_a.map do |link|
39
+ ContentItem.new(link)
40
+ end
41
+ end
42
+
43
+ def external_links
44
+ content_store_response.dig("details", "external_related_links").to_a
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ module GovukNavigationHelpers
2
+ # Take a content item and group the related links according to an algorithm
3
+ # that is intended to display the related links into three groups, depending
4
+ # on how much they have in common with the main content item.
5
+ #
6
+ # @private
7
+ class GroupedRelatedLinks
8
+ attr_reader :content_item
9
+
10
+ def initialize(content_item)
11
+ @content_item = content_item
12
+ end
13
+
14
+ # This will return related items that are tagged to the same mainstream
15
+ # browse page as the main content item.
16
+ def tagged_to_same_mainstream_browse_page
17
+ return [] unless content_item.parent
18
+
19
+ @tagged_to_same_mainstream_browse_page ||= content_item.related_links.select do |related_item|
20
+ related_item.mainstream_browse_pages.map(&:content_id).include?(content_item.parent.content_id)
21
+ end
22
+ end
23
+
24
+ # This will return related items whose parents are tagged to the same mainstream
25
+ # browse page as the main content item's parent.
26
+ def parents_tagged_to_same_mainstream_browse_page
27
+ return [] unless content_item.parent && content_item.parent.parent
28
+
29
+ common_parent_content_ids = tagged_to_same_mainstream_browse_page.map(&:content_id)
30
+
31
+ @parents_tagged_to_same_mainstream_browse_page ||= content_item.related_links.select do |related_item|
32
+ next if common_parent_content_ids.include?(related_item.content_id)
33
+ related_item.mainstream_browse_pages.map(&:parent).map(&:content_id).include?(content_item.parent.parent.content_id)
34
+ end
35
+ end
36
+
37
+ # This will return related links that are tagged to mainstream browse
38
+ # pages unrelated to the main content item.
39
+ def tagged_to_different_mainstream_browse_pages
40
+ all_content_ids = (tagged_to_same_mainstream_browse_page + parents_tagged_to_same_mainstream_browse_page).map(&:content_id)
41
+
42
+ @tagged_to_different_mainstream_browse_pages ||= content_item.related_links.reject do |related_item|
43
+ all_content_ids.include?(related_item.content_id)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,92 @@
1
+ require 'govuk_navigation_helpers/grouped_related_links'
2
+ require 'govuk_navigation_helpers/content_item'
3
+
4
+ module GovukNavigationHelpers
5
+ # Generate data for the "Related Items" component
6
+ #
7
+ # http://govuk-component-guide.herokuapp.com/components/related_items
8
+ #
9
+ # The procedure to group the links is quite complicated. In short, related links
10
+ # are grouped by how related they are to the current page.
11
+ #
12
+ # The wiki page on related items has more information:
13
+ #
14
+ # https://gov-uk.atlassian.net/wiki/pages/viewpage.action?pageId=99876878
15
+ class RelatedItems
16
+ def initialize(content_item)
17
+ @content_item = ContentItem.new(content_item)
18
+ end
19
+
20
+ def related_items
21
+ {
22
+ sections: [
23
+ tagged_to_same_mainstream_browse_page_section,
24
+ parents_tagged_to_same_mainstream_browse_page_section,
25
+ tagged_to_different_mainstream_browse_pages_section,
26
+ related_external_links_section,
27
+ ].compact
28
+ }
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :content_item
34
+
35
+ def tagged_to_same_mainstream_browse_page_section
36
+ return unless grouped.tagged_to_same_mainstream_browse_page.any?
37
+
38
+ items = grouped.tagged_to_same_mainstream_browse_page.map do |related_item|
39
+ {
40
+ title: related_item.title,
41
+ url: related_item.base_path
42
+ }
43
+ end
44
+
45
+ { title: content_item.parent.title, url: content_item.parent.base_path, items: items }
46
+ end
47
+
48
+ def parents_tagged_to_same_mainstream_browse_page_section
49
+ return unless grouped.parents_tagged_to_same_mainstream_browse_page.any?
50
+
51
+ items = grouped.parents_tagged_to_same_mainstream_browse_page.map do |related_item|
52
+ {
53
+ title: related_item.title,
54
+ url: related_item.base_path
55
+ }
56
+ end
57
+
58
+ { title: content_item.parent.parent.title, url: content_item.parent.parent.base_path, items: items }
59
+ end
60
+
61
+ def tagged_to_different_mainstream_browse_pages_section
62
+ return unless grouped.tagged_to_different_mainstream_browse_pages.any?
63
+
64
+ items = grouped.tagged_to_different_mainstream_browse_pages.map do |related_item|
65
+ {
66
+ title: related_item.title,
67
+ url: related_item.base_path
68
+ }
69
+ end
70
+
71
+ { title: "Elsewhere on GOV.UK", items: items }
72
+ end
73
+
74
+ def related_external_links_section
75
+ return unless content_item.external_links.any?
76
+
77
+ items = content_item.external_links.map do |h|
78
+ {
79
+ title: h.fetch("title"),
80
+ url: h.fetch("url"),
81
+ rel: "external"
82
+ }
83
+ end
84
+
85
+ { title: "Elsewhere on the web", items: items }
86
+ end
87
+
88
+ def grouped
89
+ @grouped ||= GroupedRelatedLinks.new(content_item)
90
+ end
91
+ end
92
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukNavigationHelpers
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "2.0.0".freeze
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require "govuk_navigation_helpers/version"
2
2
  require "govuk_navigation_helpers/breadcrumbs"
3
+ require "govuk_navigation_helpers/related_items"
3
4
 
4
5
  module GovukNavigationHelpers
5
6
  class NavigationHelper
@@ -9,11 +10,20 @@ module GovukNavigationHelpers
9
10
 
10
11
  # Generate a breacrumb trail
11
12
  #
12
- # @return [Array<Hash>] Each item is a hash containing `:title` and `:url` for one link in the breadcrumb
13
+ # @return [Hash] Payload for the GOV.UK breadcrumbs component
14
+ # @see http://govuk-component-guide.herokuapp.com/components/breadcrumbs
13
15
  def breadcrumbs
14
16
  Breadcrumbs.new(content_item).breadcrumbs
15
17
  end
16
18
 
19
+ # Generate a related items payload
20
+ #
21
+ # @return [Hash] Payload for the GOV.UK Component
22
+ # @see http://govuk-component-guide.herokuapp.com/components/related_items
23
+ def related_items
24
+ RelatedItems.new(content_item).related_items
25
+ end
26
+
17
27
  private
18
28
 
19
29
  attr_reader :content_item
@@ -1,17 +1,11 @@
1
1
  require 'spec_helper'
2
- require 'govuk_navigation_helpers'
3
- require 'govuk_schemas'
4
2
 
5
3
  RSpec.describe GovukNavigationHelpers::Breadcrumbs do
6
4
  describe "#breadcrumbs" do
7
5
  it "can handle any valid content item" do
8
6
  generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
9
7
 
10
- 50.times do
11
- expect {
12
- described_class.new(generator.payload).breadcrumbs
13
- }.to_not raise_error
14
- end
8
+ expect { GovukNavigationHelpers::Breadcrumbs.new(generator.payload).breadcrumbs }.to_not raise_error
15
9
  end
16
10
 
17
11
  it "returns the root when parent is not specified" do
@@ -19,7 +13,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
19
13
  breadcrumbs = breadcrumbs_for(content_item)
20
14
 
21
15
  expect(breadcrumbs).to eq(
22
- [
16
+ breadcrumbs: [
23
17
  { title: "Home", url: "/" },
24
18
  ]
25
19
  )
@@ -30,7 +24,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
30
24
  breadcrumbs = breadcrumbs_for(content_item)
31
25
 
32
26
  expect(breadcrumbs).to eq(
33
- [
27
+ breadcrumbs: [
34
28
  { title: "Home", url: "/" },
35
29
  ]
36
30
  )
@@ -48,7 +42,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
48
42
  breadcrumbs = breadcrumbs_for(content_item)
49
43
 
50
44
  expect(breadcrumbs).to eq(
51
- [
45
+ breadcrumbs: [
52
46
  { title: "Home", url: "/" },
53
47
  { title: "A-parent", url: "/a-parent" }
54
48
  ]
@@ -77,7 +71,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
77
71
  breadcrumbs = breadcrumbs_for(content_item)
78
72
 
79
73
  expect(breadcrumbs).to eq(
80
- [
74
+ breadcrumbs: [
81
75
  { title: "Home", url: "/" },
82
76
  { title: "Another-parent", url: "/another-parent" },
83
77
  { title: "A-parent", url: "/a-parent" }
@@ -0,0 +1,267 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe GovukNavigationHelpers::RelatedItems do
4
+ def payload_for(content_item)
5
+ generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
6
+ fully_valid_content_item = generator.merge_and_validate(content_item)
7
+ GovukNavigationHelpers::NavigationHelper.new(fully_valid_content_item).related_items
8
+ end
9
+
10
+ describe "#related_items" do
11
+ it "can handle randomly generated content" do
12
+ generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
13
+
14
+ expect { payload_for(generator.payload) }.to_not raise_error
15
+ end
16
+
17
+ it "returns nothing if there are no related links" do
18
+ nothing = payload_for(
19
+ "details" => {
20
+ "external_related_links" => []
21
+ },
22
+ "links" => {
23
+ }
24
+ )
25
+
26
+ expect(nothing).to eql(sections: [])
27
+ end
28
+
29
+ it "returns an elswhere on GOV.UK section for related items with no browse pages in common" do
30
+ payload = payload_for(
31
+ "details" => {
32
+ "external_related_links" => []
33
+ },
34
+ "links" => {
35
+ "ordered_related_items" => [
36
+ {
37
+ "title" => "Foo",
38
+ "content_id" => "fdbf634c-06f5-43ea-915a-53b34b660353",
39
+ "base_path" => "/foo",
40
+ "locale" => "en"
41
+ }
42
+ ]
43
+ }
44
+ )
45
+
46
+ expect(payload).to eql(
47
+ sections: [
48
+ {
49
+ title: "Elsewhere on GOV.UK",
50
+ items: [
51
+ { title: "Foo", url: "/foo" },
52
+ ]
53
+ },
54
+ ]
55
+ )
56
+ end
57
+
58
+ it "returns the external related links" do
59
+ payload = payload_for(
60
+ "details" => {
61
+ "external_related_links" => [
62
+ { "title" => "Foo", "url" => "https://example.org/foo" },
63
+ { "title" => "Bar", "url" => "https://example.org/bar" }
64
+ ]
65
+ },
66
+ "links" => {
67
+ }
68
+ )
69
+
70
+ expect(payload).to eql(
71
+ sections: [
72
+ {
73
+ title: "Elsewhere on the web",
74
+ items: [
75
+ { title: "Foo", url: "https://example.org/foo", rel: "external" },
76
+ { title: "Bar", url: "https://example.org/bar", rel: "external" },
77
+ ]
78
+ },
79
+ ]
80
+ )
81
+ end
82
+
83
+ it "returns a primary section for related items tagged to the same mainstream browse page as the item" do
84
+ payload = payload_for(
85
+ "details" => {
86
+ "external_related_links" => []
87
+ },
88
+ "links" => {
89
+ "parent" => [
90
+ {
91
+ "title" => "Foo's parent",
92
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
93
+ "base_path" => "/foo-parent",
94
+ "locale" => "en"
95
+ }
96
+ ],
97
+ "ordered_related_items" => [
98
+ {
99
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
100
+ "title" => "Foo",
101
+ "base_path" => "/bar",
102
+ "locale" => "en",
103
+ "links" => {
104
+ "mainstream_browse_pages" => [
105
+ {
106
+ "title" => "Foo's parent",
107
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
108
+ "base_path" => "/foo-parent",
109
+ "locale" => "en"
110
+ }
111
+ ]
112
+ }
113
+ }
114
+ ]
115
+ }
116
+ )
117
+
118
+ expect(payload).to eql(
119
+ sections: [
120
+ {
121
+ title: "Foo's parent",
122
+ url: "/foo-parent",
123
+ items: [
124
+ { title: "Foo", url: "/bar" },
125
+ ]
126
+ },
127
+ ]
128
+ )
129
+ end
130
+
131
+ it "returns a secondary section for related items tagged to the same mainstream browse page as the item's parent" do
132
+ payload = payload_for(
133
+ "details" => {
134
+ "external_related_links" => []
135
+ },
136
+ "links" => {
137
+ "parent" => [
138
+ {
139
+ "title" => "Foo's parent",
140
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
141
+ "base_path" => "/foo-parent",
142
+ "locale" => "en",
143
+ "links" => {
144
+ "parent" => [
145
+ {
146
+ "title" => "Foo's grandparent",
147
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
148
+ "base_path" => "/foo-grand-parent",
149
+ "locale" => "en",
150
+ }
151
+ ]
152
+ }
153
+ }
154
+ ],
155
+ "ordered_related_items" => [
156
+ {
157
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
158
+ "title" => "Foo",
159
+ "base_path" => "/bar",
160
+ "locale" => "en",
161
+ "links" => {
162
+ "mainstream_browse_pages" => [
163
+ {
164
+ "title" => "Some sibling of foo-parent",
165
+ "content_id" => "c34672dc-2ff3-4d28-92fd-bcba382e8a0b",
166
+ "base_path" => "/foo-sibling",
167
+ "locale" => "en",
168
+ "links" => {
169
+ "parent" => [
170
+ {
171
+ "title" => "Foo's grandparent",
172
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
173
+ "base_path" => "/foo-grand-parent",
174
+ "locale" => "en",
175
+ }
176
+ ]
177
+ }
178
+ }
179
+ ]
180
+ }
181
+ }
182
+ ]
183
+ }
184
+ )
185
+
186
+ expect(payload).to eql(
187
+ sections: [
188
+ {
189
+ title: "Foo's grandparent",
190
+ url: "/foo-grand-parent",
191
+ items: [
192
+ { title: "Foo", url: "/bar" },
193
+ ]
194
+ },
195
+ ]
196
+ )
197
+ end
198
+
199
+ it "returns only related items in the primary section where they are tagged to the same mainstream browse pages as both the item and the item's parent" do
200
+ payload = payload_for(
201
+ "details" => {
202
+ "external_related_links" => []
203
+ },
204
+ "links" => {
205
+ "parent" => [
206
+ {
207
+ "title" => "Foo's parent",
208
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
209
+ "base_path" => "/foo-parent",
210
+ "locale" => "en",
211
+ "links" => {
212
+ "parent" => [
213
+ {
214
+ "title" => "Foo's grandparent",
215
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
216
+ "base_path" => "/foo-grand-parent",
217
+ "locale" => "en",
218
+ }
219
+ ]
220
+ }
221
+ }
222
+ ],
223
+ "ordered_related_items" => [
224
+ {
225
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
226
+ "title" => "Foo",
227
+ "base_path" => "/bar",
228
+ "locale" => "en",
229
+ "links" => {
230
+ "mainstream_browse_pages" => [
231
+ {
232
+ "title" => "Foo's parent",
233
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
234
+ "base_path" => "/foo-parent",
235
+ "locale" => "en",
236
+ "links" => {
237
+ "parent" => [
238
+ {
239
+ "title" => "Foo's grandparent",
240
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
241
+ "base_path" => "/foo-grand-parent",
242
+ "locale" => "en",
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ]
248
+ }
249
+ }
250
+ ]
251
+ }
252
+ )
253
+
254
+ expect(payload).to eql(
255
+ sections: [
256
+ {
257
+ title: "Foo's parent",
258
+ url: "/foo-parent",
259
+ items: [
260
+ { title: "Foo", url: "/bar" },
261
+ ]
262
+ },
263
+ ]
264
+ )
265
+ end
266
+ end
267
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'govuk_navigation_helpers'
2
+ require 'govuk_schemas'
3
+
1
4
  # This file was generated by the `rspec --init` command. Conventionally, all
2
5
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
6
  # The generated `.rspec` file contains `--require spec_helper` which will cause
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_navigation_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-26 00:00:00.000000000 Z
11
+ date: 2016-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0.1'
117
+ version: '1.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0.1'
124
+ version: '1.0'
125
125
  description: Gem to transform items from the content-store into payloads for GOV.UK
126
126
  components
127
127
  email:
@@ -142,8 +142,12 @@ files:
142
142
  - jenkins.sh
143
143
  - lib/govuk_navigation_helpers.rb
144
144
  - lib/govuk_navigation_helpers/breadcrumbs.rb
145
+ - lib/govuk_navigation_helpers/content_item.rb
146
+ - lib/govuk_navigation_helpers/grouped_related_links.rb
147
+ - lib/govuk_navigation_helpers/related_items.rb
145
148
  - lib/govuk_navigation_helpers/version.rb
146
149
  - spec/breadcrumbs_spec.rb
150
+ - spec/related_items_spec.rb
147
151
  - spec/spec_helper.rb
148
152
  homepage: https://github.com/alphagov/govuk_navigation_helpers
149
153
  licenses:
@@ -171,4 +175,5 @@ specification_version: 4
171
175
  summary: Gem to transform items from the content-store into payloads for GOV.UK components
172
176
  test_files:
173
177
  - spec/breadcrumbs_spec.rb
178
+ - spec/related_items_spec.rb
174
179
  - spec/spec_helper.rb