nokogiri 1.10.3 → 1.10.5

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

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65e49a65f09f5f658fe3239cdc42b9a5a07e06511b316333402a3fc0723cc7d6
4
- data.tar.gz: 27336c7324b39be391445e24e3bc1eb617ae3245e78ca73ce6cac9fe9ecdd085
3
+ metadata.gz: d09078ee6949b248592e23a36f6aab7de47aefaf02f03056a5763214853f2c58
4
+ data.tar.gz: 1350d89ecb005263c7ed9432268385e2dca176866c1e065fdef1396a1978fa12
5
5
  SHA512:
6
- metadata.gz: 97adbfd1174396fd2d6b3fd907e66d361dc43e9ffe7cbfbe17bd3ada795e9efbe5a3d535e1af276bf6d6b8467e4b1c546003756c7521cda42980a7f04010496d
7
- data.tar.gz: f7ee50a0bdde66856922b2446a804c4582949bae79830e5eacfeea39e50ab346d411ec242bf64fb3e04c1b6850873adaf2d362b67a6a2787c1964d0bee83de2b
6
+ metadata.gz: d8a48d06cc6100c8ffa25b64ad6e3e4f839e8445a98191a4e1caef98d9f8fc648b6f1a578b79451b168141d166e4ba4c5a58c954b2805c4689983311f423eb15
7
+ data.tar.gz: bcafffbdfabf2370d543652b7b77f2b03c1c8ae6d9dbe1aaa05d042e619310ac861ee8458baab7ebe569f0d14ca6ec5bd60a4a379bd04aaf8dd8618d587be7ee
data/dependencies.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  libxml2:
2
- version: "2.9.9"
3
- sha256: "94fb70890143e3c6549f265cee93ec064c80a84c42ad0f23e85ee1fd6540a871"
2
+ version: "2.9.10"
3
+ sha256: "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f"
4
4
  # manually verified checksum:
5
5
  #
6
- # $ gpg --verify libxml2-2.9.9.tar.gz.asc ports/archives/libxml2-2.9.9.tar.gz
7
- # gpg: Signature made Thu 03 Jan 2019 01:14:47 PM EST
8
- # gpg: using RSA key 15588B26596BEA5D
6
+ # $ gpg --verify libxml2-2.9.10.tar.gz.asc ports/archives/libxml2-2.9.10.tar.gz
7
+ # gpg: Signature made Wed 30 Oct 2019 03:15:42 PM EDT
8
+ # gpg: using RSA key DB46681BB91ADCEA170FA2D415588B26596BEA5D
9
9
  # gpg: Good signature from "Daniel Veillard (Red Hat work email) <veillard@redhat.com>" [unknown]
10
10
  # gpg: aka "Daniel Veillard <Daniel.Veillard@w3.org>" [unknown]
11
11
  # gpg: WARNING: This key is not certified with a trusted signature!
@@ -16,25 +16,26 @@ libxml2:
16
16
  # using this pgp signature:
17
17
  #
18
18
  # -----BEGIN PGP SIGNATURE-----
