loofah 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of loofah might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3ca2dd3ffb1e1d31dd08731c8540f8259f29228
4
- data.tar.gz: 515eb47e23c9b138d840ff71b3ccca78c243b642
3
+ metadata.gz: fe26253679940dacafe8041f66b983b3bcbf52a0
4
+ data.tar.gz: 1e871815f543b062b2b128a195c6e6068b18241d
5
5
  SHA512:
6
- metadata.gz: 80380e9954da98bfbdb1dae7c57bc334cfd9571b316130def5c936a25ad5de65676bd698eeb419709db1e9fe853b7717eafca50186e61c0dead6155cefbb4460
7
- data.tar.gz: 3ba02c8f6141ec3f77edf1a6980df378dc8a0d56d0ee117d63c4c22a6969b9a4a3cd749591f65b13f3b84b06e854b6f6f3a11c83b98c01c656fbb0a190c5911f
6
+ metadata.gz: 40893992f92d5a29c7bd40de6b6b7190d823237803d4245f8b66b1dea0b884dabf11578e061ba73fef6b89df6828e8eb8fd47618385583880b2f6953cc98b022
7
+ data.tar.gz: 55ca03dd4ea01c46ff6e7a932a8eb6c2a6bb106223c46f1ea74f06a99847f9780a23ae1752950249407567f9e42fee7fecc42d6c2cbe4e06baeb3f1f2d5751fd
@@ -1,5 +1,14 @@
1
1
  = Changelog
2
2
 
3
+ == 2.0.2 / 2015-05-05
4
+
5
+ Bug fixes:
6
+
7
+ * Fix error with `#to_text` when Loofah::Helpers hadn't been required. #75
8
+ * Allow multi-word data attributes. #84 (Thanks, @jstorimer!)
9
+ * Allow negative values in CSS properties. #85 (Thanks, @siddhartham!)
10
+
11
+
3
12
  == 2.0.1 / 2014-08-21
4
13
 
5
14
  Bug fixes:
@@ -1,3 +1,4 @@
1
+ .gemtest
1
2
  CHANGELOG.rdoc
2
3
  Gemfile
3
4
  MIT-LICENSE.txt
@@ -27,7 +27,7 @@ require 'loofah/html/document_fragment'
27
27
  #
28
28
  module Loofah
29
29
  # The version of Loofah you are using
30
- VERSION = '2.0.1'
30
+ VERSION = '2.0.2'
31
31
 
32
32
  class << self
33
33
  # Shortcut for Loofah::HTML::Document.parse
@@ -74,5 +74,9 @@ module Loofah
74
74
  Loofah.xml_document(string_or_io).scrub!(method)
75
75
  end
76
76
 
77
+ # A helper to remove extraneous whitespace from text-ified HTML
78
+ def remove_extraneous_whitespace(string)
79
+ string.gsub(/\n\s*\n\s*\n/,"\n\n")
80
+ end
77
81
  end
78
82
  end
@@ -33,9 +33,10 @@ module Loofah
33
33
 
34
34
  #
35
35
  # A helper to remove extraneous whitespace from text-ified HTML
36
+ # TODO: remove this in a future major-point-release.
36
37
  #
37
38
  def remove_extraneous_whitespace(string)
38
- string.gsub(/\n\s*\n\s*\n/,"\n\n")
39
+ Loofah.remove_extraneous_whitespace string
39
40
  end
40
41
  end
41
42
 
@@ -23,7 +23,7 @@ module Loofah
23
23
  attr_node.node_name
24
24
  end
25
25
 
26
- if attr_name =~ /\Adata-\w+\z/
26
+ if attr_name =~ /\Adata-[\w-]+\z/
27
27
  next
28
28
  end
29
29
 
@@ -79,7 +79,7 @@ module Loofah
79
79
  elsif WhiteList::SHORTHAND_CSS_PROPERTIES.include?(prop.split('-')[0])
80
80
  clean << "#{prop}: #{val};" unless val.split().any? do |keyword|
81
81
  !WhiteList::ALLOWED_CSS_KEYWORDS.include?(keyword) &&
