govspeak 5.6.0 → 5.7.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 +5 -5
- data/CHANGELOG.md +6 -0
- data/Rakefile +1 -7
- data/bin/govspeak +1 -1
- data/lib/govspeak.rb +76 -55
- data/lib/govspeak/blockquote_extra_quote_remover.rb +3 -2
- data/lib/govspeak/cli.rb +5 -3
- data/lib/govspeak/header_extractor.rb +6 -5
- data/lib/govspeak/html_sanitizer.rb +5 -5
- data/lib/govspeak/kramdown_overrides.rb +1 -2
- data/lib/govspeak/link_extractor.rb +1 -1
- data/lib/govspeak/post_processor.rb +28 -21
- data/lib/govspeak/presenters/attachment_presenter.rb +12 -7
- data/lib/govspeak/presenters/contact_presenter.rb +55 -10
- data/lib/govspeak/presenters/h_card_presenter.rb +22 -32
- data/lib/govspeak/structured_header_extractor.rb +0 -1
- data/lib/govspeak/version.rb +1 -1
- data/lib/kramdown/parser/kramdown_with_automatic_external_links.rb +12 -10
- data/lib/templates/attachment.html.erb +9 -9
- data/lib/templates/contact.html.erb +15 -18
- data/test/govspeak_attachments_test.rb +0 -53
- data/test/govspeak_contacts_test.rb +125 -38
- data/test/govspeak_extract_contact_content_ids_test.rb +29 -0
- data/test/govspeak_link_extractor_test.rb +1 -1
- data/test/govspeak_structured_headers_test.rb +20 -21
- data/test/govspeak_test.rb +41 -40
- data/test/govspeak_test_helper.rb +7 -10
- data/test/html_sanitizer_test.rb +3 -4
- data/test/html_validator_test.rb +7 -7
- data/test/presenters/h_card_presenter_test.rb +11 -13
- data/test/test_helper.rb +6 -5
- metadata +70 -74
@@ -1,5 +1,4 @@
|
|
1
1
|
module GovspeakTestHelper
|
2
|
-
|
3
2
|
def self.included(base)
|
4
3
|
base.extend(ClassMethods)
|
5
4
|
end
|
@@ -13,7 +12,7 @@ module GovspeakTestHelper
|
|
13
12
|
end
|
14
13
|
|
15
14
|
def document
|
16
|
-
Govspeak::Document.new(@govspeak, @options.merge(:
|
15
|
+
Govspeak::Document.new(@govspeak, @options.merge(images: @images))
|
17
16
|
end
|
18
17
|
|
19
18
|
def assert_text_output(raw_expected)
|
@@ -33,9 +32,7 @@ module GovspeakTestHelper
|
|
33
32
|
if lines.first.empty?
|
34
33
|
lines.delete_at(0)
|
35
34
|
nonblanks = lines.reject { |l| l.match(/^ *$/) }
|
36
|
-
indentation = nonblanks.map
|
37
|
-
line.match(/^ */)[0].size
|
38
|
-
end.min
|
35
|
+
indentation = nonblanks.map { |line| line.match(/^ */)[0].size }.min
|
39
36
|
unindented = lines.map do |line|
|
40
37
|
line[indentation..-1]
|
41
38
|
end
|
@@ -52,13 +49,13 @@ module GovspeakTestHelper
|
|
52
49
|
def show_linenumbers(text)
|
53
50
|
lines = text.split "\n"
|
54
51
|
digits = Math.log10(lines.size + 2).ceil
|
55
|
-
lines.map
|
56
|
-
"
|
57
|
-
|
52
|
+
lines.map
|
53
|
+
.with_index { |line, i| "%<number>#{digits}d: %<line>s" % { number: i + 1, line: line } }
|
54
|
+
.join("\n")
|
58
55
|
end
|
59
56
|
end
|
60
57
|
|
61
|
-
def given_govspeak(govspeak, images=[], options = {}, &block)
|
58
|
+
def given_govspeak(govspeak, images = [], options = {}, &block)
|
62
59
|
asserter = GovspeakAsserter.new(self, govspeak, images, options)
|
63
60
|
asserter.instance_eval(&block)
|
64
61
|
end
|
@@ -72,7 +69,7 @@ module GovspeakTestHelper
|
|
72
69
|
end
|
73
70
|
|
74
71
|
module ClassMethods
|
75
|
-
def test_given_govspeak(govspeak, images=[], options = {}, &block)
|
72
|
+
def test_given_govspeak(govspeak, images = [], options = {}, &block)
|
76
73
|
test "Given #{govspeak}" do
|
77
74
|
given_govspeak(govspeak, images, options, &block)
|
78
75
|
end
|
data/test/html_sanitizer_test.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
|
3
3
|
class HtmlSanitizerTest < Minitest::Test
|
4
|
-
|
5
4
|
test "disallow a script tag" do
|
6
5
|
html = "<script>alert('XSS')</script>"
|
7
6
|
assert_equal "alert('XSS')", Govspeak::HtmlSanitizer.new(html).sanitize
|
8
7
|
end
|
9
8
|
|
10
9
|
test "disallow a javascript protocol in an attribute" do
|
11
|
-
html =
|
12
|
-
title="Title">an example</a>
|
10
|
+
html = '<a href="javascript:alert(document.location);"
|
11
|
+
title="Title">an example</a>'
|
13
12
|
assert_equal "<a title=\"Title\">an example</a>", Govspeak::HtmlSanitizer.new(html).sanitize
|
14
13
|
end
|
15
14
|
|
@@ -69,7 +68,7 @@ class HtmlSanitizerTest < Minitest::Test
|
|
69
68
|
|
70
69
|
|
71
70
|
test "allows valid text-align properties on the style attribute for table cells and table headings" do
|
72
|
-
[
|
71
|
+
%w[left right center].each do |alignment|
|
73
72
|
html = "<table><thead><tr><th style=\"text-align: #{alignment}\">thing</th></tr></thead><tbody><tr><td style=\"text-align: #{alignment}\">thing</td></tr></tbody></table>"
|
74
73
|
assert_equal html, Govspeak::HtmlSanitizer.new(html).sanitize
|
75
74
|
end
|
data/test/html_validator_test.rb
CHANGED
@@ -11,11 +11,11 @@ class HtmlValidatorTest < Minitest::Test
|
|
11
11
|
"+ another bullet",
|
12
12
|
"1. Numbered list",
|
13
13
|
"s2. Step",
|
14
|
-
"
|
14
|
+
"
|
15
15
|
Table | Header
|
16
16
|
- | -
|
17
17
|
Build | cells
|
18
|
-
"
|
18
|
+
",
|
19
19
|
"This is [an example](/an-inline-link \"Title\") inline link.",
|
20
20
|
"<http://example.com/>",
|
21
21
|
"<address@example.com>",
|
@@ -34,7 +34,7 @@ class HtmlValidatorTest < Minitest::Test
|
|
34
34
|
"{:/highlight-answer}",
|
35
35
|
"---",
|
36
36
|
"*[GDS]: Government Digital Service",
|
37
|
-
"
|
37
|
+
"
|
38
38
|
$P
|
39
39
|
|
40
40
|
$I
|
@@ -49,7 +49,7 @@ class HtmlValidatorTest < Minitest::Test
|
|
49
49
|
$AI
|
50
50
|
$I
|
51
51
|
$P
|
52
|
-
"
|
52
|
+
",
|
53
53
|
":england:content goes here:england:",
|
54
54
|
":scotland:content goes here:scotland:"
|
55
55
|
]
|
@@ -63,13 +63,13 @@ class HtmlValidatorTest < Minitest::Test
|
|
63
63
|
end
|
64
64
|
|
65
65
|
test "disallow a javascript protocol in an attribute" do
|
66
|
-
html =
|
67
|
-
title="Title">an example</a>
|
66
|
+
html = '<a href="javascript:alert(document.location);"
|
67
|
+
title="Title">an example</a>'
|
68
68
|
assert Govspeak::HtmlValidator.new(html).invalid?
|
69
69
|
end
|
70
70
|
|
71
71
|
test "disallow a javascript protocol in a Markdown link" do
|
72
|
-
html =
|
72
|
+
html = 'This is [an example](javascript:alert(""); "Title") inline link.'
|
73
73
|
assert Govspeak::HtmlValidator.new(html).invalid?
|
74
74
|
end
|
75
75
|
|
@@ -4,7 +4,6 @@ require 'test_helper'
|
|
4
4
|
require 'ostruct'
|
5
5
|
|
6
6
|
class HCardPresenterTest < Minitest::Test
|
7
|
-
|
8
7
|
def unindent(html)
|
9
8
|
html.gsub(/^\s+/, '')
|
10
9
|
end
|
@@ -88,12 +87,11 @@ class HCardPresenterTest < Minitest::Test
|
|
88
87
|
'postal-code' => 'Postcode',
|
89
88
|
'locality' => 'Locality',
|
90
89
|
'region' => 'Region',
|
91
|
-
'country-name' => 'Country'
|
92
|
-
}
|
90
|
+
'country-name' => 'Country' }
|
93
91
|
end
|
94
92
|
|
95
93
|
def gb_addr
|
96
|
-
<<-
|
94
|
+
<<-HTML
|
97
95
|
<p class="adr">
|
98
96
|
<span class="fn">Recipient</span><br />
|
99
97
|
<span class="street-address">Street</span><br />
|
@@ -102,33 +100,33 @@ class HCardPresenterTest < Minitest::Test
|
|
102
100
|
<span class="postal-code">Postcode</span><br />
|
103
101
|
<span class="country-name">Country</span>
|
104
102
|
</p>
|
105
|
-
|
103
|
+
HTML
|
106
104
|
end
|
107
105
|
|
108
106
|
def es_addr
|
109
|
-
<<-
|
107
|
+
<<-HTML
|
110
108
|
<p class="adr">
|
111
109
|
<span class="fn">Recipient</span><br />
|
112
110
|
<span class="street-address">Street</span><br />
|
113
111
|
<span class="postal-code">Postcode</span> <span class="locality">Locality</span> <span class="region">Region</span><br />
|
114
112
|
<span class="country-name">Country</span>
|
115
113
|
</p>
|
116
|
-
|
114
|
+
HTML
|
117
115
|
end
|
118
116
|
|
119
117
|
def jp_addr
|
120
|
-
<<-
|
118
|
+
<<-HTML
|
121
119
|
<p class="adr">
|
122
120
|
〒<span class="postal-code">Postcode</span><br />
|
123
121
|
<span class="region">Region</span><span class="locality">Locality</span><span class="street-address">Street</span><br />
|
124
122
|
<span class="fn">Recipient</span><br />
|
125
123
|
<span class="country-name">Country</span>
|
126
124
|
</p>
|
127
|
-
|
125
|
+
HTML
|
128
126
|
end
|
129
127
|
|
130
128
|
def addr_without_region
|
131
|
-
<<-
|
129
|
+
<<-HTML
|
132
130
|
<p class="adr">
|
133
131
|
<span class="fn">Recipient</span><br />
|
134
132
|
<span class="street-address">Street</span><br />
|
@@ -136,11 +134,11 @@ class HCardPresenterTest < Minitest::Test
|
|
136
134
|
<span class="postal-code">Postcode</span><br />
|
137
135
|
<span class="country-name">Country</span>
|
138
136
|
</p>
|
139
|
-
|
137
|
+
HTML
|
140
138
|
end
|
141
139
|
|
142
140
|
def addr_without_country
|
143
|
-
<<-
|
141
|
+
<<-HTML
|
144
142
|
<p class="adr">
|
145
143
|
<span class="fn">Recipient</span><br />
|
146
144
|
<span class="street-address">Street</span><br />
|
@@ -148,6 +146,6 @@ class HCardPresenterTest < Minitest::Test
|
|
148
146
|
<span class="region">Region</span><br />
|
149
147
|
<span class="postal-code">Postcode</span>
|
150
148
|
</p>
|
151
|
-
|
149
|
+
HTML
|
152
150
|
end
|
153
151
|
end
|
data/test/test_helper.rb
CHANGED
@@ -14,11 +14,12 @@ require 'minitest/autorun'
|
|
14
14
|
class Minitest::Test
|
15
15
|
class << self
|
16
16
|
def test(name, &block)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
clean_name = name.gsub(/\s+/, '_')
|
18
|
+
method = "test_#{clean_name.gsub(/\s+/, '_')}".to_sym
|
19
|
+
already_defined = instance_method(method) rescue false
|
20
|
+
raise "#{method} exists" if already_defined
|
21
|
+
|
22
|
+
define_method(method, &block)
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
metadata
CHANGED
@@ -1,181 +1,175 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govspeak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.7.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: 2018-
|
11
|
+
date: 2018-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: actionview
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '5.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '5.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: addressable
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.3.8
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '3'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
43
|
+
version: 2.3.8
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
48
|
+
name: commander
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '4.
|
53
|
+
version: '4.4'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
58
|
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '4.
|
60
|
+
version: '4.4'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: htmlentities
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '4'
|
62
68
|
type: :runtime
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
72
|
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
74
|
+
version: '4'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
76
|
+
name: i18n
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- - "
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 2.3.8
|
76
|
-
- - "<"
|
79
|
+
- - "~>"
|
77
80
|
- !ruby/object:Gem::Version
|
78
|
-
version: '
|
81
|
+
version: '0.7'
|
79
82
|
type: :runtime
|
80
83
|
prerelease: false
|
81
84
|
version_requirements: !ruby/object:Gem::Requirement
|
82
85
|
requirements:
|
83
|
-
- - "
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 2.3.8
|
86
|
-
- - "<"
|
86
|
+
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
88
|
+
version: '0.7'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
90
|
+
name: kramdown
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- - "
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '4.1'
|
96
|
-
- - "<"
|
93
|
+
- - "~>"
|
97
94
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
95
|
+
version: 1.15.0
|
99
96
|
type: :runtime
|
100
97
|
prerelease: false
|
101
98
|
version_requirements: !ruby/object:Gem::Requirement
|
102
99
|
requirements:
|
103
|
-
- - "
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '4.1'
|
106
|
-
- - "<"
|
100
|
+
- - "~>"
|
107
101
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
102
|
+
version: 1.15.0
|
109
103
|
- !ruby/object:Gem::Dependency
|
110
|
-
name:
|
104
|
+
name: money
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
112
106
|
requirements:
|
113
107
|
- - "~>"
|
114
108
|
- !ruby/object:Gem::Version
|
115
|
-
version: '
|
109
|
+
version: '6.7'
|
116
110
|
type: :runtime
|
117
111
|
prerelease: false
|
118
112
|
version_requirements: !ruby/object:Gem::Requirement
|
119
113
|
requirements:
|
120
114
|
- - "~>"
|
121
115
|
- !ruby/object:Gem::Version
|
122
|
-
version: '
|
116
|
+
version: '6.7'
|
123
117
|
- !ruby/object:Gem::Dependency
|
124
|
-
name:
|
118
|
+
name: nokogiri
|
125
119
|
requirement: !ruby/object:Gem::Requirement
|
126
120
|
requirements:
|
127
121
|
- - "~>"
|
128
122
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
123
|
+
version: '1.5'
|
130
124
|
type: :runtime
|
131
125
|
prerelease: false
|
132
126
|
version_requirements: !ruby/object:Gem::Requirement
|
133
127
|
requirements:
|
134
128
|
- - "~>"
|
135
129
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
130
|
+
version: '1.5'
|
137
131
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
132
|
+
name: rinku
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
140
134
|
requirements:
|
141
135
|
- - "~>"
|
142
136
|
- !ruby/object:Gem::Version
|
143
|
-
version: '
|
137
|
+
version: '2.0'
|
144
138
|
type: :runtime
|
145
139
|
prerelease: false
|
146
140
|
version_requirements: !ruby/object:Gem::Requirement
|
147
141
|
requirements:
|
148
142
|
- - "~>"
|
149
143
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
144
|
+
version: '2.0'
|
151
145
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
146
|
+
name: sanitize
|
153
147
|
requirement: !ruby/object:Gem::Requirement
|
154
148
|
requirements:
|
155
149
|
- - "~>"
|
156
150
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
158
|
-
type: :
|
151
|
+
version: '4.6'
|
152
|
+
type: :runtime
|
159
153
|
prerelease: false
|
160
154
|
version_requirements: !ruby/object:Gem::Requirement
|
161
155
|
requirements:
|
162
156
|
- - "~>"
|
163
157
|
- !ruby/object:Gem::Version
|
164
|
-
version:
|
158
|
+
version: '4.6'
|
165
159
|
- !ruby/object:Gem::Dependency
|
166
|
-
name:
|
160
|
+
name: govuk-lint
|
167
161
|
requirement: !ruby/object:Gem::Requirement
|
168
162
|
requirements:
|
169
|
-
- - "
|
163
|
+
- - ">="
|
170
164
|
- !ruby/object:Gem::Version
|
171
|
-
version:
|
165
|
+
version: '0'
|
172
166
|
type: :development
|
173
167
|
prerelease: false
|
174
168
|
version_requirements: !ruby/object:Gem::Requirement
|
175
169
|
requirements:
|
176
|
-
- - "
|
170
|
+
- - ">="
|
177
171
|
- !ruby/object:Gem::Version
|
178
|
-
version:
|
172
|
+
version: '0'
|
179
173
|
- !ruby/object:Gem::Dependency
|
180
174
|
name: minitest
|
181
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,7 +185,7 @@ dependencies:
|
|
191
185
|
- !ruby/object:Gem::Version
|
192
186
|
version: 5.8.3
|
193
187
|
- !ruby/object:Gem::Dependency
|
194
|
-
name:
|
188
|
+
name: pry-byebug
|
195
189
|
requirement: !ruby/object:Gem::Requirement
|
196
190
|
requirements:
|
197
191
|
- - ">="
|
@@ -205,21 +199,21 @@ dependencies:
|
|
205
199
|
- !ruby/object:Gem::Version
|
206
200
|
version: '0'
|
207
201
|
- !ruby/object:Gem::Dependency
|
208
|
-
name:
|
202
|
+
name: rake
|
209
203
|
requirement: !ruby/object:Gem::Requirement
|
210
204
|
requirements:
|
211
|
-
- - "
|
205
|
+
- - "~>"
|
212
206
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
207
|
+
version: 0.9.0
|
214
208
|
type: :development
|
215
209
|
prerelease: false
|
216
210
|
version_requirements: !ruby/object:Gem::Requirement
|
217
211
|
requirements:
|
218
|
-
- - "
|
212
|
+
- - "~>"
|
219
213
|
- !ruby/object:Gem::Version
|
220
|
-
version:
|
214
|
+
version: 0.9.0
|
221
215
|
- !ruby/object:Gem::Dependency
|
222
|
-
name:
|
216
|
+
name: simplecov
|
223
217
|
requirement: !ruby/object:Gem::Requirement
|
224
218
|
requirements:
|
225
219
|
- - ">="
|
@@ -233,7 +227,7 @@ dependencies:
|
|
233
227
|
- !ruby/object:Gem::Version
|
234
228
|
version: '0'
|
235
229
|
- !ruby/object:Gem::Dependency
|
236
|
-
name:
|
230
|
+
name: simplecov-rcov
|
237
231
|
requirement: !ruby/object:Gem::Requirement
|
238
232
|
requirements:
|
239
233
|
- - ">="
|
@@ -285,6 +279,7 @@ files:
|
|
285
279
|
- test/govspeak_attachments_test.rb
|
286
280
|
- test/govspeak_button_test.rb
|
287
281
|
- test/govspeak_contacts_test.rb
|
282
|
+
- test/govspeak_extract_contact_content_ids_test.rb
|
288
283
|
- test/govspeak_link_extractor_test.rb
|
289
284
|
- test/govspeak_link_test.rb
|
290
285
|
- test/govspeak_structured_headers_test.rb
|
@@ -313,23 +308,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
308
|
version: '0'
|
314
309
|
requirements: []
|
315
310
|
rubyforge_project:
|
316
|
-
rubygems_version: 2.
|
311
|
+
rubygems_version: 2.7.6
|
317
312
|
signing_key:
|
318
313
|
specification_version: 4
|
319
314
|
summary: Markup language for single domain
|
320
315
|
test_files:
|
321
|
-
- test/govspeak_link_extractor_test.rb
|
322
|
-
- test/govspeak_structured_headers_test.rb
|
323
|
-
- test/govspeak_button_test.rb
|
324
316
|
- test/blockquote_extra_quote_remover_test.rb
|
325
317
|
- test/govspeak_test_helper.rb
|
326
|
-
- test/
|
327
|
-
- test/
|
318
|
+
- test/govspeak_structured_headers_test.rb
|
319
|
+
- test/govspeak_attachments_image_test.rb
|
320
|
+
- test/govspeak_attachments_test.rb
|
328
321
|
- test/test_helper.rb
|
329
|
-
- test/html_validator_test.rb
|
330
|
-
- test/html_sanitizer_test.rb
|
331
322
|
- test/govspeak_attachments_inline_test.rb
|
323
|
+
- test/html_sanitizer_test.rb
|
324
|
+
- test/govspeak_button_test.rb
|
325
|
+
- test/html_validator_test.rb
|
326
|
+
- test/govspeak_extract_contact_content_ids_test.rb
|
332
327
|
- test/govspeak_test.rb
|
333
|
-
- test/
|
334
|
-
- test/
|
328
|
+
- test/govspeak_link_extractor_test.rb
|
329
|
+
- test/govspeak_link_test.rb
|
330
|
+
- test/govspeak_contacts_test.rb
|
335
331
|
- test/presenters/h_card_presenter_test.rb
|