19
- #
20
- # iQEbBAABAgAGBQJcLlEXAAoJEBVYiyZZa+pd1B8H93xeCYNBLx+eX0xe3qS3ReS/
21
- # YstjkXKUkmDQYwqQ/9Knmv1P6NX64hQL5E1pZX5sXp36giwXXJ5tCK72VRzektzU
22
- # Kpo+M1/QA9feZQs1GmyKaXYzNwTSJnsdKA9nWqTHZ3bzfdhFSZ0czo94vgY/cz5z
23
- # 9P3FIgeldj1vi8p2rjXbArMFQyaxHnve9LdxI8hbudNSeUw/FEV6mjtXrlZ7MXqn
24
- # hmAkah2JwktOStF5tIlddCRqZeUPUX5flBxT95gfskXXlGEhaoGMXcC3izqqJyV2
25
- # sx5nY7fnXdkwfYsgRUXYWmDmbs8DnFjXH9lux9O4OWglLonaRoAqFPcOzE3aCw==
26
- # =4qWg
19
+ #
20
+ # iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl254V4ACgkQFViLJllr
21
+ # 6l0ldAf6Azt4/oKDfMKRd+xaykUrb+34dr2ZRsjRDS1cnelAtL9TCWhE5lOkLI3c
22
+ # 3FyNRaLhOEOOluZmKTJYyzS42JSSHDhxGj14gIeyafOjvRhHG3h1m5GvMmvgKWkd
23
+ # qzxFrVFSG26iWJxMvxIA88t7M+QHb7ff7xR29ETJscewEmAd3LmZITglK02lWeGz
24
+ # LfxfLuakM6RnCUu0dzacJKO0nMOKju+RL/N9bciI/UOhNYEkWqPnzC0GzbvFLqDu
25
+ # rM+OvCSewSTziiejpdrUwYXkY5Ui2+cxUbacLauEr8iRLg7xXKqv27NORE4yeQcS
26
+ # LgIhxG/qSNfihMS6E1ZO5bK2DbGCZQ==
27
+ # =ZNuc
27
28
  # -----END PGP SIGNATURE-----
28
29
  #
29
30
 
30
31
  libxslt:
31
- version: "1.1.33"
32
- sha256: "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8"
32
+ version: "1.1.34"
33
+ sha256: "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f"
33
34
  # manually verified checksum:
34
35
  #
35
- # $ gpg --verify libxslt-1.1.33.tar.gz.asc ports/archives/libxslt-1.1.33.tar.gz
36
- # gpg: Signature made Thu 03 Jan 2019 01:30:49 PM EST
37
- # gpg: using RSA key 15588B26596BEA5D
36
+ # $ gpg --verify ~/Downloads/libxslt-1.1.34.tar.gz.asc ports/archives/libxslt-1.1.34.tar.gz
37
+ # gpg: Signature made Wed 30 Oct 2019 04:02:48 PM EDT
38
+ # gpg: using RSA key DB46681BB91ADCEA170FA2D415588B26596BEA5D
38
39
  # gpg: Good signature from "Daniel Veillard (Red Hat work email) <veillard@redhat.com>" [unknown]
39
40
  # gpg: aka "Daniel Veillard <Daniel.Veillard@w3.org>" [unknown]
40
41
  # gpg: WARNING: This key is not certified with a trusted signature!
@@ -45,14 +46,15 @@ libxslt:
45
46
  # using this pgp signature:
46
47
  #
47
48
  # -----BEGIN PGP SIGNATURE-----
48
- #
49
- # iQEcBAABAgAGBQJcLlTZAAoJEBVYiyZZa+pd9NkIAIf6ei2iSpR/0QOyS71esDq8
50
- # 407PcUXd/yUjDANm4Uvm7kKK+SbbfBxFIPva4g984Noe1zYMfjK3u3iNs6jykySf
51
- # mN5eo2wNCxsZnqjbnsLgQvn5VCQpPInTddTuGUxgqJyvnR7p785L1oA2EStSPMP4
52
- # BGZ9dZGlbreK35WzgrhUi0VN5egJW2fpMsw7rTPvfwK+90gXL0DEm8v3WlA7fCDL
53
- # QsvuPm7jPOXxdt5bYrVP8wpNMTJIGqV6jxh7Vvl6kiGLldUjCyoCh0AGXLror0Gs
54
- # sAMlRKJNodpcCYkIWxzjLt74sUciKNrPLHZlXJcclZMONen1GWnVDcv83Tt9n6w=
55
- # =iAm8
49
+ #
50
+ # iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl257GgACgkQFViLJllr
51
+ # 6l2vVggAjJEHmASiS56SxhPOsGqbfBihM66gQFoIymQfMu2430N1GSTkLsfbkJO8
52
+ # 8yBX11NjzK/m9uxwshMW3rVCU7EpL3PUimN3reXdPiQj9hAOAWF1V3BZNevbQC2E
53
+ # FCIraioukaidf8sjUG4/sGpK/gOcP/3hYoN0HUoBigCNJjDqhijxM3M3GJJtCASp
54
+ # jL4CQbs2OmxW8ixOZbuWEESvFFHUgYRsdZjRVN+GRfSOvJjxypurmYwQ3RjO7JxL
55
+ # 2FY8qKQ+xpeID8NV8F5OUEvWBjk1QS133VTqBZNlONdnEtV/og6jNu5k0O/Kvhup
56
+ # caR+8TMErOcLr9OgDklO6DoYyAsf9Q==
57
+ # =g4i4
56
58
  # -----END PGP SIGNATURE-----