82
- keyword !~ /\A(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)\z/
82
+ keyword !~ /\A(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|-?\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)\z/
83
83
  end
84
84
  elsif WhiteList::ALLOWED_SVG_PROPERTIES.include?(prop)
85
85
  clean << "#{prop}: #{val};"
@@ -113,7 +113,7 @@ module Loofah
113
113
  # # => "\nTitle\n\nContent\n"
114
114
  #
115
115
  def to_text(options={})
116
- Loofah::Helpers.remove_extraneous_whitespace self.dup.scrub!(:newline_block_elements).text(options)
116
+ Loofah.remove_extraneous_whitespace self.dup.scrub!(:newline_block_elements).text(options)
117
117
  end
118
118
  end
119
119
 
@@ -97,6 +97,13 @@ class Html5TestSanitizer < Loofah::TestCase
97
97
  check_sanitization(input, htmloutput, output, output)
98
98
  end
99
99
 
100
+ def test_should_allow_multi_word_data_attributes
101
+ input = "<p data-foo-bar-id='11'>foo <bad>bar</bad> baz</p>"
102
+ output = htmloutput = "<p data-foo-bar-id='11'>foo &lt;bad&gt;bar&lt;/bad&gt; baz</p>"
103
+
104
+ check_sanitization(input, htmloutput, output, output)
105
+ end
106
+
100
107
  ##
101
108
  ## libxml2 downcases attributes, so this is moot.
102
109
  ##
@@ -220,6 +227,12 @@ class Html5TestSanitizer < Loofah::TestCase
220
227
  sane = Nokogiri::HTML(Loofah.scrub_fragment(html, :escape).to_xml)
221
228
  assert_match %r/-0.03em/, sane.inner_html
222
229
  end
230
+
231
+ def test_css_negative_value_sanitization_shorthand_css_properties
232
+ html = "<span style=\"margin-left:-0.05em;\">"
233
+ sane = Nokogiri::HTML(Loofah.scrub_fragment(html, :escape).to_xml)
234
+ assert_match %r/-0.05em/, sane.inner_html
235
+ end
223
236
  end
224
237
 
225
238
  # <html5_license>
@@ -143,7 +143,7 @@ mso-bidi-language:#0400;}
143
143
 
144
144
  def test_fragment_whitewash_on_microsofty_markup
145
145
  whitewashed = Loofah.fragment(MSWORD_HTML).scrub!(:whitewash)
146
- assert_equal "<p>Foo <b>BOLD</b></p>", whitewashed.to_s
146
+ assert_equal "<p>Foo <b>BOLD</b></p>", whitewashed.to_s.strip
147
147
  end
148
148
 
149
149
  def test_document_whitewash_on_microsofty_markup
@@ -39,9 +39,11 @@ class IntegrationTestHtml < Loofah::TestCase
39
39
  end
40
40
 
41
41
  context "html document" do
42
- it "not include head tags (like style)" do
43
- html = Loofah.document "<style>foo</style><div>bar</div>"
44
- assert_equal "bar", html.text
42
+ context "#text" do
43
+ it "not include head tags (like style)" do
44
+ html = Loofah.document "<style>foo</style><div>bar</div>"
45
+ assert_equal "bar", html.text
46
+ end
45
47
  end
46
48
 
47
49
  context "#to_text" do
@@ -6,107 +6,111 @@ class UnitTestApi < Loofah::TestCase
6
6
  XML_FRAGMENT = "<div>a</div>\n<div>b</div>"
7
7
  XML = "<root>#{XML_FRAGMENT}</root>"
8
8
 
