govuk_publishing_components 29.15.2 → 29.15.3
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 +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-page-views.js +1 -1
- data/app/models/govuk_publishing_components/audit_applications.rb +18 -0
- data/app/models/govuk_publishing_components/audit_comparer.rb +33 -1
- data/app/views/govuk_publishing_components/audit/_components.html.erb +12 -49
- data/app/views/govuk_publishing_components/audit/_items_in_applications.html.erb +50 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1093c2ff6d40fae820a8b90e7a349d7e8dd78b10fca660453365343d7968749c
|
|
4
|
+
data.tar.gz: 3607d6e31004a9697a60a6c7075124b085b2c7a592c6f159e9540fa9ed7c0ad6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 126afbff6dcbcab4a12c6551ab3546c2727841a9454df9a2eafae820bf8dcb483ad578b041e3250f085b3ba34534eabbb80727715f706391fdc2530d975da97a
|
|
7
|
+
data.tar.gz: ea8bdcc6c1f05fc3f469de5fe182ff304ea58e228ad9caf8c89ecf8f66cc8ad8c279a5ff4d5556f09fbed75f88cd5cbd5cc46c21afc2dd1249befcbe16af8dd6
|
|
@@ -9,6 +9,7 @@ module GovukPublishingComponents
|
|
|
9
9
|
@component_locations = {}
|
|
10
10
|
@gem_style_references = []
|
|
11
11
|
@jquery_references = []
|
|
12
|
+
@helper_references = {}
|
|
12
13
|
|
|
13
14
|
if application_found
|
|
14
15
|
templates = Dir["#{path}/app/views/**/*.erb"]
|
|
@@ -69,6 +70,7 @@ module GovukPublishingComponents
|
|
|
69
70
|
gem_style_references: @gem_style_references.flatten.uniq.sort,
|
|
70
71
|
jquery_references: @jquery_references.flatten.uniq.sort,
|
|
71
72
|
component_locations: @component_locations,
|
|
73
|
+
helper_references: @helper_references,
|
|
72
74
|
}
|
|
73
75
|
end
|
|
74
76
|
|
|
@@ -95,6 +97,8 @@ module GovukPublishingComponents
|
|
|
95
97
|
components_found << find_match(find, src, type)
|
|
96
98
|
end
|
|
97
99
|
|
|
100
|
+
get_helper_references(file, src) if %w[ruby templates].include?(type)
|
|
101
|
+
|
|
98
102
|
if type == "javascripts"
|
|
99
103
|
jquery_references = find_code_references(file, src, /\$\(/)
|
|
100
104
|
@jquery_references << jquery_references if jquery_references
|
|
@@ -109,6 +113,20 @@ module GovukPublishingComponents
|
|
|
109
113
|
components_found.flatten.uniq.sort
|
|
110
114
|
end
|
|
111
115
|
|
|
116
|
+
def get_helper_references(file, src)
|
|
117
|
+
helper_use = find_match(/GovukPublishingComponents::(?:AppHelpers|Presenters)::[a-zA-Z]+/, src, "helper")
|
|
118
|
+
if helper_use.any?
|
|
119
|
+
helper_use.each do |helper|
|
|
120
|
+
class_name = helper.gsub(/GovukPublishingComponents::(AppHelpers)?(Presenters)?::+/, "")
|
|
121
|
+
helper_sym = class_name.to_sym
|
|
122
|
+
@helper_references[helper_sym] = [] unless @helper_references[helper_sym]
|
|
123
|
+
@helper_references[helper_sym] << clean_file_path(file)
|
|
124
|
+
@helper_references[helper_sym].uniq!
|
|
125
|
+
@helper_references[helper_sym].sort!
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
112
130
|
# looks for components in the given src of a file
|
|
113
131
|
# returns an array of component names or an empty array
|
|
114
132
|
def find_match(find, src, type)
|
|
@@ -22,6 +22,7 @@ module GovukPublishingComponents
|
|
|
22
22
|
@gem_data = gem_data
|
|
23
23
|
@applications_data = sort_results(results)
|
|
24
24
|
@gem_data[:components_by_application] = get_components_by_application || []
|
|
25
|
+
@gem_data[:helpers_used_by_applications] = get_helpers_used_by_applications || []
|
|
25
26
|
end
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -107,6 +108,7 @@ module GovukPublishingComponents
|
|
|
107
108
|
gem_style_references: result[:gem_style_references],
|
|
108
109
|
jquery_references: result[:jquery_references],
|
|
109
110
|
component_locations: result[:component_locations],
|
|
111
|
+
helper_references: result[:helper_references],
|
|
110
112
|
}
|
|
111
113
|
else
|
|
112
114
|
data << {
|
|
@@ -269,7 +271,7 @@ module GovukPublishingComponents
|
|
|
269
271
|
locations = locations.flatten
|
|
270
272
|
|
|
271
273
|
results << {
|
|
272
|
-
|
|
274
|
+
name: component_name,
|
|
273
275
|
count: locations.length,
|
|
274
276
|
locations: locations,
|
|
275
277
|
}
|
|
@@ -277,5 +279,35 @@ module GovukPublishingComponents
|
|
|
277
279
|
|
|
278
280
|
results if found_something
|
|
279
281
|
end
|
|
282
|
+
|
|
283
|
+
# returns data of components gem helpers used in applications
|
|
284
|
+
def get_helpers_used_by_applications
|
|
285
|
+
results = []
|
|
286
|
+
|
|
287
|
+
@applications_data.each do |application|
|
|
288
|
+
next unless application[:application_found] && !application[:helper_references].blank?
|
|
289
|
+
|
|
290
|
+
application[:helper_references].each do |key, value|
|
|
291
|
+
location = {
|
|
292
|
+
name: application[:name],
|
|
293
|
+
locations: value,
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
match = results.find { |x| x[:name] == key }
|
|
297
|
+
if match
|
|
298
|
+
match[:locations] << location
|
|
299
|
+
match[:count] = match[:count] + 1
|
|
300
|
+
else
|
|
301
|
+
results << {
|
|
302
|
+
name: key,
|
|
303
|
+
count: 1,
|
|
304
|
+
locations: [location],
|
|
305
|
+
}
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
results
|
|
311
|
+
end
|
|
280
312
|
end
|
|
281
313
|
end
|
|
@@ -56,56 +56,19 @@
|
|
|
56
56
|
}
|
|
57
57
|
%>
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<dt class="govuk-summary-list__key">
|
|
66
|
-
<%= component[:component] %> (<%= pluralize(component[:count], 'use') %>)
|
|
67
|
-
</dt>
|
|
68
|
-
<dd class="govuk-summary-list__value">
|
|
69
|
-
<% component[:locations].each do |application| %>
|
|
70
|
-
<% github_link = 'https://github.com/alphagov/' + application[:name] + '/blob/main/' %>
|
|
71
|
-
<details class="govuk-details govuk-!-margin-bottom-2" data-module="govuk-details">
|
|
72
|
-
<summary class="govuk-details__summary">
|
|
73
|
-
<span class="govuk-details__summary-text">
|
|
74
|
-
<%= application[:name] %> (<%= application[:locations].length %>)
|
|
75
|
-
</span>
|
|
76
|
-
</summary>
|
|
77
|
-
<div class="govuk-details__text">
|
|
78
|
-
<ul class="govuk-list govuk-list--bullet">
|
|
79
|
-
<% application[:locations].each do |location| %>
|
|
80
|
-
<li>
|
|
81
|
-
<a href="<%= github_link %><%= location %>" class="govuk-link"><%= location %></a>
|
|
82
|
-
</li>
|
|
83
|
-
<% end %>
|
|
84
|
-
</ul>
|
|
85
|
-
</div>
|
|
86
|
-
</details>
|
|
87
|
-
<% end %>
|
|
88
|
-
</dd>
|
|
89
|
-
</div>
|
|
90
|
-
<% end %>
|
|
91
|
-
</dl>
|
|
92
|
-
<% end %>
|
|
93
|
-
<% end %>
|
|
59
|
+
<%= render 'items_in_applications',
|
|
60
|
+
heading: 'Components by application',
|
|
61
|
+
summary: 'Shows which applications use each component',
|
|
62
|
+
content: @components[:components_by_application],
|
|
63
|
+
items: component_items
|
|
64
|
+
%>
|
|
94
65
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
text: "Shows which applications use each component",
|
|
102
|
-
},
|
|
103
|
-
content: {
|
|
104
|
-
html: components_by_application
|
|
105
|
-
},
|
|
106
|
-
}
|
|
107
|
-
%>
|
|
108
|
-
<% end %>
|
|
66
|
+
<%= render 'items_in_applications',
|
|
67
|
+
heading: 'Helpers by application',
|
|
68
|
+
summary: 'Shows any applications that use helper classes from the components gem',
|
|
69
|
+
content: @components[:helpers_used_by_applications],
|
|
70
|
+
items: component_items
|
|
71
|
+
%>
|
|
109
72
|
|
|
110
73
|
<%= render "govuk_publishing_components/components/accordion", {
|
|
111
74
|
items: component_items
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<% if @other_applications %>
|
|
2
|
+
<% accordion_content = capture do %>
|
|
3
|
+
<% if content.any? %>
|
|
4
|
+
<dl class="govuk-summary-list">
|
|
5
|
+
<% content.each do |item| %>
|
|
6
|
+
<div class="govuk-summary-list__row">
|
|
7
|
+
<dt class="govuk-summary-list__key">
|
|
8
|
+
<%= item[:name] %> (<%= pluralize(item[:count], 'use') %>)
|
|
9
|
+
</dt>
|
|
10
|
+
<dd class="govuk-summary-list__value">
|
|
11
|
+
<% item[:locations].each do |application| %>
|
|
12
|
+
<% github_link = 'https://github.com/alphagov/' + application[:name] + '/blob/main/' %>
|
|
13
|
+
<details class="govuk-details govuk-!-margin-bottom-2" data-module="govuk-details">
|
|
14
|
+
<summary class="govuk-details__summary">
|
|
15
|
+
<span class="govuk-details__summary-text">
|
|
16
|
+
<%= application[:name] %> (<%= application[:locations].length %>)
|
|
17
|
+
</span>
|
|
18
|
+
</summary>
|
|
19
|
+
<div class="govuk-details__text">
|
|
20
|
+
<ul class="govuk-list govuk-list--bullet">
|
|
21
|
+
<% application[:locations].each do |location| %>
|
|
22
|
+
<li>
|
|
23
|
+
<a href="<%= github_link %><%= location %>" class="govuk-link"><%= location %></a>
|
|
24
|
+
</li>
|
|
25
|
+
<% end %>
|
|
26
|
+
</ul>
|
|
27
|
+
</div>
|
|
28
|
+
</details>
|
|
29
|
+
<% end %>
|
|
30
|
+
</dd>
|
|
31
|
+
</div>
|
|
32
|
+
<% end %>
|
|
33
|
+
</dl>
|
|
34
|
+
<% end %>
|
|
35
|
+
<% end %>
|
|
36
|
+
|
|
37
|
+
<%
|
|
38
|
+
items << {
|
|
39
|
+
heading: {
|
|
40
|
+
text: heading,
|
|
41
|
+
},
|
|
42
|
+
summary: {
|
|
43
|
+
text: summary,
|
|
44
|
+
},
|
|
45
|
+
content: {
|
|
46
|
+
html: accordion_content
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
%>
|
|
50
|
+
<% end %>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_publishing_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 29.15.
|
|
4
|
+
version: 29.15.3
|
|
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: 2022-07-
|
|
11
|
+
date: 2022-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -646,6 +646,7 @@ files:
|
|
|
646
646
|
- app/views/govuk_publishing_components/audit/_applications.html.erb
|
|
647
647
|
- app/views/govuk_publishing_components/audit/_component_contents.html.erb
|
|
648
648
|
- app/views/govuk_publishing_components/audit/_components.html.erb
|
|
649
|
+
- app/views/govuk_publishing_components/audit/_items_in_applications.html.erb
|
|
649
650
|
- app/views/govuk_publishing_components/audit/show.html.erb
|
|
650
651
|
- app/views/govuk_publishing_components/component_guide/_application_stylesheet.html.erb
|
|
651
652
|
- app/views/govuk_publishing_components/component_guide/component_doc/_call.html.erb
|