57
59
  #
58
60
 
@@ -1,151 +1,152 @@
1
1
  #--
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by rex 1.0.5
3
+ # This file is automatically generated by rex 1.0.7
4
4
  # from lexical definition file "lib/nokogiri/css/tokenizer.rex".
5
5
  #++
6
6
 
7
7
  module Nokogiri
8
8
  module CSS
9
9
  class Tokenizer # :nodoc:
10
- require 'strscan'
10
+ require 'strscan'
11
11
 
12
- class ScanError < StandardError ; end
12
+ class ScanError < StandardError ; end
13
13
 
14
- attr_reader :lineno
15
- attr_reader :filename
16
- attr_accessor :state
14
+ attr_reader :lineno
15
+ attr_reader :filename
16
+ attr_accessor :state
17
17
 
18
- def scan_setup(str)
19
- @ss = StringScanner.new(str)
20
- @lineno = 1
21
- @state = nil
22
- end
18
+ def scan_setup(str)
19
+ @ss = StringScanner.new(str)
20
+ @lineno = 1
21
+ @state = nil
22
+ end
23
23
 
24
- def action
25
- yield
26
- end
24
+ def action
25
+ yield
26
+ end
27
27
 
28
- def scan_str(str)
29
- scan_setup(str)
30
- do_parse
31
- end
32
- alias :scan :scan_str
28
+ def scan_str(str)
29
+ scan_setup(str)
30
+ do_parse
31
+ end
32
+ alias :scan :scan_str
33
33
 
34
- def load_file( filename )
35
- @filename = filename
36
- open(filename, "r") do |f|
37
- scan_setup(f.read)
38
- end
39
- end
34
+ def load_file( filename )
35
+ @filename = filename
36
+ File.open(filename, "r") do |f|
37
+ scan_setup(f.read)
38
+ end
39
+ end
40
40
 
41
- def scan_file( filename )
42
- load_file(filename)
43
- do_parse
44
- end
41
+ def scan_file( filename )
42
+ load_file(filename)
43
+ do_parse
44
+ end
45
45
 
46
46
 
47
- def next_token
48
- return if @ss.eos?
49
-
50
- # skips empty actions
51
- until token = _next_token or @ss.eos?; end
52
- token
53
- end
47
+ def next_token
48
+ return if @ss.eos?
54
49
 
55
- def _next_token
56
- text = @ss.peek(1)
57
- @lineno += 1 if text == "\n"
58
- token = case @state
59
- when nil
60
- case
61
- when (text = @ss.scan(/has\([\s]*/))
62
- action { [:HAS, text] }
50
+ # skips empty actions
51
+ until token = _next_token or @ss.eos?; end
52
+ token
53
+ end
63
54
 
64
- when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*\([\s]*/))
65
- action { [:FUNCTION, text] }
55
+ def _next_token
56
+ text = @ss.peek(1)
57
+ @lineno += 1 if text == "\n"
58
+ token = case @state
59
+ when nil
60
+ case
61
+ when (text = @ss.scan(/has\([\s]*/))
62
+ action { [:HAS, text] }
66
63
 
67
- when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*/))
68
- action { [:IDENT, text] }
64
+ when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*\([\s]*/))
65
+ action { [:FUNCTION, text] }
69
66
 