9
- def test_loofah_document
10
- doc = Loofah.document(HTML)
11
- assert_html_documentish doc
12
- end
13
-
14
- def test_loofah_fragment
15
- doc = Loofah.fragment(HTML)
16
- assert_html_fragmentish doc
17
- end
18
-
19
- def test_loofah_xml_document
20
- doc = Loofah.xml_document(XML)
21
- assert_xml_documentish doc
22
- end
23
-
24
- def test_loofah_xml_fragment
25
- doc = Loofah.xml_fragment(XML_FRAGMENT)
26
- assert_xml_fragmentish doc
27
- end
28
-
29
- def test_loofah_html_document_parse_method
30
- doc = Loofah::HTML::Document.parse(HTML)
31
- assert_html_documentish doc
32
- end
33
-
34
- def test_loofah_xml_document_parse_method
35
- doc = Loofah::XML::Document.parse(XML)
36
- assert_xml_documentish doc
37
- end
38
-
39
- def test_loofah_html_document_fragment_parse_method
40
- doc = Loofah::HTML::DocumentFragment.parse(HTML)
41
- assert_html_fragmentish doc
42
- end
43
-
44
- def test_loofah_xml_document_fragment_parse_method
45
- doc = Loofah::XML::DocumentFragment.parse(XML_FRAGMENT)
46
- assert_xml_fragmentish doc
47
- end
48
-
49
- def test_loofah_document_scrub!
50
- doc = Loofah.document(HTML).scrub!(:strip)
51
- assert_html_documentish doc
52
- end
53
-
54
- def test_loofah_fragment_scrub!
55
- doc = Loofah.fragment(HTML).scrub!(:strip)
56
- assert_html_fragmentish doc
57
- end
58
-
59
- def test_loofah_xml_document_scrub!
60
- scrubber = Loofah::Scrubber.new { |node| }
61
- doc = Loofah.xml_document(XML).scrub!(scrubber)
62
- assert_xml_documentish doc
63
- end
64
-
65
- def test_loofah_xml_fragment_scrub!
66
- scrubber = Loofah::Scrubber.new { |node| }
67
- doc = Loofah.xml_fragment(XML_FRAGMENT).scrub!(scrubber)
68
- assert_xml_fragmentish doc
69
- end
70
-
71
- def test_loofah_html_document_node_scrub!
72
- doc = Loofah.document(HTML)
73
- assert(node = doc.at_css("div"))
74
- node.scrub!(:strip)
75
- end
76
-
77
- def test_loofah_html_fragment_node_scrub!
78
- doc = Loofah.fragment(HTML)
79
- assert(node = doc.at_css("div"))
80
- node.scrub!(:strip)
81
- end
82
-
83
- def test_loofah_xml_document_node_scrub!
84
- doc = Loofah.xml_document(XML)
85
- assert(node = doc.at_css("div"))
86
- node.scrub!(:strip)
87
- end
88
-
89
- def test_loofah_xml_fragment_node_scrub!
90
- doc = Loofah.xml_fragment(XML)
91
- assert(node = doc.at_css("div"))
92
- node.scrub!(:strip)
93
- end
94
-
95
- def test_loofah_nodeset_scrub!
96
- doc = Loofah.document(HTML)
97
- assert(node_set = doc.css("div"))
98
- assert_instance_of Nokogiri::XML::NodeSet, node_set
99
- node_set.scrub!(:strip)
100
- end
101
-
102
- it "HTML::DocumentFragment exposes serialize_root" do
103
- doc = Loofah.fragment(HTML)
104
- assert_equal HTML, doc.serialize_root.to_html
105
- end
106
-
107
- it "HTML::Document exposes serialize_root" do
108
- doc = Loofah.document(HTML)
109
- assert_equal HTML, doc.serialize_root.children.to_html
9
+ describe "HTML" do
10
+ it "creates documents" do
11
+ doc = Loofah.document(HTML)
12
+ assert_html_documentish doc
13
+ end
14
+
15
+ it "creates fragments" do
16
+ doc = Loofah.fragment(HTML)
17
+ assert_html_fragmentish doc
18
+ end
19
+
20
+ it "parses documents" do
21
+ doc = Loofah::HTML::Document.parse(HTML)
22
+ assert_html_documentish doc
23
+ end
24
+
25
+ it "parses document fragment" do
26
+ doc = Loofah::HTML::DocumentFragment.parse(HTML)
27
+ assert_html_fragmentish doc
28
+ end
29
+
30
+ it "scrubs documents" do
31
+ doc = Loofah.document(HTML).scrub!(:strip)
32
+ assert_html_documentish doc
33
+ end
34
+
35
+ it "scrubs fragments" do
36
+ doc = Loofah.fragment(HTML).scrub!(:strip)
37
+ assert_html_fragmentish doc
38
+ end
39
+
40
+ it "scrubs document nodes" do
41
+ doc = Loofah.document(HTML)
42
+ assert(node = doc.at_css("div"))
43
+ node.scrub!(:strip)
44
+ end
45
+
46
+ it "scrubs fragment nodes" do
47
+ doc = Loofah.fragment(HTML)
48
+ assert(node = doc.at_css("div"))
49
+ node.scrub!(:strip)
50
+ end
51
+
52
+ it "scrubs document nodesets" do
53
+ doc = Loofah.document(HTML)
54
+ assert(node_set = doc.css("div"))
55
+ assert_instance_of Nokogiri::XML::NodeSet, node_set
56
+ node_set.scrub!(:strip)
57
+ end
58
+
59
+ it "exposes serialize_root on HTML::DocumentFragment" do
60
+ doc = Loofah.fragment(HTML)
61
+ assert_equal HTML, doc.serialize_root.to_html
62
+ end
63
+
64
+ it "exposes serialize_root on HTML::Document" do
65
+ doc = Loofah.document(HTML)
66
+ assert_equal HTML, doc.serialize_root.children.to_html
67
+ end
68
+ end
69
+
70
+ describe "XML" do
71
+ it "creates documents" do
72
+ doc = Loofah.xml_document(XML)
73
+ assert_xml_documentish doc
74
+ end
75
+
76
+ it "creates fragments" do
77
+ doc = Loofah.xml_fragment(XML_FRAGMENT)
78
+ assert_xml_fragmentish doc
79
+ end
80
+
81
+ it "parses documents" do
82
+ doc = Loofah::XML::Document.parse(XML)
83
+ assert_xml_documentish doc
84
+ end
85
+
86
+ it "parses document fragments" do
87
+ doc = Loofah::XML::DocumentFragment.parse(XML_FRAGMENT)
88
+ assert_xml_fragmentish doc
89
+ end
90
+
91
+ it "scrubs documents" do
92
+ scrubber = Loofah::Scrubber.new { |node| }
93
+ doc = Loofah.xml_document(XML).scrub!(scrubber)
94
+ assert_xml_documentish doc
95
+ end
96
+
97
+ it "scrubs fragments" do
98
+ scrubber = Loofah::Scrubber.new { |node| }
99
+ doc = Loofah.xml_fragment(XML_FRAGMENT).scrub!(scrubber)
100
+ assert_xml_fragmentish doc
101
+ end
102
+
103
+ it "scrubs document nodes" do
104
+ doc = Loofah.xml_document(XML)
105
+ assert(node = doc.at_css("div"))
106
+ node.scrub!(:strip)
107
+ end
108
+
109
+ it "scrubs fragment nodes" do
110
+ doc = Loofah.xml_fragment(XML)
111
+ assert(node = doc.at_css("div"))
112
+ node.scrub!(:strip)
113
+ end
110
114
  end
111
115
 
112
116
  private
@@ -2,19 +2,19 @@
2
2
  require "helper"
3
3
 
4
4
  class UnitTestEncoding < Loofah::TestCase
5
- def setup
6
- @utf8_string = "日本語"
7
- end
5
+ UTF8_STRING = "日本語"
8
6
 
9
7
  if String.new.respond_to?(:encoding)
10
- def test_html_fragment_string_sets_encoding
11
- escaped = Loofah.scrub_fragment(@utf8_string, :escape).to_s
12
- assert_equal @utf8_string.encoding, escaped.encoding
13
- end
8
+ describe "scrub_fragment" do
9
+ it "sets the encoding for html" do
10
+ escaped = Loofah.scrub_fragment(UTF8_STRING, :escape).to_s
11
+ assert_equal UTF8_STRING.encoding, escaped.encoding
12
+ end
14
13
 
15
- def test_xml_fragment_string_sets_encoding
16
- escaped = Loofah.scrub_xml_fragment(@utf8_string, :escape).to_s
17
- assert_equal @utf8_string.encoding, escaped.encoding
14
+ it "sets the encoding for xml" do
15
+ escaped = Loofah.scrub_xml_fragment(UTF8_STRING, :escape).to_s
16
+ assert_equal UTF8_STRING.encoding, escaped.encoding
17
+ end
18
18
  end
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,170 +1,170 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loofah
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
8
8
  - Bryan Helmkamp
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-21 00:00:00.000000000 Z
12
+ date: 2015-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: !ruby/object:Gem::Requirement
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: 1.5.9
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
21
+ requirement: !ruby/object:Gem::Requirement
24
22
  requirements:
25
- - - ">="
23
+ - - '>='
26
24
  - !ruby/object:Gem::Version
27
25
  version: 1.5.9
26
+ prerelease: false
27
+ type: :runtime
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rdoc
30
- requirement: !ruby/object:Gem::Requirement
30
+ version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ~>
33
33
  - !ruby/object:Gem::Version
34
34
  version: '4.0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
35
+ requirement: !ruby/object:Gem::Requirement
38
36
  requirements:
39
- - - "~>"
37
+ - - ~>
40
38
  - !ruby/object:Gem::Version
41
39
  version: '4.0'
40
+ prerelease: false
41
+ type: :development
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
- requirement: !ruby/object:Gem::Requirement
44
+ version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - '>='
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0.8'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
52
50
  requirements:
53
- - - ">="
51
+ - - '>='
54
52
  - !ruby/object:Gem::Version
55
53
  version: '0.8'
54
+ prerelease: false
55
+ type: :development
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: minitest
58
- requirement: !ruby/object:Gem::Requirement
58
+ version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "~>"
60
+ - - ~>
61
61
  - !ruby/object:Gem::Version
62
62
  version: '2.2'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
63
+ requirement: !ruby/object:Gem::Requirement
66
64
  requirements:
67
- - - "~>"
65
+ - - ~>
68
66
  - !ruby/object:Gem::Version
69
67
  version: '2.2'
68
+ prerelease: false
69
+ type: :development
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rr
72
- requirement: !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - "~>"
74
+ - - ~>
75
75
  - !ruby/object:Gem::Version
76
76
  version: 1.1.0
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
77
+ requirement: !ruby/object:Gem::Requirement
80
78
  requirements:
81
- - - "~>"
79
+ - - ~>
82
80
  - !ruby/object:Gem::Version
83
81
  version: 1.1.0
82
+ prerelease: false
83
+ type: :development
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: json
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
86
91
  requirement: !ruby/object:Gem::Requirement
87
92
  requirements:
88
- - - ">="
93
+ - - '>='
89
94
  - !ruby/object:Gem::Version
90
95
  version: '0'
91
- type: :development
92
96
  prerelease: false
97
+ type: :development
98
+ - !ruby/object:Gem::Dependency
99
+ name: hoe-gemspec
93
100
  version_requirements: !ruby/object:Gem::Requirement
94
101
  requirements:
95
- - - ">="
102
+ - - '>='
96
103
  - !ruby/object:Gem::Version
97
104
  version: '0'
98
- - !ruby/object:Gem::Dependency
99
- name: hoe-gemspec
100
105
  requirement: !ruby/object:Gem::Requirement
101
106
  requirements:
102
- - - ">="
107
+ - - '>='
103
108
  - !ruby/object:Gem::Version
104
109
  version: '0'
105
- type: :development
106
110
  prerelease: false
111
+ type: :development
112
+ - !ruby/object:Gem::Dependency
113
+ name: hoe-debugging
107
114
  version_requirements: !ruby/object:Gem::Requirement
108
115
  requirements:
109
- - - ">="
116
+ - - '>='
110
117
  - !ruby/object:Gem::Version
111
118
  version: '0'
112
- - !ruby/object:Gem::Dependency
113
- name: hoe-debugging
114
119
  requirement: !ruby/object:Gem::Requirement
115
120
  requirements:
116
- - - ">="
121
+ - - '>='
117
122
  - !ruby/object:Gem::Version
118
123
  version: '0'
119
- type: :development
120
124
  prerelease: false
125
+ type: :development
126
+ - !ruby/object:Gem::Dependency
127
+ name: hoe-bundler
121
128
  version_requirements: !ruby/object:Gem::Requirement