70
- when (text = @ss.scan(/\#([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])+/))
71
- action { [:HASH, text] }
67
+ when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*/))
68
+ action { [:IDENT, text] }
72
69
 
73
- when (text = @ss.scan(/[\s]*~=[\s]*/))
74
- action { [:INCLUDES, text] }
70
+ when (text = @ss.scan(/\#([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])+/))
71
+ action { [:HASH, text] }
75
72
 
76
- when (text = @ss.scan(/[\s]*\|=[\s]*/))
77
- action { [:DASHMATCH, text] }
73
+ when (text = @ss.scan(/[\s]*~=[\s]*/))
74
+ action { [:INCLUDES, text] }
78
75
 
79
- when (text = @ss.scan(/[\s]*\^=[\s]*/))
80
- action { [:PREFIXMATCH, text] }
76
+ when (text = @ss.scan(/[\s]*\|=[\s]*/))
77
+ action { [:DASHMATCH, text] }
81
78
 
82
- when (text = @ss.scan(/[\s]*\$=[\s]*/))
83
- action { [:SUFFIXMATCH, text] }
79
+ when (text = @ss.scan(/[\s]*\^=[\s]*/))
80
+ action { [:PREFIXMATCH, text] }
84
81
 
85
- when (text = @ss.scan(/[\s]*\*=[\s]*/))
86
- action { [:SUBSTRINGMATCH, text] }
82
+ when (text = @ss.scan(/[\s]*\$=[\s]*/))
83
+ action { [:SUFFIXMATCH, text] }
87
84
 
88
- when (text = @ss.scan(/[\s]*!=[\s]*/))
89
- action { [:NOT_EQUAL, text] }
85
+ when (text = @ss.scan(/[\s]*\*=[\s]*/))
86
+ action { [:SUBSTRINGMATCH, text] }
90
87
 
91
- when (text = @ss.scan(/[\s]*=[\s]*/))
92
- action { [:EQUAL, text] }
88
+ when (text = @ss.scan(/[\s]*!=[\s]*/))
89
+ action { [:NOT_EQUAL, text] }
93
90
 
94
- when (text = @ss.scan(/[\s]*\)/))
95
- action { [:RPAREN, text] }
91
+ when (text = @ss.scan(/[\s]*=[\s]*/))
92
+ action { [:EQUAL, text] }
96
93
 
97
- when (text = @ss.scan(/\[[\s]*/))
98
- action { [:LSQUARE, text] }
94
+ when (text = @ss.scan(/[\s]*\)/))
95
+ action { [:RPAREN, text] }
99
96
 
100
- when (text = @ss.scan(/[\s]*\]/))
101
- action { [:RSQUARE, text] }
97
+ when (text = @ss.scan(/\[[\s]*/))
98
+ action { [:LSQUARE, text] }
102
99
 
103
- when (text = @ss.scan(/[\s]*\+[\s]*/))
104
- action { [:PLUS, text] }
100
+ when (text = @ss.scan(/[\s]*\]/))
101
+ action { [:RSQUARE, text] }
105
102
 
106
- when (text = @ss.scan(/[\s]*>[\s]*/))
107
- action { [:GREATER, text] }
103
+ when (text = @ss.scan(/[\s]*\+[\s]*/))
104
+ action { [:PLUS, text] }
108
105
 
109
- when (text = @ss.scan(/[\s]*,[\s]*/))
110
- action { [:COMMA, text] }
106
+ when (text = @ss.scan(/[\s]*>[\s]*/))
107
+ action { [:GREATER, text] }
111
108
 
112
- when (text = @ss.scan(/[\s]*~[\s]*/))
113
- action { [:TILDE, text] }
109
+ when (text = @ss.scan(/[\s]*,[\s]*/))
110
+ action { [:COMMA, text] }
114
111
 
115
- when (text = @ss.scan(/\:not\([\s]*/))
116
- action { [:NOT, text] }
112
+ when (text = @ss.scan(/[\s]*~[\s]*/))
113
+ action { [:TILDE, text] }
117
114
 
118
- when (text = @ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)/))
119
- action { [:NUMBER, text] }
115
+ when (text = @ss.scan(/\:not\([\s]*/))
116
+ action { [:NOT, text] }
120
117
 
121
- when (text = @ss.scan(/[\s]*\/\/[\s]*/))
122
- action { [:DOUBLESLASH, text] }
118
+ when (text = @ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)/))
119
+ action { [:NUMBER, text] }
123
120
 
124
- when (text = @ss.scan(/[\s]*\/[\s]*/))
125
- action { [:SLASH, text] }
121
+ when (text = @ss.scan(/[\s]*\/\/[\s]*/))
122
+ action { [:DOUBLESLASH, text] }
126
123
 
127
- when (text = @ss.scan(/U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?/))
128
- action {[:UNICODE_RANGE, text] }
124
+ when (text = @ss.scan(/[\s]*\/[\s]*/))
125
+ action { [:SLASH, text] }
129
126
 
130
- when (text = @ss.scan(/[\s]+/))
131
- action { [:S, text] }
127
+ when (text = @ss.scan(/U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?/))
128
+ action {[:UNICODE_RANGE, text] }
132
129
 