122
129
  requirements:
123
- - - ">="
130
+ - - '>='
124
131
  - !ruby/object:Gem::Version
125
132
  version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: hoe-bundler
128
133
  requirement: !ruby/object:Gem::Requirement
129
134
  requirements:
130
- - - ">="
135
+ - - '>='
131
136
  - !ruby/object:Gem::Version
132
137
  version: '0'
133
- type: :development
134
138
  prerelease: false
139
+ type: :development
140
+ - !ruby/object:Gem::Dependency
141
+ name: hoe-git
135
142
  version_requirements: !ruby/object:Gem::Requirement
136
143
  requirements:
137
- - - ">="
144
+ - - '>='
138
145
  - !ruby/object:Gem::Version
139
146
  version: '0'
140
- - !ruby/object:Gem::Dependency
141
- name: hoe-git
142
147
  requirement: !ruby/object:Gem::Requirement
143
148
  requirements:
144
- - - ">="
149
+ - - '>='
145
150
  - !ruby/object:Gem::Version
146
151
  version: '0'
147
- type: :development
148
152
  prerelease: false
153
+ type: :development
154
+ - !ruby/object:Gem::Dependency
155
+ name: hoe
149
156
  version_requirements: !ruby/object:Gem::Requirement
150
157
  requirements:
151
- - - ">="
158
+ - - ~>
152
159
  - !ruby/object:Gem::Version
153
- version: '0'
154
- - !ruby/object:Gem::Dependency
155
- name: hoe
160
+ version: '3.13'
156
161
  requirement: !ruby/object:Gem::Requirement
157
162
  requirements:
158
- - - "~>"
163
+ - - ~>
159
164
  - !ruby/object:Gem::Version
160
- version: '3.11'
161
- type: :development
165
+ version: '3.13'
162
166
  prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '3.11'
167
+ type: :development
168
168
  description: |-
169
169
  Loofah is a general library for manipulating and transforming HTML/XML
170
170
  documents and fragments. It's built on top of Nokogiri and libxml2, so
@@ -189,7 +189,7 @@ extra_rdoc_files:
189
189
  - Manifest.txt
190
190
  - README.rdoc
191
191
  files:
192
- - ".gemtest"
192
+ - .gemtest
193
193
  - CHANGELOG.rdoc
194
194
  - Gemfile
195
195
  - MIT-LICENSE.txt
@@ -230,38 +230,26 @@ homepage: https://github.com/flavorjones/loofah
230
230
  licenses:
231
231
  - MIT
232
232
  metadata: {}
233
- post_install_message:
233
+ post_install_message:
234
234
  rdoc_options:
235
- - "--main"
235
+ - --main
236
236
  - README.rdoc
237
237
  require_paths:
238
238
  - lib
239
239
  required_ruby_version: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - ">="
241
+ - - '>='
242
242
  - !ruby/object:Gem::Version
243
243
  version: '0'
244
244
  required_rubygems_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
- - - ">="
246
+ - - '>='
247
247
  - !ruby/object:Gem::Version
248
248
  version: '0'
249
249
  requirements: []
250
- rubyforge_project:
251
- rubygems_version: 2.2.2
252
- signing_key:
250
+ rubyforge_project:
251
+ rubygems_version: 2.4.5
252
+ signing_key:
253
253
  specification_version: 4
254
- summary: Loofah is a general library for manipulating and transforming HTML/XML documents
255
- and fragments
256
- test_files:
257
- - test/html5/test_sanitizer.rb
258
- - test/unit/test_helpers.rb
259
- - test/unit/test_scrubbers.rb
260
- - test/unit/test_scrubber.rb
261
- - test/unit/test_encoding.rb
262
- - test/unit/test_api.rb
263
- - test/integration/test_helpers.rb
264
- - test/integration/test_xml.rb
265
- - test/integration/test_ad_hoc.rb
266
- - test/integration/test_scrubbers.rb
267
- - test/integration/test_html.rb
254
+ summary: Loofah is a general library for manipulating and transforming HTML/XML documents and fragments
255
+ test_files: []