133
- when (text = @ss.scan(/"([^\n\r\f"]|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*"|'([^\n\r\f']|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*'/))
134
- action { [:STRING, text] }
130
+ when (text = @ss.scan(/[\s]+/))
131
+ action { [:S, text] }
135
132
 
136
- when (text = @ss.scan(/./))
137
- action { [text, text] }
133
+ when (text = @ss.scan(/"([^\n\r\f"]|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*"|'([^\n\r\f']|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*'/))
134
+ action { [:STRING, text] }
138
135
 
139
- else
140
- text = @ss.string[@ss.pos .. -1]
141
- raise ScanError, "can not match: '" + text + "'"
142
- end # if
136
+ when (text = @ss.scan(/./))
137
+ action { [text, text] }
143
138
 
144
- else
145
- raise ScanError, "undefined state: '" + state.to_s + "'"
146
- end # case state
147
- token
148
- end # def _next_token
139
+
140
+ else
141
+ text = @ss.string[@ss.pos .. -1]
142
+ raise ScanError, "can not match: '" + text + "'"
143
+ end # if
144
+
145
+ else
146
+ raise ScanError, "undefined state: '" + state.to_s + "'"
147
+ end # case state
148
+ token
149
+ end # def _next_token
149
150
 
150
151
  end # class
151
152
  end
@@ -1,6 +1,6 @@
1
1
  module Nokogiri
2
2
  # The version of Nokogiri you are using
3
- VERSION = "1.10.3"
3
+ VERSION = "1.10.5"
4
4
 
5
5
  class VersionInfo # :nodoc:
6
6
  def jruby?
@@ -213,7 +213,7 @@ module Nokogiri
213
213
  # xml.foo
214
214
  # end
215
215
  # end
216
- #
216
+ #
217
217
  # puts builder.to_xml
218
218
  #
219
219
  # Will output this xml:
@@ -250,7 +250,7 @@ module Nokogiri
250
250
  # xml.awesome # add the "awesome" tag below "some_tag"
251
251
  # end
252
252
  #
253
- def self.with root, &block
253
+ def self.with(root, &block)
254
254
  new({}, root, &block)
255
255
  end
256
256
 
@@ -263,23 +263,25 @@ module Nokogiri
263
263
  # Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
264
264
  # ...
265
265
  # end
266
- def initialize options = {}, root = nil, &block
267
-
266
+ def initialize(options = {}, root = nil, &block)
268
267
  if root
269
- @doc = root.document
268
+ @doc = root.document
270
269
  @parent = root
271
270
  else
272
- namespace = self.class.name.split('::')
273
- namespace[-1] = 'Document'
274
- @doc = eval(namespace.join('::')).new
275
- @parent = @doc
271
+ klassname = "::" + (self.class.name.split("::")[0..-2] + ["Document"]).join("::")
272
+ klass = begin
273
+ Object.const_get(klassname)
274
+ rescue NameError
275
+ Nokogiri::XML::Document
276
+ end
277
+ @parent = @doc = klass.new
276
278
  end
277
279
 
278
- @context = nil
279
- @arity = nil
280
- @ns = nil
280
+ @context = nil
281
+ @arity = nil
282
+ @ns = nil
281
283
 
282
- options.each do |k,v|
284
+ options.each do |k, v|
283
285
  @doc.send(:"#{k}=", v)
284
286
  end
285
287
 
@@ -287,7 +289,7 @@ module Nokogiri
287
289
 
288
290
  @arity = block.arity
289
291
  if @arity <= 0
290
- @context = eval('self', block.binding)
292
+ @context = eval("self", block.binding)
291
293
  instance_eval(&block)
292
294
  else
293
295
  yield self
@@ -298,26 +300,26 @@ module Nokogiri
298
300
 
299
301
  ###
300
302
  # Create a Text Node with content of +string+
301
- def text string
303
+ def text(string)
302
304
  insert @doc.create_text_node(string)
303
305
  end
304
306
 
305
307
  ###
306
308
  # Create a CDATA Node with content of +string+
307
- def cdata string
309
+ def cdata(string)
308
310
  insert doc.create_cdata(string)
309
311
  end
310
312
 
311
313
  ###
312
314
  # Create a Comment Node with content of +string+
313
- def comment string
315
+ def comment(string)
314
316
  insert doc.create_comment(string)
315
317
  end
316
318
 
317
319
  ###
318
320
  # Build a tag that is associated with namespace +ns+. Raises an
319
321
  # ArgumentError if +ns+ has not been defined higher in the tree.
320
- def [] ns
322
+ def [](ns)
321
323
  if @parent != @doc
322
324
  @ns = @parent.namespace_definitions.find { |x| x.prefix == ns.to_s }
323
325
  end
@@ -348,15 +350,15 @@ module Nokogiri
348
350
 
349
351
  ###
350
352
  # Append the given raw XML +string+ to the document
351
- def << string
353
+ def <<(string)
352
354
  @doc.fragment(string).children.each { |x| insert(x) }
353
355
  end
354
356
 
355
- def method_missing method, *args, &block # :nodoc:
357
+ def method_missing(method, *args, &block) # :nodoc:
356
358
  if @context && @context.respond_to?(method)
357
359
  @context.send(method, *args, &block)
358
360
  else
359
- node = @doc.create_element(method.to_s.sub(/[_!]$/, ''),*args) { |n|
361
+ node = @doc.create_element(method.to_s.sub(/[_!]$/, ""), *args) { |n|
360
362
  # Set up the namespace
361
363
  if @ns.is_a? Nokogiri::XML::Namespace
362
364
  n.namespace = @ns
@@ -377,13 +379,14 @@ module Nokogiri
377
379
  end
378
380
 
379
381
  private
382
+
380
383
  ###
381
384
  # Insert +node+ as a child of the current Node
382
385
  def insert(node, &block)
383
386
  node = @parent.add_child(node)
384
387
  if block_given?
385
388
  old_parent = @parent
386
- @parent = node
389
+ @parent = node
387
390
  @arity ||= block.arity
388
391
  if @arity <= 0
389
392
  instance_eval(&block)
@@ -396,16 +399,16 @@ module Nokogiri
396
399
  end
397
400
 
398
401
  class NodeBuilder # :nodoc:
399
- def initialize node, doc_builder
402
+ def initialize(node, doc_builder)
400
403
  @node = node
401
404
  @doc_builder = doc_builder
402
405
  end
403
406
 
404
- def []= k, v
407
+ def []=(k, v)
405
408
  @node[k] = v
406
409
  end
407
410
 
408
- def [] k
411
+ def [](k)
409
412
  @node[k]
410
413
  end
411
414
 
@@ -413,19 +416,19 @@ module Nokogiri
413
416
  opts = args.last.is_a?(Hash) ? args.pop : {}
414
417
  case method.to_s
415
418
  when /^(.*)!$/
416
- @node['id'] = $1
419
+ @node["id"] = $1
417
420
  @node.content = args.first if args.first
418
421
  when /^(.*)=/
419
422
  @node[$1] = args.first
420
423
  else
421
- @node['class'] =
422
- ((@node['class'] || '').split(/\s/) + [method.to_s]).join(' ')
424
+ @node["class"] =
425
+ ((@node["class"] || "").split(/\s/) + [method.to_s]).join(" ")
423
426
  @node.content = args.first if args.first
424
427
  end
425
428
 
426
429
  # Assign any extra options
427
- opts.each do |k,v|
428
- @node[k.to_s] = ((@node[k.to_s] || '').split(/\s/) + [v]).join(' ')
430
+ opts.each do |k, v|
431
+ @node[k.to_s] = ((@node[k.to_s] || "").split(/\s/) + [v]).join(" ")
429
432
  end
430
433
 
431
434
  if block_given?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.3
4
+ version: 1.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-04-22 00:00:00.000000000 Z
17
+ date: 2019-10-31 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: mini_portile2
@@ -184,6 +184,20 @@ dependencies:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
186
  version: 1.0.5
187
+ - !ruby/object:Gem::Dependency
188
+ name: rubocop
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '0.73'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.73'
187
201
  - !ruby/object:Gem::Dependency
188
202
  name: simplecov
189
203
  requirement: !ruby/object:Gem::Requirement
@@ -224,14 +238,14 @@ dependencies:
224
238
  requirements:
225
239
  - - "~>"
226
240
  - !ruby/object:Gem::Version
227
- version: '3.17'
241
+ version: '3.18'
228
242
  type: :development
229
243
  prerelease: false
230
244
  version_requirements: !ruby/object:Gem::Requirement
231
245
  requirements:
232
246
  - - "~>"
233
247
  - !ruby/object:Gem::Version
234
- version: '3.17'
248
+ version: '3.18'
235
249
  description: |-
236
250
  Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among
237
251
  Nokogiri's many features is the ability to search documents via XPath
@@ -428,9 +442,8 @@ files:
428
442
  - patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
429
443
  - patches/libxml2/0002-Remove-script-macro-support.patch
430
444
  - patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch
431
- - patches/libxslt/0001-Fix-security-framework-bypass.patch
432
- - ports/archives/libxml2-2.9.9.tar.gz
433
- - ports/archives/libxslt-1.1.33.tar.gz
445
+ - ports/archives/libxml2-2.9.10.tar.gz
446
+ - ports/archives/libxslt-1.1.34.tar.gz
434
447
  homepage:
435
448
  licenses:
436
449
  - MIT
@@ -1,120 +0,0 @@
1
- From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001
2
- From: Nick Wellnhofer <wellnhofer@aevum.de>
3
- Date: Sun, 24 Mar 2019 09:51:39 +0100
4
- Subject: [PATCH] Fix security framework bypass
5
-
6
- xsltCheckRead and xsltCheckWrite return -1 in case of error but callers
7
- don't check for this condition and allow access. With a specially
8
- crafted URL, xsltCheckRead could be tricked into returning an error
9
- because of a supposedly invalid URL that would still be loaded
10
- succesfully later on.
11
-
12
- Fixes #12.
13
-
14
- Thanks to Felix Wilhelm for the report.
15
- ---
16
- libxslt/documents.c | 18 ++++++++++--------
17
- libxslt/imports.c | 9 +++++----
18
- libxslt/transform.c | 9 +++++----
19
- libxslt/xslt.c | 9 +++++----
20
- 4 files changed, 25 insertions(+), 20 deletions(-)
21
-
22
- diff --git a/libxslt/documents.c b/libxslt/documents.c
23
- index 3f3a731..4aad11b 100644
24
- --- a/libxslt/documents.c
25
- +++ b/libxslt/documents.c
26
- @@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
27
- int res;
28
-
29
- res = xsltCheckRead(ctxt->sec, ctxt, URI);
30
- - if (res == 0) {
31
- - xsltTransformError(ctxt, NULL, NULL,
32
- - "xsltLoadDocument: read rights for %s denied\n",
33
- - URI);
34
- + if (res <= 0) {
35
- + if (res == 0)
36
- + xsltTransformError(ctxt, NULL, NULL,
37
- + "xsltLoadDocument: read rights for %s denied\n",
38
- + URI);
39
- return(NULL);
40
- }
41
- }
42
- @@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
43
- int res;
44
-
45
- res = xsltCheckRead(sec, NULL, URI);
46
- - if (res == 0) {
47
- - xsltTransformError(NULL, NULL, NULL,
48
- - "xsltLoadStyleDocument: read rights for %s denied\n",
49
- - URI);
50
- + if (res <= 0) {
51
- + if (res == 0)
52
- + xsltTransformError(NULL, NULL, NULL,
53
- + "xsltLoadStyleDocument: read rights for %s denied\n",
54
- + URI);
55
- return(NULL);
56
- }
57
- }
58
- diff --git a/libxslt/imports.c b/libxslt/imports.c
59
- index 874870c..3783b24 100644
60
- --- a/libxslt/imports.c
61
- +++ b/libxslt/imports.c
62
- @@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
63
- int secres;
64
-
65
- secres = xsltCheckRead(sec, NULL, URI);
66
- - if (secres == 0) {
67
- - xsltTransformError(NULL, NULL, NULL,
68
- - "xsl:import: read rights for %s denied\n",
69
- - URI);
70
- + if (secres <= 0) {
71
- + if (secres == 0)
72
- + xsltTransformError(NULL, NULL, NULL,
73
- + "xsl:import: read rights for %s denied\n",
74
- + URI);
75
- goto error;
76
- }
77
- }
78
- diff --git a/libxslt/transform.c b/libxslt/transform.c
79
- index 1379391..0636dbd 100644
80
- --- a/libxslt/transform.c
81
- +++ b/libxslt/transform.c
82
- @@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
83
- */
84
- if (ctxt->sec != NULL) {
85
- ret = xsltCheckWrite(ctxt->sec, ctxt, filename);
86
- - if (ret == 0) {
87
- - xsltTransformError(ctxt, NULL, inst,
88
- - "xsltDocumentElem: write rights for %s denied\n",
89
- - filename);
90
- + if (ret <= 0) {
91
- + if (ret == 0)
92
- + xsltTransformError(ctxt, NULL, inst,
93
- + "xsltDocumentElem: write rights for %s denied\n",
94
- + filename);
95
- xmlFree(URL);
96
- xmlFree(filename);
97
- return;
98
- diff --git a/libxslt/xslt.c b/libxslt/xslt.c
99
- index 780a5ad..a234eb7 100644
100
- --- a/libxslt/xslt.c
101
- +++ b/libxslt/xslt.c
102
- @@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) {
103
- int res;
104
-
105
- res = xsltCheckRead(sec, NULL, filename);
106
- - if (res == 0) {
107
- - xsltTransformError(NULL, NULL, NULL,
108
- - "xsltParseStylesheetFile: read rights for %s denied\n",
109
- - filename);
110
- + if (res <= 0) {
111
- + if (res == 0)
112
- + xsltTransformError(NULL, NULL, NULL,
113
- + "xsltParseStylesheetFile: read rights for %s denied\n",
114
- + filename);
115
- return(NULL);
116
- }
117
- }
118
- --
119
- 2.17.1
120
-
Binary file
Binary file