active_cached_resource 0.0.1.pre → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/Rakefile +22 -14
  4. data/lib/active_cached_resource/version.rb +3 -3
  5. data/lib/activeresource/examples/performance.rb +1 -1
  6. data/lib/activeresource/lib/active_resource/collection.rb +14 -1
  7. data/lib/activeresource/lib/active_resource/railtie.rb +2 -2
  8. data/lib/activeresource/lib/active_resource.rb +1 -1
  9. data/lib/activeresource/test/abstract_unit.rb +2 -1
  10. data/lib/activeresource/test/cases/active_job_serializer_test.rb +1 -1
  11. data/lib/activeresource/test/cases/collection_test.rb +24 -0
  12. data/lib/activeresource/test/cases/log_subscriber_test.rb +2 -1
  13. data/lib/activeresource/test/fixtures/fixtures.rbi +46 -0
  14. data/sorbet/config +2 -0
  15. data/sorbet/rbi/gems/{actioncable@8.0.0.rbi → actioncable@8.0.1.rbi} +51 -51
  16. data/sorbet/rbi/gems/{actionpack@8.0.0.rbi → actionpack@8.0.1.rbi} +548 -346
  17. data/sorbet/rbi/gems/{actionview@8.0.0.rbi → actionview@8.0.1.rbi} +465 -263
  18. data/sorbet/rbi/gems/activejob@8.0.1.rbi +90 -0
  19. data/sorbet/rbi/gems/activemodel-serializers-xml@1.0.3.rbi +4 -4
  20. data/sorbet/rbi/gems/{activemodel@8.0.0.rbi → activemodel@8.0.1.rbi} +11 -3
  21. data/sorbet/rbi/gems/{activerecord@8.0.0.rbi → activerecord@8.0.1.rbi} +957 -576
  22. data/sorbet/rbi/gems/{activesupport@8.0.0.rbi → activesupport@8.0.1.rbi} +287 -112
  23. data/sorbet/rbi/gems/{json@2.8.2.rbi → json@2.9.0.rbi} +107 -64
  24. data/sorbet/rbi/gems/{logger@1.6.1.rbi → logger@1.6.3.rbi} +31 -11
  25. data/sorbet/rbi/gems/mocha@2.7.1.rbi +12 -0
  26. data/sorbet/rbi/gems/msgpack@1.7.5.rbi +320 -0
  27. data/sorbet/rbi/gems/{nokogiri@1.16.7.rbi → nokogiri@1.17.2.rbi} +1692 -802
  28. data/sorbet/rbi/gems/{psych@5.2.0.rbi → psych@5.2.1.rbi} +47 -47
  29. data/sorbet/rbi/gems/rack@3.1.8.rbi +1 -1
  30. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +22 -22
  31. data/sorbet/rbi/gems/{rails-html-sanitizer@1.6.0.rbi → rails-html-sanitizer@1.6.2.rbi} +100 -100
  32. data/sorbet/rbi/gems/{railties@8.0.0.rbi → railties@8.0.1.rbi} +186 -126
  33. data/sorbet/rbi/gems/rake@13.2.1.rbi +0 -63
  34. data/sorbet/rbi/gems/{rdoc@6.8.1.rbi → rdoc@6.9.1.rbi} +160 -139
  35. data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.9.3.rbi} +35 -35
  36. data/sorbet/rbi/gems/{reline@0.5.12.rbi → reline@0.6.0.rbi} +473 -435
  37. data/sorbet/rbi/gems/{rexml@3.3.9.rbi → rexml@3.4.0.rbi} +87 -74
  38. data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +3 -6
  39. data/sorbet/rbi/gems/{rubocop-ast@1.36.1.rbi → rubocop-ast@1.37.0.rbi} +514 -104
  40. data/sorbet/rbi/gems/rubocop-md@1.2.4.rbi +123 -0
  41. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +2613 -0
  42. data/sorbet/rbi/gems/rubocop-packaging@0.5.2.rbi +388 -0
  43. data/sorbet/rbi/gems/rubocop-rails@2.27.0.rbi +9535 -0
  44. data/sorbet/rbi/gems/{rubocop@1.65.1.rbi → rubocop@1.69.2.rbi} +4058 -2628
  45. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  46. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +78 -0
  47. data/sorbet/rbi/gems/sqlite3@2.3.1.rbi +1824 -0
  48. data/sorbet/rbi/gems/{standard@1.40.0.rbi → standard@1.43.0.rbi} +61 -64
  49. data/sorbet/rbi/gems/unicode-display_width@3.1.2.rbi +130 -0
  50. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  51. data/sorbet/tapioca/require.rb +2 -1
  52. metadata +49 -139
  53. data/sorbet/rbi/gems/activejob@8.0.0.rbi +0 -9
  54. data/sorbet/rbi/gems/activeresource@6.1.4.rbi +0 -3944
  55. data/sorbet/rbi/gems/securerandom@0.3.2.rbi +0 -395
  56. data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +0 -66
  57. /data/sorbet/rbi/gems/{actionmailbox@8.0.0.rbi → actionmailbox@8.0.1.rbi} +0 -0
  58. /data/sorbet/rbi/gems/{actionmailer@8.0.0.rbi → actionmailer@8.0.1.rbi} +0 -0
  59. /data/sorbet/rbi/gems/{actiontext@8.0.0.rbi → actiontext@8.0.1.rbi} +0 -0
  60. /data/sorbet/rbi/gems/{activestorage@8.0.0.rbi → activestorage@8.0.1.rbi} +0 -0
  61. /data/sorbet/rbi/gems/{date@3.4.0.rbi → date@3.4.1.rbi} +0 -0
  62. /data/sorbet/rbi/gems/{io-console@0.7.2.rbi → io-console@0.8.0.rbi} +0 -0
  63. /data/sorbet/rbi/gems/{minitest@5.25.2.rbi → minitest@5.25.4.rbi} +0 -0
  64. /data/sorbet/rbi/gems/{net-imap@0.5.1.rbi → net-imap@0.5.2.rbi} +0 -0
  65. /data/sorbet/rbi/gems/{rails@8.0.0.rbi → rails@8.0.1.rbi} +0 -0
  66. /data/sorbet/rbi/gems/{rspec-support@3.13.1.rbi → rspec-support@3.13.2.rbi} +0 -0
  67. /data/sorbet/rbi/gems/{rubocop-performance@1.21.1.rbi → rubocop-performance@1.23.0.rbi} +0 -0
  68. /data/sorbet/rbi/gems/{standard-performance@1.4.0.rbi → standard-performance@1.6.0.rbi} +0 -0
  69. /data/sorbet/rbi/gems/{useragent@0.16.10.rbi → useragent@0.16.11.rbi} +0 -0
@@ -37,25 +37,18 @@
37
37
  # source://nokogiri//lib/nokogiri.rb#38
38
38
  module Nokogiri
39
39
  class << self
40
- # source://nokogiri//lib/nokogiri/html4.rb#10
41
- def HTML(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
40
+ # source://nokogiri//lib/nokogiri/html4.rb#7
41
+ def HTML(*_arg0, **_arg1, &_arg2); end
42
42
 
43
- # :call-seq:
44
- # HTML4(input, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block) → Nokogiri::HTML4::Document
45
- #
46
- # Parse HTML. Convenience method for Nokogiri::HTML4::Document.parse
43
+ # Convenience method for Nokogiri::HTML4::Document.parse
47
44
  #
48
- # source://nokogiri//lib/nokogiri/html4.rb#10
49
- def HTML4(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
45
+ # source://nokogiri//lib/nokogiri/html4.rb#7
46
+ def HTML4(*_arg0, **_arg1, &_arg2); end
50
47
 
51
- # Since v1.12.0
52
- #
53
- # ⚠ HTML5 functionality is not available when running JRuby.
54
- #
55
- # Parse an HTML5 document. Convenience method for {Nokogiri::HTML5::Document.parse}
48
+ # Convenience method for Nokogiri::HTML5::Document.parse
56
49
  #
57
- # source://nokogiri//lib/nokogiri/html5.rb#30
58
- def HTML5(input, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
50
+ # source://nokogiri//lib/nokogiri/html5.rb#28
51
+ def HTML5(*_arg0, **_arg1, &_arg2); end
59
52
 
60
53
  # Parse a document and add the Slop decorator. The Slop decorator
61
54
  # implements method_missing such that methods may be used instead of CSS
@@ -74,19 +67,15 @@ module Nokogiri
74
67
  # source://nokogiri//lib/nokogiri.rb#91
75
68
  def Slop(*args, &block); end
76
69
 
77
- # Parse XML. Convenience method for Nokogiri::XML::Document.parse
70
+ # Convenience method for Nokogiri::XML::Document.parse
78
71
  #
79
- # source://nokogiri//lib/nokogiri/xml.rb#7
80
- def XML(thing, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
72
+ # source://nokogiri//lib/nokogiri/xml.rb#6
73
+ def XML(*_arg0, **_arg1, &_arg2); end
81
74
 
82
- # Create a Nokogiri::XSLT::Stylesheet with +stylesheet+.
75
+ # Convenience method for Nokogiri::XSLT.parse
83
76
  #
84
- # Example:
85
- #
86
- # xslt = Nokogiri::XSLT(File.read(ARGV[0]))
87
- #
88
- # source://nokogiri//lib/nokogiri/xslt.rb#13
89
- def XSLT(stylesheet, modules = T.unsafe(nil)); end
77
+ # source://nokogiri//lib/nokogiri/xslt.rb#7
78
+ def XSLT(*_arg0, **_arg1, &_arg2); end
90
79
 
91
80
  # source://nokogiri//lib/nokogiri.rb#96
92
81
  def install_default_aliases; end
@@ -133,37 +122,77 @@ module Nokogiri::CSS
133
122
  def parse(selector); end
134
123
 
135
124
  # :call-seq:
136
- # xpath_for(selector) → String
137
- # xpath_for(selector [, prefix:] [, visitor:] [, ns:]) → String
125
+ # xpath_for(selector_list) → Array<String>
126
+ # xpath_for(selector_list [, prefix:] [, ns:] [, visitor:] [, cache:]) → Array<String>
127
+ #
128
+ # Translate a CSS selector list to the equivalent XPath expressions.
129
+ #
130
+ # 💡 Note that translated queries are cached by default for performance concerns.
138
131
  #
139
- # Translate a CSS selector to the equivalent XPath query.
132
+ # Users should prefer Nokogiri::XML::Searchable#css, which is mixed into all document and
133
+ # node classes, for querying documents with CSS selectors. This method is the underlying
134
+ # mechanism used by XML::Searchable and is provided solely for advanced users to translate
135
+ # \CSS selectors to XPath directly.
136
+ #
137
+ # Also see Nokogiri::XML::Searchable#css for documentation on supported CSS selector features,
138
+ # some extended syntax that Nokogiri supports, and advanced CSS features like pseudo-class
139
+ # functions.
140
140
  #
141
141
  # [Parameters]
142
- # - +selector+ (String) The CSS selector to be translated into XPath
142
+ # - +selector_list+ (String)
143
+ #
144
+ # The CSS selector to be translated into XPath. This is always a String, but that string
145
+ # value may be a {selector list}[https://www.w3.org/TR/selectors-4/#grouping] (see
146
+ # examples).
143
147
  #
148
+ # [Keyword arguments]
144
149
  # - +prefix:+ (String)
145
150
  #
146
- # The XPath prefix for the query, see Nokogiri::XML::XPath for some options. Default is
147
- # +XML::XPath::GLOBAL_SEARCH_PREFIX+.
151
+ # The XPath expression prefix which determines the search context. See Nokogiri::XML::XPath
152
+ # for standard options. Default is +XPath::GLOBAL_SEARCH_PREFIX+.
153
+ #
154
+ # - +ns:+ (Hash<String ⇒ String>, nil)
155
+ #
156
+ # Namespaces that are referenced in the query, if any. This is a hash where the keys are the
157
+ # namespace prefix and the values are the namespace URIs. Default is +nil+ indicating an
158
+ # empty set of namespaces.
148
159
  #
149
160
  # - +visitor:+ (Nokogiri::CSS::XPathVisitor)
150
161
  #
151
- # The visitor class to use to transform the AST into XPath. Default is
152
- # +Nokogiri::CSS::XPathVisitor.new+.
162
+ # Use this XPathVisitor object to transform the CSS AST into XPath expressions. See
163
+ # Nokogiri::CSS::XPathVisitor for more information on some of the complex behavior that can
164
+ # be customized for your document type. Default is +Nokogiri::CSS::XPathVisitor.new+.
165
+ #
166
+ # ⚠ Note that this option is mutually exclusive with +prefix+ and +ns+. If +visitor+ is
167
+ # provided, +prefix+ and +ns+ must not be present.
168
+ #
169
+ # - +cache:+ (Boolean)
170
+ #
171
+ # Whether to use the SelectorCache for the translated query to ensure that repeated queries
172
+ # don't incur the overhead of re-parsing the selector. Default is +true+.
173
+ #
174
+ # [Returns] (Array<String>) The equivalent set of XPath expressions for +selector_list+
153
175
  #
154
- # - +ns:+ (Hash<String String>)
176
+ # *Example* with a simple selector:
155
177
  #
156
- # The namespaces that are referenced in the query, if any. This is a hash where the keys are
157
- # the namespace prefix and the values are the namespace URIs. Default is an empty Hash.
178
+ # Nokogiri::CSS.xpath_for("div") # => ["//div"]
158
179
  #
159
- # [Returns] (String) The equivalent XPath query for +selector+
180
+ # *Example* with a compound selector:
160
181
  #
161
- # 💡 Note that translated queries are cached for performance concerns.
182
+ # Nokogiri::CSS.xpath_for("div.xl") # => ["//div[contains(concat(' ',normalize-space(@class),' '),' xl ')]"]
183
+ #
184
+ # *Example* with a complex selector:
185
+ #
186
+ # Nokogiri::CSS.xpath_for("h1 + div") # => ["//h1/following-sibling::*[1]/self::div"]
187
+ #
188
+ # *Example* with a selector list:
189
+ #
190
+ # Nokogiri::CSS.xpath_for("h1, h2, h3") # => ["//h1", "//h2", "//h3"]
162
191
  #
163
192
  # @raise [TypeError]
164
193
  #
165
- # source://nokogiri//lib/nokogiri/css.rb#42
166
- def xpath_for(selector, options = T.unsafe(nil)); end
194
+ # source://nokogiri//lib/nokogiri/css.rb#83
195
+ def xpath_for(selector, options = T.unsafe(nil), prefix: T.unsafe(nil), visitor: T.unsafe(nil), ns: T.unsafe(nil), cache: T.unsafe(nil)); end
167
196
  end
168
197
  end
169
198
 
@@ -183,23 +212,23 @@ class Nokogiri::CSS::Node
183
212
 
184
213
  # Find a node by type using +types+
185
214
  #
186
- # source://nokogiri//lib/nokogiri/css/node.rb#32
215
+ # source://nokogiri//lib/nokogiri/css/node.rb#36
187
216
  def find_by_type(types); end
188
217
 
189
218
  # Convert to array
190
219
  #
191
- # source://nokogiri//lib/nokogiri/css/node.rb#49
220
+ # source://nokogiri//lib/nokogiri/css/node.rb#53
192
221
  def to_a; end
193
222
 
194
223
  # Convert to_type
195
224
  #
196
- # source://nokogiri//lib/nokogiri/css/node.rb#42
225
+ # source://nokogiri//lib/nokogiri/css/node.rb#46
197
226
  def to_type; end
198
227
 
199
228
  # Convert this CSS node to xpath with +prefix+ using +visitor+
200
229
  #
201
230
  # source://nokogiri//lib/nokogiri/css/node.rb#26
202
- def to_xpath(prefix, visitor); end
231
+ def to_xpath(visitor); end
203
232
 
204
233
  # Get the type of this node
205
234
  #
@@ -227,233 +256,228 @@ Nokogiri::CSS::Node::ALLOW_COMBINATOR_ON_SELF = T.let(T.unsafe(nil), Array)
227
256
 
228
257
  # source://nokogiri//lib/nokogiri/css/parser_extras.rb#7
229
258
  class Nokogiri::CSS::Parser < ::Racc::Parser
230
- # Create a new CSS parser with respect to +namespaces+
231
- #
232
259
  # @return [Parser] a new instance of Parser
233
260
  #
234
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#60
235
- def initialize(namespaces = T.unsafe(nil)); end
261
+ # source://nokogiri//lib/nokogiri/css/parser_extras.rb#8
262
+ def initialize; end
236
263
 
237
264
  # reduce 0 omitted
238
265
  #
239
- # source://nokogiri//lib/nokogiri/css/parser.rb#361
266
+ # source://nokogiri//lib/nokogiri/css/parser.rb#363
240
267
  def _reduce_1(val, _values, result); end
241
268
 
242
- # source://nokogiri//lib/nokogiri/css/parser.rb#407
269
+ # source://nokogiri//lib/nokogiri/css/parser.rb#409
243
270
  def _reduce_10(val, _values, result); end
244
271
 
245
- # source://nokogiri//lib/nokogiri/css/parser.rb#412
272
+ # source://nokogiri//lib/nokogiri/css/parser.rb#414
246
273
  def _reduce_11(val, _values, result); end
247
274
 
248
275
  # reduce 12 omitted
249
276
  #
250
- # source://nokogiri//lib/nokogiri/css/parser.rb#424
277
+ # source://nokogiri//lib/nokogiri/css/parser.rb#426
251
278
  def _reduce_13(val, _values, result); end
252
279
 
253
- # source://nokogiri//lib/nokogiri/css/parser.rb#429
280
+ # source://nokogiri//lib/nokogiri/css/parser.rb#431
254
281
  def _reduce_14(val, _values, result); end
255
282
 
256
- # source://nokogiri//lib/nokogiri/css/parser.rb#434
283
+ # source://nokogiri//lib/nokogiri/css/parser.rb#436
257
284
  def _reduce_15(val, _values, result); end
258
285
 
259
286
  # reduce 16 omitted
260
287
  #
261
- # source://nokogiri//lib/nokogiri/css/parser.rb#441
288
+ # source://nokogiri//lib/nokogiri/css/parser.rb#443
262
289
  def _reduce_17(val, _values, result); end
263
290
 
264
- # source://nokogiri//lib/nokogiri/css/parser.rb#446
291
+ # source://nokogiri//lib/nokogiri/css/parser.rb#448
265
292
  def _reduce_18(val, _values, result); end
266
293
 
267
- # source://nokogiri//lib/nokogiri/css/parser.rb#451
294
+ # source://nokogiri//lib/nokogiri/css/parser.rb#453
268
295
  def _reduce_19(val, _values, result); end
269
296
 
270
- # source://nokogiri//lib/nokogiri/css/parser.rb#367
297
+ # source://nokogiri//lib/nokogiri/css/parser.rb#369
271
298
  def _reduce_2(val, _values, result); end
272
299
 
273
300
  # reduce 20 omitted
274
301
  #
275
- # source://nokogiri//lib/nokogiri/css/parser.rb#458
302
+ # source://nokogiri//lib/nokogiri/css/parser.rb#460
276
303
  def _reduce_21(val, _values, result); end
277
304
 
278
305
  # reduce 22 omitted
279
306
  #
280
- # source://nokogiri//lib/nokogiri/css/parser.rb#465
307
+ # source://nokogiri//lib/nokogiri/css/parser.rb#467
281
308
  def _reduce_23(val, _values, result); end
282
309
 
283
- # source://nokogiri//lib/nokogiri/css/parser.rb#470
310
+ # source://nokogiri//lib/nokogiri/css/parser.rb#472
284
311
  def _reduce_24(val, _values, result); end
285
312
 
286
- # source://nokogiri//lib/nokogiri/css/parser.rb#475
313
+ # source://nokogiri//lib/nokogiri/css/parser.rb#477
287
314
  def _reduce_25(val, _values, result); end
288
315
 
289
- # source://nokogiri//lib/nokogiri/css/parser.rb#482
316
+ # source://nokogiri//lib/nokogiri/css/parser.rb#484
290
317
  def _reduce_26(val, _values, result); end
291
318
 
292
319
  # reduce 27 omitted
293
320
  #
294
- # source://nokogiri//lib/nokogiri/css/parser.rb#489
321
+ # source://nokogiri//lib/nokogiri/css/parser.rb#491
295
322
  def _reduce_28(val, _values, result); end
296
323
 
297
- # source://nokogiri//lib/nokogiri/css/parser.rb#495
324
+ # source://nokogiri//lib/nokogiri/css/parser.rb#497
298
325
  def _reduce_29(val, _values, result); end
299
326
 
300
- # source://nokogiri//lib/nokogiri/css/parser.rb#372
327
+ # source://nokogiri//lib/nokogiri/css/parser.rb#374
301
328
  def _reduce_3(val, _values, result); end
302
329
 
303
- # source://nokogiri//lib/nokogiri/css/parser.rb#501
330
+ # source://nokogiri//lib/nokogiri/css/parser.rb#503
304
331
  def _reduce_30(val, _values, result); end
305
332
 
306
- # source://nokogiri//lib/nokogiri/css/parser.rb#507
333
+ # source://nokogiri//lib/nokogiri/css/parser.rb#509
307
334
  def _reduce_31(val, _values, result); end
308
335
 
309
- # source://nokogiri//lib/nokogiri/css/parser.rb#512
336
+ # source://nokogiri//lib/nokogiri/css/parser.rb#514
310
337
  def _reduce_32(val, _values, result); end
311
338
 
312
339
  # reduce 33 omitted
313
340
  #
314
- # source://nokogiri//lib/nokogiri/css/parser.rb#519
341
+ # source://nokogiri//lib/nokogiri/css/parser.rb#521
315
342
  def _reduce_34(val, _values, result); end
316
343
 
317
- # source://nokogiri//lib/nokogiri/css/parser.rb#525
344
+ # source://nokogiri//lib/nokogiri/css/parser.rb#527
318
345
  def _reduce_35(val, _values, result); end
319
346
 
320
- # source://nokogiri//lib/nokogiri/css/parser.rb#531
347
+ # source://nokogiri//lib/nokogiri/css/parser.rb#533
321
348
  def _reduce_36(val, _values, result); end
322
349
 
323
- # source://nokogiri//lib/nokogiri/css/parser.rb#537
350
+ # source://nokogiri//lib/nokogiri/css/parser.rb#539
324
351
  def _reduce_37(val, _values, result); end
325
352
 
326
- # source://nokogiri//lib/nokogiri/css/parser.rb#543
353
+ # source://nokogiri//lib/nokogiri/css/parser.rb#545
327
354
  def _reduce_38(val, _values, result); end
328
355
 
329
- # source://nokogiri//lib/nokogiri/css/parser.rb#549
356
+ # source://nokogiri//lib/nokogiri/css/parser.rb#551
330
357
  def _reduce_39(val, _values, result); end
331
358
 
332
- # source://nokogiri//lib/nokogiri/css/parser.rb#377
359
+ # source://nokogiri//lib/nokogiri/css/parser.rb#379
333
360
  def _reduce_4(val, _values, result); end
334
361
 
335
- # source://nokogiri//lib/nokogiri/css/parser.rb#554
362
+ # source://nokogiri//lib/nokogiri/css/parser.rb#556
336
363
  def _reduce_40(val, _values, result); end
337
364
 
338
- # source://nokogiri//lib/nokogiri/css/parser.rb#559
365
+ # source://nokogiri//lib/nokogiri/css/parser.rb#561
339
366
  def _reduce_41(val, _values, result); end
340
367
 
341
- # source://nokogiri//lib/nokogiri/css/parser.rb#564
368
+ # source://nokogiri//lib/nokogiri/css/parser.rb#566
342
369
  def _reduce_42(val, _values, result); end
343
370
 
344
371
  # reduce 44 omitted
345
372
  #
346
- # source://nokogiri//lib/nokogiri/css/parser.rb#573
373
+ # source://nokogiri//lib/nokogiri/css/parser.rb#575
347
374
  def _reduce_45(val, _values, result); end
348
375
 
349
376
  # reduce 46 omitted
350
377
  #
351
- # source://nokogiri//lib/nokogiri/css/parser.rb#590
378
+ # source://nokogiri//lib/nokogiri/css/parser.rb#592
352
379
  def _reduce_47(val, _values, result); end
353
380
 
354
- # source://nokogiri//lib/nokogiri/css/parser.rb#600
381
+ # source://nokogiri//lib/nokogiri/css/parser.rb#602
355
382
  def _reduce_48(val, _values, result); end
356
383
 
357
- # source://nokogiri//lib/nokogiri/css/parser.rb#616
384
+ # source://nokogiri//lib/nokogiri/css/parser.rb#618
358
385
  def _reduce_49(val, _values, result); end
359
386
 
360
- # source://nokogiri//lib/nokogiri/css/parser.rb#382
387
+ # source://nokogiri//lib/nokogiri/css/parser.rb#384
361
388
  def _reduce_5(val, _values, result); end
362
389
 
363
- # source://nokogiri//lib/nokogiri/css/parser.rb#636
390
+ # source://nokogiri//lib/nokogiri/css/parser.rb#638
364
391
  def _reduce_50(val, _values, result); end
365
392
 
366
- # source://nokogiri//lib/nokogiri/css/parser.rb#642
393
+ # source://nokogiri//lib/nokogiri/css/parser.rb#644
367
394
  def _reduce_51(val, _values, result); end
368
395
 
369
396
  # reduce 53 omitted
370
397
  #
371
- # source://nokogiri//lib/nokogiri/css/parser.rb#651
398
+ # source://nokogiri//lib/nokogiri/css/parser.rb#653
372
399
  def _reduce_54(val, _values, result); end
373
400
 
374
- # source://nokogiri//lib/nokogiri/css/parser.rb#657
401
+ # source://nokogiri//lib/nokogiri/css/parser.rb#659
375
402
  def _reduce_55(val, _values, result); end
376
403
 
377
- # source://nokogiri//lib/nokogiri/css/parser.rb#663
404
+ # source://nokogiri//lib/nokogiri/css/parser.rb#665
378
405
  def _reduce_56(val, _values, result); end
379
406
 
380
- # source://nokogiri//lib/nokogiri/css/parser.rb#669
407
+ # source://nokogiri//lib/nokogiri/css/parser.rb#671
381
408
  def _reduce_57(val, _values, result); end
382
409
 
383
- # source://nokogiri//lib/nokogiri/css/parser.rb#675
410
+ # source://nokogiri//lib/nokogiri/css/parser.rb#677
384
411
  def _reduce_58(val, _values, result); end
385
412
 
386
- # source://nokogiri//lib/nokogiri/css/parser.rb#387
413
+ # source://nokogiri//lib/nokogiri/css/parser.rb#389
387
414
  def _reduce_6(val, _values, result); end
388
415
 
389
416
  # reduce 63 omitted
390
417
  #
391
- # source://nokogiri//lib/nokogiri/css/parser.rb#691
418
+ # source://nokogiri//lib/nokogiri/css/parser.rb#693
392
419
  def _reduce_64(val, _values, result); end
393
420
 
394
- # source://nokogiri//lib/nokogiri/css/parser.rb#696
421
+ # source://nokogiri//lib/nokogiri/css/parser.rb#698
395
422
  def _reduce_65(val, _values, result); end
396
423
 
397
- # source://nokogiri//lib/nokogiri/css/parser.rb#701
424
+ # source://nokogiri//lib/nokogiri/css/parser.rb#703
398
425
  def _reduce_66(val, _values, result); end
399
426
 
400
- # source://nokogiri//lib/nokogiri/css/parser.rb#706
427
+ # source://nokogiri//lib/nokogiri/css/parser.rb#708
401
428
  def _reduce_67(val, _values, result); end
402
429
 
403
430
  # reduce 68 omitted
404
431
  #
405
- # source://nokogiri//lib/nokogiri/css/parser.rb#713
432
+ # source://nokogiri//lib/nokogiri/css/parser.rb#715
406
433
  def _reduce_69(val, _values, result); end
407
434
 
408
- # source://nokogiri//lib/nokogiri/css/parser.rb#392
435
+ # source://nokogiri//lib/nokogiri/css/parser.rb#394
409
436
  def _reduce_7(val, _values, result); end
410
437
 
411
- # source://nokogiri//lib/nokogiri/css/parser.rb#718
438
+ # source://nokogiri//lib/nokogiri/css/parser.rb#720
412
439
  def _reduce_70(val, _values, result); end
413
440
 
414
- # source://nokogiri//lib/nokogiri/css/parser.rb#723
441
+ # source://nokogiri//lib/nokogiri/css/parser.rb#725
415
442
  def _reduce_71(val, _values, result); end
416
443
 
417
- # source://nokogiri//lib/nokogiri/css/parser.rb#728
444
+ # source://nokogiri//lib/nokogiri/css/parser.rb#730
418
445
  def _reduce_72(val, _values, result); end
419
446
 
420
- # source://nokogiri//lib/nokogiri/css/parser.rb#733
447
+ # source://nokogiri//lib/nokogiri/css/parser.rb#735
421
448
  def _reduce_73(val, _values, result); end
422
449
 
423
- # source://nokogiri//lib/nokogiri/css/parser.rb#738
450
+ # source://nokogiri//lib/nokogiri/css/parser.rb#740
424
451
  def _reduce_74(val, _values, result); end
425
452
 
426
- # source://nokogiri//lib/nokogiri/css/parser.rb#743
453
+ # source://nokogiri//lib/nokogiri/css/parser.rb#745
427
454
  def _reduce_75(val, _values, result); end
428
455
 
429
- # source://nokogiri//lib/nokogiri/css/parser.rb#748
456
+ # source://nokogiri//lib/nokogiri/css/parser.rb#750
430
457
  def _reduce_76(val, _values, result); end
431
458
 
432
- # source://nokogiri//lib/nokogiri/css/parser.rb#397
459
+ # source://nokogiri//lib/nokogiri/css/parser.rb#399
433
460
  def _reduce_8(val, _values, result); end
434
461
 
435
- # source://nokogiri//lib/nokogiri/css/parser.rb#402
462
+ # source://nokogiri//lib/nokogiri/css/parser.rb#404
436
463
  def _reduce_9(val, _values, result); end
437
464
 
438
465
  # reduce 81 omitted
439
466
  #
440
- # source://nokogiri//lib/nokogiri/css/parser.rb#764
467
+ # source://nokogiri//lib/nokogiri/css/parser.rb#766
441
468
  def _reduce_none(val, _values, result); end
442
469
 
443
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#89
444
- def cache_key(query, prefix, visitor); end
445
-
446
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#71
470
+ # source://nokogiri//lib/nokogiri/css/parser_extras.rb#18
447
471
  def next_token; end
448
472
 
449
473
  # On CSS parser error, raise an exception
450
474
  #
451
475
  # @raise [SyntaxError]
452
476
  #
453
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#84
477
+ # source://nokogiri//lib/nokogiri/css/parser_extras.rb#30
454
478
  def on_error(error_token_id, error_value, value_stack); end
455
479
 
456
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#66
480
+ # source://nokogiri//lib/nokogiri/css/parser_extras.rb#13
457
481
  def parse(string); end
458
482
 
459
483
  # source://nokogiri//lib/nokogiri/css/parser.rb#26
@@ -462,58 +486,46 @@ class Nokogiri::CSS::Parser < ::Racc::Parser
462
486
  # source://nokogiri//lib/nokogiri/css/parser.rb#30
463
487
  def unescape_css_string(str); end
464
488
 
465
- # Get the xpath for +string+ using +options+
489
+ # Get the xpath for +selector+ using +visitor+
466
490
  #
467
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#76
468
- def xpath_for(string, prefix, visitor); end
491
+ # source://nokogiri//lib/nokogiri/css/parser_extras.rb#23
492
+ def xpath_for(selector, visitor); end
493
+ end
469
494
 
470
- class << self
471
- # Get the css selector in +string+ from the cache
472
- #
473
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#25
474
- def [](string); end
495
+ # source://nokogiri//lib/nokogiri/css/parser.rb#279
496
+ Nokogiri::CSS::Parser::Racc_arg = T.let(T.unsafe(nil), Array)
475
497
 
476
- # Set the css selector in +string+ in the cache to +value+
477
- #
478
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#32
479
- def []=(string, value); end
498
+ # source://nokogiri//lib/nokogiri/css/parser.rb#357
499
+ Nokogiri::CSS::Parser::Racc_debug_parser = T.let(T.unsafe(nil), FalseClass)
480
500
 
481
- # Return a thread-local boolean indicating whether the CSS-to-XPath cache is active. (Default is `true`.)
501
+ # source://nokogiri//lib/nokogiri/css/parser.rb#296
502
+ Nokogiri::CSS::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
503
+
504
+ # source://nokogiri//lib/nokogiri/css/selector_cache.rb#5
505
+ module Nokogiri::CSS::SelectorCache
506
+ class << self
507
+ # Retrieve the cached XPath expressions for the key
482
508
  #
483
- # @return [Boolean]
509
+ # source://nokogiri//lib/nokogiri/css/selector_cache.rb#11
510
+ def [](key); end
511
+
512
+ # Insert the XPath expressions `value` at the cache key
484
513
  #
485
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#15
486
- def cache_on?; end
514
+ # source://nokogiri//lib/nokogiri/css/selector_cache.rb#16
515
+ def []=(key, value); end
487
516
 
488
517
  # Clear the cache
489
518
  #
490
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#39
519
+ # source://nokogiri//lib/nokogiri/css/selector_cache.rb#21
491
520
  def clear_cache(create_new_object = T.unsafe(nil)); end
492
521
 
493
- # Set a thread-local boolean to turn cacheing on and off. Truthy values turn the cache on, falsey values turn the cache off.
522
+ # Construct a unique key cache key
494
523
  #
495
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#20
496
- def set_cache(value); end
497
-
498
- # Execute +block+ without cache
499
- #
500
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#50
501
- def without_cache(&block); end
524
+ # source://nokogiri//lib/nokogiri/css/selector_cache.rb#32
525
+ def key(selector:, visitor:); end
502
526
  end
503
527
  end
504
528
 
505
- # source://nokogiri//lib/nokogiri/css/parser_extras.rb#8
506
- Nokogiri::CSS::Parser::CACHE_SWITCH_NAME = T.let(T.unsafe(nil), Symbol)
507
-
508
- # source://nokogiri//lib/nokogiri/css/parser.rb#279
509
- Nokogiri::CSS::Parser::Racc_arg = T.let(T.unsafe(nil), Array)
510
-
511
- # source://nokogiri//lib/nokogiri/css/parser.rb#355
512
- Nokogiri::CSS::Parser::Racc_debug_parser = T.let(T.unsafe(nil), FalseClass)
513
-
514
- # source://nokogiri//lib/nokogiri/css/parser.rb#295
515
- Nokogiri::CSS::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
516
-
517
529
  # source://nokogiri//lib/nokogiri/css/syntax_error.rb#6
518
530
  class Nokogiri::CSS::SyntaxError < ::Nokogiri::SyntaxError; end
519
531
 
@@ -587,83 +599,106 @@ class Nokogiri::CSS::XPathVisitor
587
599
  #
588
600
  # @return [XPathVisitor] a new instance of XPathVisitor
589
601
  #
590
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#57
591
- def initialize(builtins: T.unsafe(nil), doctype: T.unsafe(nil)); end
602
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#69
603
+ def initialize(builtins: T.unsafe(nil), doctype: T.unsafe(nil), prefix: T.unsafe(nil), namespaces: T.unsafe(nil)); end
592
604
 
593
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#267
605
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#297
594
606
  def accept(node); end
595
607
 
608
+ # The visitor configuration set via the +builtins:+ keyword argument to XPathVisitor.new.
609
+ #
610
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#48
611
+ def builtins; end
612
+
596
613
  # :call-seq: config() → Hash
597
614
  #
598
615
  # [Returns]
599
616
  # a Hash representing the configuration of the XPathVisitor, suitable for use as
600
617
  # part of the CSS cache key.
601
618
  #
602
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#74
619
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#93
603
620
  def config; end
604
621
 
605
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#263
622
+ # The visitor configuration set via the +doctype:+ keyword argument to XPathVisitor.new.
623
+ #
624
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#51
625
+ def doctype; end
626
+
627
+ # The visitor configuration set via the +namespaces:+ keyword argument to XPathVisitor.new.
628
+ #
629
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#57
630
+ def namespaces; end
631
+
632
+ # The visitor configuration set via the +prefix:+ keyword argument to XPathVisitor.new.
633
+ #
634
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#54
635
+ def prefix; end
636
+
637
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#293
606
638
  def visit_attrib_name(node); end
607
639
 
608
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#154
640
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#175
609
641
  def visit_attribute_condition(node); end
610
642
 
611
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#234
643
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#256
612
644
  def visit_child_selector(node); end
613
645
 
614
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#215
646
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#237
615
647
  def visit_class_condition(node); end
616
648
 
617
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#219
649
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#241
618
650
  def visit_combinator(node); end
619
651
 
620
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#240
652
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#262
621
653
  def visit_conditional_selector(node); end
622
654
 
623
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#234
655
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#256
624
656
  def visit_descendant_selector(node); end
625
657
 
626
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#234
658
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#256
627
659
  def visit_direct_adjacent_selector(node); end
628
660
 
629
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#245
661
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#267
630
662
  def visit_element_name(node); end
631
663
 
632
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#234
664
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#256
633
665
  def visit_following_selector(node); end
634
666
 
635
667
  # :stopdoc:
636
668
  #
637
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#79
669
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#98
638
670
  def visit_function(node); end
639
671
 
640
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#149
672
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#170
641
673
  def visit_id(node); end
642
674
 
643
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#140
675
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#161
644
676
  def visit_not(node); end
645
677
 
646
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#190
678
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#211
647
679
  def visit_pseudo_class(node); end
648
680
 
649
681
  private
650
682
 
651
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#328
683
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#364
652
684
  def css_class(hay, needle); end
653
685
 
654
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#273
686
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#309
655
687
  def html5_element_name_needs_namespace_handling(node); end
656
688
 
657
689
  # @return [Boolean]
658
690
  #
659
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#318
691
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#354
660
692
  def is_of_type_pseudo_class?(node); end
661
693
 
662
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#280
694
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#316
663
695
  def nth(node, options = T.unsafe(nil)); end
664
696
 
665
- # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#304
697
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#340
666
698
  def read_a_and_positive_b(values); end
699
+
700
+ # source://nokogiri//lib/nokogiri/css/xpath_visitor.rb#303
701
+ def validate_xpath_function_name(name); end
667
702
  end
668
703
 
669
704
  # Enum to direct XPathVisitor when to use Nokogiri builtin XPath functions.
@@ -782,7 +817,7 @@ module Nokogiri::Decorators::Slop
782
817
 
783
818
  # @return [Boolean]
784
819
  #
785
- # source://nokogiri//lib/nokogiri/decorators/slop.rb#37
820
+ # source://nokogiri//lib/nokogiri/decorators/slop.rb#35
786
821
  def respond_to_missing?(name, include_private = T.unsafe(nil)); end
787
822
  end
788
823
 
@@ -815,8 +850,8 @@ Nokogiri::EncodingHandler::USEFUL_ALIASES = T.let(T.unsafe(nil), Hash)
815
850
  # source://nokogiri//lib/nokogiri/gumbo.rb#4
816
851
  module Nokogiri::Gumbo
817
852
  class << self
818
- def fragment(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); end
819
- def parse(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); end
853
+ def fragment(*_arg0); end
854
+ def parse(*_arg0); end
820
855
  end
821
856
  end
822
857
 
@@ -848,18 +883,18 @@ Nokogiri::HTML = Nokogiri::HTML4
848
883
  # 💡 Before v1.12.0, Nokogiri::HTML4 did not exist, and Nokogiri::HTML was the module/namespace
849
884
  # for parsing HTML.
850
885
  #
851
- # source://nokogiri//lib/nokogiri/html4.rb#19
886
+ # source://nokogiri//lib/nokogiri/html4.rb#16
852
887
  module Nokogiri::HTML4
853
888
  class << self
854
- # Parse a fragment from +string+ in to a NodeSet.
889
+ # Convenience method for Nokogiri::HTML4::DocumentFragment.parse
855
890
  #
856
- # source://nokogiri//lib/nokogiri/html4.rb#29
857
- def fragment(string, encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
891
+ # source://nokogiri//lib/nokogiri/html4.rb#24
892
+ def fragment(*_arg0, **_arg1, &_arg2); end
858
893
 
859
- # Parse HTML. Convenience method for Nokogiri::HTML4::Document.parse
894
+ # Convenience method for Nokogiri::HTML4::Document.parse
860
895
  #
861
- # source://nokogiri//lib/nokogiri/html4.rb#23
862
- def parse(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
896
+ # source://nokogiri//lib/nokogiri/html4.rb#19
897
+ def parse(*_arg0, **_arg1, &_arg2); end
863
898
  end
864
899
  end
865
900
 
@@ -987,18 +1022,34 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
987
1022
  class << self
988
1023
  def new(*_arg0); end
989
1024
 
990
- # Parse HTML. +string_or_io+ may be a String, or any object that
991
- # responds to _read_ and _close_ such as an IO, or StringIO.
992
- # +url+ is resource where this document is located. +encoding+ is the
993
- # encoding that should be used when processing the document. +options+
994
- # is a number that sets options in the parser, such as
995
- # Nokogiri::XML::ParseOptions::RECOVER. See the constants in
996
- # Nokogiri::XML::ParseOptions.
1025
+ # :call-seq:
1026
+ # parse(input) { |options| ... } => Nokogiri::HTML4::Document
1027
+ #
1028
+ # Parse \HTML4 input from a String or IO object, and return a new HTML4::Document.
1029
+ #
1030
+ # [Required Parameters]
1031
+ # - +input+ (String | IO) The content to be parsed.
1032
+ #
1033
+ # [Optional Keyword Arguments]
1034
+ # - +url:+ (String) The base URI for this document.
1035
+ #
1036
+ # document. When not provided, the encoding will be determined based on the document
1037
+ # content.
1038
+ #
1039
+ # - +options:+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
1040
+ # behaviors during parsing. See ParseOptions for more information. The default value is
1041
+ # +ParseOptions::DEFAULT_HTML+.
1042
+ #
1043
+ # [Yields]
1044
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
1045
+ # can be configured before parsing. See Nokogiri::XML::ParseOptions for more information.
1046
+ #
1047
+ # [Returns] Nokogiri::HTML4::Document
997
1048
  #
998
1049
  # @yield [options]
999
1050
  #
1000
- # source://nokogiri//lib/nokogiri/html4/document.rb#172
1001
- def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
1051
+ # source://nokogiri//lib/nokogiri/html4/document.rb#189
1052
+ def parse(input, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), options_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), options: T.unsafe(nil)); end
1002
1053
 
1003
1054
  def read_io(_arg0, _arg1, _arg2, _arg3); end
1004
1055
  def read_memory(_arg0, _arg1, _arg2, _arg3); end
@@ -1007,17 +1058,93 @@ end
1007
1058
 
1008
1059
  # source://nokogiri//lib/nokogiri/html4/document_fragment.rb#5
1009
1060
  class Nokogiri::HTML4::DocumentFragment < ::Nokogiri::XML::DocumentFragment
1061
+ # :call-seq:
1062
+ # new(document) { |options| ... } → HTML4::DocumentFragment
1063
+ # new(document, input) { |options| ... } → HTML4::DocumentFragment
1064
+ # new(document, input, context:, options:) { |options| ... } → HTML4::DocumentFragment
1065
+ #
1066
+ # Parse \HTML4 fragment input from a String, and return a new HTML4::DocumentFragment.
1067
+ #
1068
+ # 💡 It's recommended to use either HTML4::DocumentFragment.parse or XML::Node#parse rather
1069
+ # than call this method directly.
1070
+ #
1071
+ # [Required Parameters]
1072
+ # - +document+ (HTML4::Document) The parent document to associate the returned fragment with.
1073
+ #
1074
+ # [Optional Parameters]
1075
+ # - +input+ (String) The content to be parsed.
1076
+ #
1077
+ # [Optional Keyword Arguments]
1078
+ # - +context:+ (Nokogiri::XML::Node) The <b>context node</b> for the subtree created. See
1079
+ # below for more information.
1080
+ #
1081
+ # - +options:+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
1082
+ # behaviors during parsing. See ParseOptions for more information. The default value is
1083
+ # +ParseOptions::DEFAULT_HTML+.
1084
+ #
1085
+ # [Yields]
1086
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
1087
+ # can be configured before parsing. See ParseOptions for more information.
1088
+ #
1089
+ # [Returns] HTML4::DocumentFragment
1090
+ #
1091
+ # === Context \Node
1092
+ #
1093
+ # If a context node is specified using +context:+, then the fragment will be created by
1094
+ # calling XML::Node#parse on that node, so the parser will behave as if that Node is the
1095
+ # parent of the fragment subtree.
1096
+ #
1010
1097
  # @return [DocumentFragment] a new instance of DocumentFragment
1011
1098
  # @yield [options]
1012
1099
  #
1013
- # source://nokogiri//lib/nokogiri/html4/document_fragment.rb#27
1014
- def initialize(document, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
1100
+ # source://nokogiri//lib/nokogiri/html4/document_fragment.rb#134
1101
+ def initialize(document, input = T.unsafe(nil), context_ = T.unsafe(nil), options_ = T.unsafe(nil), context: T.unsafe(nil), options: T.unsafe(nil)); end
1015
1102
 
1016
1103
  class << self
1017
- # Create a Nokogiri::XML::DocumentFragment from +tags+, using +encoding+
1104
+ # :call-seq:
1105
+ # parse(input) { |options| ... } → HTML4::DocumentFragment
1106
+ #
1107
+ # Parse \HTML4 fragment input from a String, and return a new HTML4::DocumentFragment. This
1108
+ # method creates a new, empty HTML4::Document to contain the fragment.
1109
+ #
1110
+ # [Required Parameters]
1111
+ # - +input+ (String | IO) The content to be parsed.
1112
+ #
1113
+ # [Optional Keyword Arguments]
1114
+ # document. When not provided, the encoding will be determined based on the document
1115
+ # content.
1116
+ #
1117
+ # - +options:+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
1118
+ # behaviors during parsing. See ParseOptions for more information. The default value is
1119
+ # +ParseOptions::DEFAULT_HTML+.
1120
+ #
1121
+ # [Yields]
1122
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
1123
+ # can be configured before parsing. See ParseOptions for more information.
1124
+ #
1125
+ # [Returns] HTML4::DocumentFragment
1126
+ #
1127
+ # *Example:* Parsing a string
1128
+ #
1129
+ # fragment = HTML4::DocumentFragment.parse("<div>Hello World</div>")
1130
+ #
1131
+ # *Example:* Parsing an IO
1132
+ #
1133
+ # fragment = File.open("fragment.html") do |file|
1134
+ # HTML4::DocumentFragment.parse(file)
1135
+ # end
1018
1136
  #
1019
- # source://nokogiri//lib/nokogiri/html4/document_fragment.rb#8
1020
- def parse(tags, encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
1137
+ # *Example:* Specifying encoding
1138
+ #
1139
+ #
1140
+ # *Example:* Setting parse options dynamically
1141
+ #
1142
+ # HTML4::DocumentFragment.parse("<div>Hello World") do |options|
1143
+ # options.huge.pedantic
1144
+ # end
1145
+ #
1146
+ # source://nokogiri//lib/nokogiri/html4/document_fragment.rb#52
1147
+ def parse(input, encoding_ = T.unsafe(nil), options_ = T.unsafe(nil), encoding: T.unsafe(nil), options: T.unsafe(nil), &block); end
1021
1148
  end
1022
1149
  end
1023
1150
 
@@ -1490,10 +1617,11 @@ end
1490
1617
 
1491
1618
  # Instance of Nokogiri::HTML4::EntityLookup
1492
1619
  #
1493
- # source://nokogiri//lib/nokogiri/html4.rb#35
1620
+ # source://nokogiri//lib/nokogiri/html4.rb#30
1494
1621
  Nokogiri::HTML4::NamedCharacters = T.let(T.unsafe(nil), Nokogiri::HTML4::EntityLookup)
1495
1622
 
1496
- # Nokogiri lets you write a SAX parser to process HTML but get HTML correction features.
1623
+ # Nokogiri provides a SAX parser to process HTML4 which will provide HTML recovery
1624
+ # ("autocorrection") features.
1497
1625
  #
1498
1626
  # See Nokogiri::HTML4::SAX::Parser for a basic example of using a SAX parser with HTML.
1499
1627
  #
@@ -1502,60 +1630,51 @@ Nokogiri::HTML4::NamedCharacters = T.let(T.unsafe(nil), Nokogiri::HTML4::EntityL
1502
1630
  # source://nokogiri//lib/nokogiri/html4/sax/parser_context.rb#5
1503
1631
  module Nokogiri::HTML4::SAX; end
1504
1632
 
1505
- # This class lets you perform SAX style parsing on HTML with HTML error correction.
1633
+ # This parser is a SAX style parser that reads its input as it deems necessary. The parser
1634
+ # takes a Nokogiri::XML::SAX::Document, an optional encoding, then given an HTML input, sends
1635
+ # messages to the Nokogiri::XML::SAX::Document.
1636
+ #
1637
+ # ⚠ This is an HTML4 parser and so may not support some HTML5 features and behaviors.
1506
1638
  #
1507
1639
  # Here is a basic usage example:
1508
1640
  #
1509
- # class MyDoc < Nokogiri::XML::SAX::Document
1641
+ # class MyHandler < Nokogiri::XML::SAX::Document
1510
1642
  # def start_element name, attributes = []
1511
1643
  # puts "found a #{name}"
1512
1644
  # end
1513
1645
  # end
1514
1646
  #
1515
- # parser = Nokogiri::HTML4::SAX::Parser.new(MyDoc.new)
1516
- # parser.parse(File.read(ARGV[0], mode: 'rb'))
1647
+ # parser = Nokogiri::HTML4::SAX::Parser.new(MyHandler.new)
1517
1648
  #
1518
- # For more information on SAX parsers, see Nokogiri::XML::SAX
1649
+ # # Hand an IO object to the parser, which will read the HTML from the IO.
1650
+ # File.open(path_to_html) do |f|
1651
+ # parser.parse(f)
1652
+ # end
1519
1653
  #
1520
- # source://nokogiri//lib/nokogiri/html4/sax/parser.rb#27
1654
+ # For more information on \SAX parsers, see Nokogiri::XML::SAX or the parent class
1655
+ # Nokogiri::XML::SAX::Parser.
1656
+ #
1657
+ # Also see Nokogiri::XML::SAX::Document for the available events.
1658
+ #
1659
+ # source://nokogiri//lib/nokogiri/html4/sax/parser.rb#41
1521
1660
  class Nokogiri::HTML4::SAX::Parser < ::Nokogiri::XML::SAX::Parser
1522
- # Parse a file with +filename+
1523
- #
1524
- # @raise [ArgumentError]
1525
- # @yield [ctx]
1526
- #
1527
- # source://nokogiri//lib/nokogiri/html4/sax/parser.rb#51
1528
- def parse_file(filename, encoding = T.unsafe(nil)); end
1529
-
1530
- # Parse given +io+
1531
- #
1532
- # @yield [ctx]
1533
- #
1534
- # source://nokogiri//lib/nokogiri/html4/sax/parser.rb#41
1535
- def parse_io(io, encoding = T.unsafe(nil)); end
1661
+ private
1536
1662
 
1537
- # Parse html stored in +data+ using +encoding+
1538
- #
1539
- # @raise [TypeError]
1540
- # @yield [ctx]
1541
- #
1542
- # source://nokogiri//lib/nokogiri/html4/sax/parser.rb#30
1543
- def parse_memory(data, encoding = T.unsafe(nil)); end
1663
+ def initialize_native; end
1544
1664
  end
1545
1665
 
1546
- # Context for HTML SAX parsers. This class is usually not instantiated by the user. Instead,
1547
- # you should be looking at Nokogiri::HTML4::SAX::Parser
1666
+ # Context object to invoke the HTML4 SAX parser on the SAX::Document handler.
1667
+ #
1668
+ # 💡 This class is usually not instantiated by the user. Use Nokogiri::HTML4::SAX::Parser
1669
+ # instead.
1548
1670
  #
1549
- # source://nokogiri//lib/nokogiri/html4/sax/parser_context.rb#9
1671
+ # source://nokogiri//lib/nokogiri/html4/sax/parser_context.rb#11
1550
1672
  class Nokogiri::HTML4::SAX::ParserContext < ::Nokogiri::XML::SAX::ParserContext
1551
1673
  def parse_with(_arg0); end
1552
1674
 
1553
1675
  class << self
1554
- def file(_arg0, _arg1); end
1555
- def memory(_arg0, _arg1); end
1556
-
1557
- # source://nokogiri//lib/nokogiri/html4/sax/parser_context.rb#10
1558
- def new(thing, encoding = T.unsafe(nil)); end
1676
+ def native_file(_arg0, _arg1); end
1677
+ def native_memory(_arg0, _arg1); end
1559
1678
  end
1560
1679
  end
1561
1680
 
@@ -1604,34 +1723,36 @@ end
1604
1723
 
1605
1724
  # == Usage
1606
1725
  #
1607
- # ⚠ HTML5 functionality is not available when running JRuby.
1608
- #
1609
1726
  # Parse an HTML5 document:
1610
1727
  #
1611
- # doc = Nokogiri.HTML5(string)
1728
+ # doc = Nokogiri.HTML5(input)
1612
1729
  #
1613
1730
  # Parse an HTML5 fragment:
1614
1731
  #
1615
- # fragment = Nokogiri::HTML5.fragment(string)
1732
+ # fragment = Nokogiri::HTML5.fragment(input)
1733
+ #
1734
+ # ⚠ HTML5 functionality is not available when running JRuby.
1616
1735
  #
1617
1736
  # == Parsing options
1618
1737
  #
1619
- # The document and fragment parsing methods support options that are different from Nokogiri's.
1738
+ # The document and fragment parsing methods support options that are different from
1739
+ # Nokogiri::HTML4::Document or Nokogiri::XML::Document.
1620
1740
  #
1621
- # - <tt>Nokogiri.HTML5(html, url = nil, encoding = nil, options = {})</tt>
1622
- # - <tt>Nokogiri::HTML5.parse(html, url = nil, encoding = nil, options = {})</tt>
1623
- # - <tt>Nokogiri::HTML5::Document.parse(html, url = nil, encoding = nil, options = {})</tt>
1624
- # - <tt>Nokogiri::HTML5.fragment(html, encoding = nil, options = {})</tt>
1625
- # - <tt>Nokogiri::HTML5::DocumentFragment.parse(html, encoding = nil, options = {})</tt>
1626
1741
  #
1627
- # The three currently supported options are +:max_errors+, +:max_tree_depth+ and
1628
- # +:max_attributes+, described below.
1742
+ # The four currently supported parse options are
1629
1743
  #
1630
- # === Error reporting
1744
+ # - +max_errors:+ (Integer, default 0) Maximum number of parse errors to report in HTML5::Document#errors.
1745
+ # - +max_tree_depth:+ (Integer, default +Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH+) Maximum tree depth to parse.
1746
+ # - +max_attributes:+ (Integer, default +Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES+) Maximum number of attributes to parse per element.
1747
+ # - +parse_noscript_content_as_text:+ (Boolean, default false) When enabled, parse +noscript+ tag content as text, mimicking the behavior of web browsers.
1748
+ #
1749
+ # These options are explained in the following sections.
1750
+ #
1751
+ # === Error reporting: +max_errors:+
1631
1752
  #
1632
1753
  # Nokogiri contains an experimental HTML5 parse error reporting facility. By default, no parse
1633
1754
  # errors are reported but this can be configured by passing the +:max_errors+ option to
1634
- # {HTML5.parse} or {HTML5.fragment}.
1755
+ # HTML5.parse or HTML5.fragment.
1635
1756
  #
1636
1757
  # For example, this script:
1637
1758
  #
@@ -1657,20 +1778,21 @@ end
1657
1778
  #
1658
1779
  # Using <tt>max_errors: -1</tt> results in an unlimited number of errors being returned.
1659
1780
  #
1660
- # The errors returned by {HTML5::Document#errors} are instances of {Nokogiri::XML::SyntaxError}.
1781
+ # The errors returned by HTML5::Document#errors are instances of Nokogiri::XML::SyntaxError.
1661
1782
  #
1662
- # The {https://html.spec.whatwg.org/multipage/parsing.html#parse-errors HTML standard} defines a
1783
+ # The {HTML standard}[https://html.spec.whatwg.org/multipage/parsing.html#parse-errors] defines a
1663
1784
  # number of standard parse error codes. These error codes only cover the "tokenization" stage of
1664
1785
  # parsing HTML. The parse errors in the "tree construction" stage do not have standardized error
1665
1786
  # codes (yet).
1666
1787
  #
1667
- # As a convenience to Nokogiri users, the defined error codes are available via
1668
- # {Nokogiri::XML::SyntaxError#str1} method.
1788
+ # As a convenience to Nokogiri users, the defined error codes are available
1789
+ # via Nokogiri::XML::SyntaxError#str1 method.
1669
1790
  #
1670
1791
  # doc = Nokogiri::HTML5.parse('<span/>Hi there!</span foo=bar />', max_errors: 10)
1671
1792
  # doc.errors.each do |err|
1672
1793
  # puts("#{err.line}:#{err.column}: #{err.str1}")
1673
1794
  # end
1795
+ # doc = Nokogiri::HTML5.parse('<span/>Hi there!</span foo=bar />',
1674
1796
  # # => 1:1: generic-parser
1675
1797
  # # 1:1: non-void-html-element-start-tag-with-trailing-solidus
1676
1798
  # # 1:17: end-tag-with-trailing-solidus
@@ -1683,40 +1805,75 @@ end
1683
1805
  # are not part of Nokogiri's public API. That is, these are subject to change without Nokogiri's
1684
1806
  # major version number changing. These may be stabilized in the future.
1685
1807
  #
1686
- # === Maximum tree depth
1808
+ # === Maximum tree depth: +max_tree_depth:+
1687
1809
  #
1688
1810
  # The maximum depth of the DOM tree parsed by the various parsing methods is configurable by the
1689
1811
  # +:max_tree_depth+ option. If the depth of the tree would exceed this limit, then an
1690
- # {::ArgumentError} is thrown.
1812
+ # +ArgumentError+ is thrown.
1691
1813
  #
1692
- # This limit (which defaults to <tt>Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH = 400</tt>) can be
1693
- # removed by giving the option <tt>max_tree_depth: -1</tt>.
1814
+ # This limit (which defaults to +Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH+) can be removed by
1815
+ # giving the option <tt>max_tree_depth: -1</tt>.
1694
1816
  #
1695
1817
  # html = '<!DOCTYPE html>' + '<div>' * 1000
1696
1818
  # doc = Nokogiri.HTML5(html)
1697
1819
  # # raises ArgumentError: Document tree depth limit exceeded
1698
1820
  # doc = Nokogiri.HTML5(html, max_tree_depth: -1)
1699
1821
  #
1700
- # === Attribute limit per element
1822
+ # === Attribute limit per element: +max_attributes:+
1701
1823
  #
1702
1824
  # The maximum number of attributes per DOM element is configurable by the +:max_attributes+
1703
- # option. If a given element would exceed this limit, then an {::ArgumentError} is thrown.
1825
+ # option. If a given element would exceed this limit, then an +ArgumentError+ is thrown.
1704
1826
  #
1705
- # This limit (which defaults to <tt>Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES = 400</tt>) can be
1706
- # removed by giving the option <tt>max_attributes: -1</tt>.
1827
+ # This limit (which defaults to +Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES+) can be removed by
1828
+ # giving the option <tt>max_attributes: -1</tt>.
1707
1829
  #
1708
- # html = '<!DOCTYPE html><div ' + (1..1000).map { |x| "attr-#{x}" }.join(' ') + '>'
1830
+ # html = '<!DOCTYPE html><div ' + (1..1000).map { |x| "attr-#{x}" }.join(' # ') + '>'
1709
1831
  # # "<!DOCTYPE html><div attr-1 attr-2 attr-3 ... attr-1000>"
1710
1832
  # doc = Nokogiri.HTML5(html)
1711
1833
  # # raises ArgumentError: Attributes per element limit exceeded
1834
+ #
1712
1835
  # doc = Nokogiri.HTML5(html, max_attributes: -1)
1836
+ # # parses successfully
1837
+ #
1838
+ # === Parse +noscript+ elements' content as text: +parse_noscript_content_as_text:+
1839
+ #
1840
+ # By default, the content of +noscript+ elements is parsed as HTML elements. Browsers that
1841
+ # support scripting parse the content of +noscript+ elements as raw text.
1842
+ #
1843
+ # The +:parse_noscript_content_as_text+ option causes Nokogiri to parse the content of +noscript+
1844
+ # elements as a single text node.
1845
+ #
1846
+ # html = "<!DOCTYPE html><noscript><meta charset='UTF-8'><link rel=stylesheet href=!></noscript>"
1847
+ # doc = Nokogiri::HTML5.parse(html, parse_noscript_content_as_text: true)
1848
+ # pp doc.at_xpath("/html/head/noscript")
1849
+ # # => #(Element:0x878c {
1850
+ # # name = "noscript",
1851
+ # # children = [ #(Text "<meta charset='UTF-8'><link rel=stylesheet href=!>")]
1852
+ # # })
1853
+ #
1854
+ # In contrast, <tt>parse_noscript_content_as_text: false</tt> (the default) causes the +noscript+
1855
+ # element in the previous example to have two children, a +meta+ element and a +link+ element.
1856
+ #
1857
+ # doc = Nokogiri::HTML5.parse(html)
1858
+ # puts doc.at_xpath("/html/head/noscript")
1859
+ # # => #(Element:0x96b4 {
1860
+ # # name = "noscript",
1861
+ # # children = [
1862
+ # # #(Element:0x97e0 { name = "meta", attribute_nodes = [ #(Attr:0x990c { name = "charset", value = "UTF-8" })] }),
1863
+ # # #(Element:0x9b00 {
1864
+ # # name = "link",
1865
+ # # attribute_nodes = [
1866
+ # # #(Attr:0x9c2c { name = "rel", value = "stylesheet" }),
1867
+ # # #(Attr:0x9dd0 { name = "href", value = "!" })]
1868
+ # # })]
1869
+ # # })
1713
1870
  #
1714
1871
  # == HTML Serialization
1715
1872
  #
1716
- # After parsing HTML, it may be serialized using any of the {Nokogiri::XML::Node} serialization
1717
- # methods. In particular, {XML::Node#serialize}, {XML::Node#to_html}, and {XML::Node#to_s} will
1873
+ # After parsing HTML, it may be serialized using any of the Nokogiri::XML::Node serialization
1874
+ # methods. In particular, XML::Node#serialize, XML::Node#to_html, and XML::Node#to_s will
1718
1875
  # serialize a given node and its children. (This is the equivalent of JavaScript's
1719
- # +Element.outerHTML+.) Similarly, {XML::Node#inner_html} will serialize the children of a given
1876
+ # +Element.outerHTML+.) Similarly, XML::Node#inner_html will serialize the children of a given
1720
1877
  # node. (This is the equivalent of JavaScript's +Element.innerHTML+.)
1721
1878
  #
1722
1879
  # doc = Nokogiri::HTML5("<!DOCTYPE html><span>Hello world!</span>")
@@ -1724,12 +1881,12 @@ end
1724
1881
  # # => <!DOCTYPE html><html><head></head><body><span>Hello world!</span></body></html>
1725
1882
  #
1726
1883
  # Due to quirks in how HTML is parsed and serialized, it's possible for a DOM tree to be
1727
- # serialized and then re-parsed, resulting in a different DOM. Mostly, this happens with DOMs
1884
+ # serialized and then re-parsed, resulting in a different DOM. Mostly, this happens with DOMs
1728
1885
  # produced from invalid HTML. Unfortunately, even valid HTML may not survive serialization and
1729
1886
  # re-parsing.
1730
1887
  #
1731
- # In particular, a newline at the start of +pre+, +listing+, and +textarea+ elements is ignored by
1732
- # the parser.
1888
+ # In particular, a newline at the start of +pre+, +listing+, and +textarea+
1889
+ # elements is ignored by the parser.
1733
1890
  #
1734
1891
  # doc = Nokogiri::HTML5(<<-EOF)
1735
1892
  # <!DOCTYPE html>
@@ -1758,81 +1915,117 @@ end
1758
1915
  #
1759
1916
  # == Encodings
1760
1917
  #
1761
- # Nokogiri always parses HTML5 using {https://en.wikipedia.org/wiki/UTF-8 UTF-8}; however, the
1918
+ # Nokogiri always parses HTML5 using {UTF-8}[https://en.wikipedia.org/wiki/UTF-8]; however, the
1762
1919
  # encoding of the input can be explicitly selected via the optional +encoding+ parameter. This is
1763
1920
  # most useful when the input comes not from a string but from an IO object.
1764
1921
  #
1765
1922
  # When serializing a document or node, the encoding of the output string can be specified via the
1766
1923
  # +:encoding+ options. Characters that cannot be encoded in the selected encoding will be encoded
1767
- # as {https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references HTML numeric
1768
- # entities}.
1924
+ # as {HTML numeric
1925
+ # entities}[https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references].
1769
1926
  #
1770
1927
  # frag = Nokogiri::HTML5.fragment('<span>아는 길도 물어가라</span>')
1771
1928
  # puts html
1772
1929
  # # => <span>&#xc544;&#xb294; &#xae38;&#xb3c4; &#xbb3c;&#xc5b4;&#xac00;&#xb77c;</span>
1930
+ #
1773
1931
  # frag = Nokogiri::HTML5.fragment(html)
1774
1932
  # puts frag.serialize
1775
1933
  # # => <span>아는 길도 물어가라</span>
1776
1934
  #
1777
- # (There's a {https://bugs.ruby-lang.org/issues/15033 bug} in all current versions of Ruby that
1935
+ # (There's a {bug}[https://bugs.ruby-lang.org/issues/15033] in all current versions of Ruby that
1778
1936
  # can cause the entity encoding to fail. Of the mandated supported encodings for HTML, the only
1779
1937
  # encoding I'm aware of that has this bug is <tt>'ISO-2022-JP'</tt>. We recommend avoiding this
1780
1938
  # encoding.)
1781
1939
  #
1782
1940
  # == Notes
1783
1941
  #
1784
- # * The {Nokogiri::HTML5.fragment} function takes a string and parses it
1785
- # as a HTML5 document. The +<html>+, +<head>+, and +<body>+ elements are
1786
- # removed from this document, and any children of these elements that remain
1787
- # are returned as a {Nokogiri::HTML5::DocumentFragment}.
1942
+ # * The Nokogiri::HTML5.fragment function takes a String or IO and parses it as a HTML5 document
1943
+ # in a +body+ context. As a result, the +html+, +head+, and +body+ elements are removed from
1944
+ # this document, and any children of these elements that remain are returned as a
1945
+ # Nokogiri::HTML5::DocumentFragment; but you can pass in a different context (e.g., "html" to
1946
+ # get +head+ and +body+ tags in the result).
1788
1947
  #
1789
- # * The {Nokogiri::HTML5.parse} function takes a string and passes it to the
1790
- # <code>gumbo_parse_with_options</code> method, using the default options.
1791
- # The resulting Gumbo parse tree is then walked.
1948
+ # * The Nokogiri::HTML5.parse function takes a String or IO and passes it to the
1949
+ # <code>gumbo_parse_with_options</code> method, using the default options. The resulting Gumbo
1950
+ # parse tree is then walked.
1792
1951
  #
1793
1952
  # * Instead of uppercase element names, lowercase element names are produced.
1794
1953
  #
1795
- # * Instead of returning +unknown+ as the element name for unknown tags, the
1796
- # original tag name is returned verbatim.
1954
+ # * Instead of returning +unknown+ as the element name for unknown tags, the original tag name is
1955
+ # returned verbatim.
1797
1956
  #
1798
1957
  # Since v1.12.0
1799
1958
  #
1800
1959
  # source://nokogiri//lib/nokogiri/html5/document.rb#23
1801
1960
  module Nokogiri::HTML5
1802
1961
  class << self
1803
- # Parse a fragment from +string+. Convenience method for
1804
- # {Nokogiri::HTML5::DocumentFragment.parse}.
1962
+ # Convenience method for Nokogiri::HTML5::DocumentFragment.parse
1805
1963
  #
1806
- # source://nokogiri//lib/nokogiri/html5.rb#238
1807
- def fragment(string, encoding = T.unsafe(nil), **options); end
1964
+ # source://nokogiri//lib/nokogiri/html5.rb#280
1965
+ def fragment(*_arg0, **_arg1, &_arg2); end
1808
1966
 
1809
- # Parse an HTML 5 document. Convenience method for {Nokogiri::HTML5::Document.parse}
1967
+ # Convenience method for Nokogiri::HTML5::Document.parse
1810
1968
  #
1811
- # source://nokogiri//lib/nokogiri/html5.rb#232
1812
- def parse(string, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
1969
+ # source://nokogiri//lib/nokogiri/html5.rb#275
1970
+ def parse(*_arg0, **_arg1, &_arg2); end
1813
1971
 
1814
- # source://nokogiri//lib/nokogiri/html5.rb#243
1972
+ # source://nokogiri//lib/nokogiri/html5.rb#285
1815
1973
  def read_and_encode(string, encoding); end
1816
1974
 
1817
1975
  private
1818
1976
 
1819
1977
  # Charset sniffing is a complex and controversial topic that understandably isn't done _by
1820
- # default_ by the Ruby Net::HTTP library. This being said, it is a very real problem for
1978
+ # default_ by the Ruby Net::HTTP library. This being said, it is a very real problem for
1821
1979
  # consumers of HTML as the default for HTML is iso-8859-1, most "good" producers use utf-8, and
1822
1980
  # the Gumbo parser *only* supports utf-8.
1823
1981
  #
1824
- # Accordingly, Nokogiri::HTML4::Document.parse provides limited encoding detection. Following
1982
+ # Accordingly, Nokogiri::HTML4::Document.parse provides limited encoding detection. Following
1825
1983
  # this lead, Nokogiri::HTML5 attempts to do likewise, while attempting to more closely follow
1826
1984
  # the HTML5 standard.
1827
1985
  #
1828
1986
  # http://bugs.ruby-lang.org/issues/2567
1829
1987
  # http://www.w3.org/TR/html5/syntax.html#determining-the-character-encoding
1830
1988
  #
1831
- # source://nokogiri//lib/nokogiri/html5.rb#281
1989
+ # source://nokogiri//lib/nokogiri/html5.rb#323
1832
1990
  def reencode(body, content_type = T.unsafe(nil)); end
1833
1991
  end
1834
1992
  end
1835
1993
 
1994
+ # Nokogiri HTML5 builder is used for building HTML documents. It is very similar to the
1995
+ # Nokogiri::XML::Builder. In fact, you should go read the documentation for
1996
+ # Nokogiri::XML::Builder before reading this documentation.
1997
+ #
1998
+ # The construction behavior is identical to HTML4::Builder, but HTML5 documents implement the
1999
+ # [HTML5 standard's serialization
2000
+ # algorithm](https://www.w3.org/TR/2008/WD-html5-20080610/serializing.html).
2001
+ #
2002
+ # == Synopsis:
2003
+ #
2004
+ # Create an HTML5 document with a body that has an onload attribute, and a
2005
+ # span tag with a class of "bold" that has content of "Hello world".
2006
+ #
2007
+ # builder = Nokogiri::HTML5::Builder.new do |doc|
2008
+ # doc.html {
2009
+ # doc.body(:onload => 'some_func();') {
2010
+ # doc.span.bold {
2011
+ # doc.text "Hello world"
2012
+ # }
2013
+ # }
2014
+ # }
2015
+ # end
2016
+ # puts builder.to_html
2017
+ #
2018
+ # The HTML5 builder inherits from the XML builder, so make sure to read the
2019
+ # Nokogiri::XML::Builder documentation.
2020
+ #
2021
+ # source://nokogiri//lib/nokogiri/html5/builder.rb#32
2022
+ class Nokogiri::HTML5::Builder < ::Nokogiri::XML::Builder
2023
+ # Convert the builder to HTML
2024
+ #
2025
+ # source://nokogiri//lib/nokogiri/html5/builder.rb#35
2026
+ def to_html; end
2027
+ end
2028
+
1836
2029
  # Since v1.12.0
1837
2030
  #
1838
2031
  # 💡 HTML5 functionality is not available when running JRuby.
@@ -1841,7 +2034,7 @@ end
1841
2034
  class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
1842
2035
  # @return [Document] a new instance of Document
1843
2036
  #
1844
- # source://nokogiri//lib/nokogiri/html5/document.rb#129
2037
+ # source://nokogiri//lib/nokogiri/html5/document.rb#159
1845
2038
  def initialize(*args); end
1846
2039
 
1847
2040
  # :call-seq:
@@ -1854,21 +2047,22 @@ class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
1854
2047
  # - +markup+ (String) The HTML5 markup fragment to be parsed
1855
2048
  #
1856
2049
  # [Returns]
1857
- # Nokogiri::HTML5::DocumentFragment. This object's children will be empty if `markup` is not passed, is empty, or is `nil`.
2050
+ # Nokogiri::HTML5::DocumentFragment. This object's children will be empty if +markup+ is not
2051
+ # passed, is empty, or is +nil+.
1858
2052
  #
1859
- # source://nokogiri//lib/nokogiri/html5/document.rb#147
2053
+ # source://nokogiri//lib/nokogiri/html5/document.rb#178
1860
2054
  def fragment(markup = T.unsafe(nil)); end
1861
2055
 
1862
2056
  # Get the parser's quirks mode value. See HTML5::QuirksMode.
1863
2057
  #
1864
- # This method returns `nil` if the parser was not invoked (e.g., `Nokogiri::HTML5::Document.new`).
2058
+ # This method returns +nil+ if the parser was not invoked (e.g., Nokogiri::HTML5::Document.new).
1865
2059
  #
1866
2060
  # Since v1.14.0
1867
2061
  #
1868
2062
  # source://nokogiri//lib/nokogiri/html5/document.rb#49
1869
2063
  def quirks_mode; end
1870
2064
 
1871
- # source://nokogiri//lib/nokogiri/html5/document.rb#151
2065
+ # source://nokogiri//lib/nokogiri/html5/document.rb#182
1872
2066
  def to_xml(options = T.unsafe(nil), &block); end
1873
2067
 
1874
2068
  # Get the url name for this document, as passed into Document.parse, Document.read_io, or
@@ -1884,42 +2078,60 @@ class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
1884
2078
  #
1885
2079
  # See CSS::XPathVisitor for more information.
1886
2080
  #
1887
- # source://nokogiri//lib/nokogiri/html5/document.rb#163
2081
+ # source://nokogiri//lib/nokogiri/html5/document.rb#194
1888
2082
  def xpath_doctype; end
1889
2083
 
1890
2084
  class << self
1891
2085
  # :call-seq:
1892
- # parse(input)
1893
- # parse(input, url=nil, encoding=nil, **options)
1894
- # parse(input, url=nil, encoding=nil) { |options| ... }
2086
+ # parse(input) { |options| ... } → HTML5::Document
2087
+ # parse(input, **options) → HTML5::Document
1895
2088
  #
1896
- # Parse HTML5 input.
2089
+ # Parse \HTML input with a parser compliant with the HTML5 spec. This method uses the
2090
+ # parameter.
1897
2091
  #
1898
- # [Parameters]
1899
- # - +input+ may be a String, or any object that responds to _read_ and _close_ such as an
1900
- # IO, or StringIO.
2092
+ # [Required Parameters]
2093
+ # - +input+ (String | IO) the \HTML content to be parsed.
2094
+ #
2095
+ # [Optional Parameters]
2096
+ # - +url:+ (String) the base URI of the document.
2097
+ #
2098
+ # [Optional Keyword Arguments]
2099
+ # document. When not provided, the encoding will be determined based on the document
2100
+ # content.
2101
+ #
2102
+ # - +max_errors:+ (Integer) The maximum number of parse errors to record. (default
2103
+ # +Nokogiri::Gumbo::DEFAULT_MAX_ERRORS+ which is currently 0)
1901
2104
  #
1902
- # - +url+ (optional) is a String indicating the canonical URI where this document is located.
2105
+ # - +max_tree_depth:+ (Integer) The maximum depth of the parse tree. (default
2106
+ # +Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH+)
1903
2107
  #
1904
- # - +encoding+ (optional) is the encoding that should be used when processing
1905
- # the document.
2108
+ # - +max_attributes:+ (Integer) The maximum number of attributes allowed on an
2109
+ # element. (default +Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES+)
1906
2110
  #
1907
- # - +options+ (optional) is a configuration Hash (or keyword arguments) to set options
1908
- # during parsing. The three currently supported options are +:max_errors+,
1909
- # +:max_tree_depth+ and +:max_attributes+, described at Nokogiri::HTML5.
2111
+ # - +parse_noscript_content_as_text:+ (Boolean) Whether to parse the content of +noscript+
2112
+ # elements as text. (default +false+)
1910
2113
  #
1911
- # Note that these options are different than those made available by
1912
- # Nokogiri::XML::Document and Nokogiri::HTML4::Document.
2114
+ # See rdoc-ref:HTML5@Parsing+options for a complete description of these parsing options.
2115
+ #
2116
+ # [Yields]
2117
+ # If present, the block will be passed a Hash object to modify with parse options before the
2118
+ # input is parsed. See rdoc-ref:HTML5@Parsing+options for a list of available options.
1913
2119
  #
1914
- # - +block+ (optional) is passed a configuration Hash on which parse options may be set. See
1915
- # Nokogiri::HTML5 for more information and usage.
1916
2120
  #
1917
2121
  # [Returns] Nokogiri::HTML5::Document
1918
2122
  #
2123
+ # *Example:* Parse a string with a specific encoding and custom max errors limit.
2124
+ #
2125
+ #
2126
+ # *Example:* Parse a string setting the +:parse_noscript_content_as_text+ option using the
2127
+ # configuration block parameter.
2128
+ #
2129
+ # Nokogiri::HTML5::Document.parse(input) { |c| c[:parse_noscript_content_as_text] = true }
2130
+ #
1919
2131
  # @yield [options]
1920
2132
  #
1921
- # source://nokogiri//lib/nokogiri/html5/document.rb#80
1922
- def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
2133
+ # source://nokogiri//lib/nokogiri/html5/document.rb#103
2134
+ def parse(string_or_io, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), **options, &block); end
1923
2135
 
1924
2136
  # Create a new document from an IO object.
1925
2137
  #
@@ -1927,8 +2139,8 @@ class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
1927
2139
  #
1928
2140
  # @raise [ArgumentError]
1929
2141
  #
1930
- # source://nokogiri//lib/nokogiri/html5/document.rb#101
1931
- def read_io(io, url = T.unsafe(nil), encoding = T.unsafe(nil), **options); end
2142
+ # source://nokogiri//lib/nokogiri/html5/document.rb#129
2143
+ def read_io(io, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), **options); end
1932
2144
 
1933
2145
  # Create a new document from a String.
1934
2146
  #
@@ -1936,13 +2148,13 @@ class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
1936
2148
  #
1937
2149
  # @raise [ArgumentError]
1938
2150
  #
1939
- # source://nokogiri//lib/nokogiri/html5/document.rb#110
1940
- def read_memory(string, url = T.unsafe(nil), encoding = T.unsafe(nil), **options); end
2151
+ # source://nokogiri//lib/nokogiri/html5/document.rb#138
2152
+ def read_memory(string, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), **options); end
1941
2153
 
1942
2154
  private
1943
2155
 
1944
- # source://nokogiri//lib/nokogiri/html5/document.rb#118
1945
- def do_parse(string_or_io, url, encoding, options); end
2156
+ # source://nokogiri//lib/nokogiri/html5/document.rb#146
2157
+ def do_parse(string_or_io, url, encoding, **options); end
1946
2158
  end
1947
2159
  end
1948
2160
 
@@ -1952,57 +2164,136 @@ end
1952
2164
  #
1953
2165
  # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#27
1954
2166
  class Nokogiri::HTML5::DocumentFragment < ::Nokogiri::HTML4::DocumentFragment
1955
- # Create a document fragment.
2167
+ # :call-seq:
2168
+ # new(document, input, **options) → HTML5::DocumentFragment
2169
+ #
2170
+ # Parse \HTML5 fragment input from a String, and return a new HTML5::DocumentFragment.
2171
+ #
2172
+ # 💡 It's recommended to use either HTML5::DocumentFragment.parse or HTML5::Node#fragment
2173
+ # rather than call this method directly.
2174
+ #
2175
+ # [Required Parameters]
2176
+ # - +document+ (HTML5::Document) The parent document to associate the returned fragment with.
2177
+ #
2178
+ # [Optional Parameters]
2179
+ # - +input+ (String) The content to be parsed.
2180
+ #
2181
+ # [Optional Keyword Arguments]
2182
+ # used when processing the document. When not provided, the encoding will be determined
2183
+ # based on the document content. Also see Nokogiri::HTML5 for a longer explanation of how
2184
+ # encoding is handled by the parser.
2185
+ #
2186
+ # - +context:+ (String | Nokogiri::XML::Node) The node, or the name of an HTML5 element, in
2187
+ # which to parse the document fragment. (default +"body"+)
2188
+ #
2189
+ # - +max_errors:+ (Integer) The maximum number of parse errors to record. (default
2190
+ # +Nokogiri::Gumbo::DEFAULT_MAX_ERRORS+ which is currently 0)
2191
+ #
2192
+ # - +max_tree_depth:+ (Integer) The maximum depth of the parse tree. (default
2193
+ # +Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH+)
2194
+ #
2195
+ # - +max_attributes:+ (Integer) The maximum number of attributes allowed on an
2196
+ # element. (default +Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES+)
2197
+ #
2198
+ # - +parse_noscript_content_as_text:+ (Boolean) Whether to parse the content of +noscript+
2199
+ # elements as text. (default +false+)
2200
+ #
2201
+ # See rdoc-ref:HTML5@Parsing+options for a complete description of these parsing options.
2202
+ #
2203
+ # [Returns] HTML5::DocumentFragment
2204
+ #
2205
+ # === Context \Node
2206
+ #
2207
+ # If a context node is specified using +context:+, then the parser will behave as if that
2208
+ # Node, or a hypothetical tag named as specified, is the parent of the fragment subtree.
1956
2209
  #
1957
2210
  # @return [DocumentFragment] a new instance of DocumentFragment
1958
2211
  #
1959
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#39
1960
- def initialize(doc, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
2212
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#144
2213
+ def initialize(doc, input = T.unsafe(nil), context_ = T.unsafe(nil), positional_options_hash = T.unsafe(nil), context: T.unsafe(nil), **options); end
1961
2214
 
1962
2215
  # Returns the value of attribute document.
1963
2216
  #
1964
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#28
2217
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#88
1965
2218
  def document; end
1966
2219
 
1967
2220
  # Sets the attribute document
1968
2221
  #
1969
2222
  # @param value the value to set the attribute document to.
1970
2223
  #
1971
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#28
2224
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#88
1972
2225
  def document=(_arg0); end
1973
2226
 
1974
2227
  # Returns the value of attribute errors.
1975
2228
  #
1976
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#29
2229
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#89
1977
2230
  def errors; end
1978
2231
 
1979
2232
  # Sets the attribute errors
1980
2233
  #
1981
2234
  # @param value the value to set the attribute errors to.
1982
2235
  #
1983
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#29
2236
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#89
1984
2237
  def errors=(_arg0); end
1985
2238
 
1986
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#65
2239
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#175
1987
2240
  def extract_params(params); end
1988
2241
 
1989
2242
  # Get the parser's quirks mode value. See HTML5::QuirksMode.
1990
2243
  #
1991
- # This method returns `nil` if the parser was not invoked (e.g., `Nokogiri::HTML5::DocumentFragment.new(doc)`).
2244
+ # This method returns `nil` if the parser was not invoked (e.g.,
2245
+ # `Nokogiri::HTML5::DocumentFragment.new(doc)`).
1992
2246
  #
1993
2247
  # Since v1.14.0
1994
2248
  #
1995
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#36
2249
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#97
1996
2250
  def quirks_mode; end
1997
2251
 
1998
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#51
2252
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#169
1999
2253
  def serialize(options = T.unsafe(nil), &block); end
2000
2254
 
2001
2255
  class << self
2002
- # Parse a document fragment from +tags+, returning a Nodeset.
2256
+ # :call-seq:
2257
+ # parse(input, **options) → HTML5::DocumentFragment
2258
+ #
2259
+ # Parse \HTML5 fragment input from a String, and return a new HTML5::DocumentFragment. This
2260
+ # method creates a new, empty HTML5::Document to contain the fragment.
2261
+ #
2262
+ # [Parameters]
2263
+ # - +input+ (String | IO) The HTML5 document fragment to parse.
2264
+ #
2265
+ # [Optional Keyword Arguments]
2266
+ # used when processing the document. When not provided, the encoding will be determined
2267
+ # based on the document content. Also see Nokogiri::HTML5 for a longer explanation of how
2268
+ # encoding is handled by the parser.
2269
+ #
2270
+ # - +context:+ (String | Nokogiri::XML::Node) The node, or the name of an HTML5 element, "in
2271
+ # context" of which to parse the document fragment. See below for more
2272
+ # information. (default +"body"+)
2273
+ #
2274
+ # - +max_errors:+ (Integer) The maximum number of parse errors to record. (default
2275
+ # +Nokogiri::Gumbo::DEFAULT_MAX_ERRORS+ which is currently 0)
2276
+ #
2277
+ # - +max_tree_depth:+ (Integer) The maximum depth of the parse tree. (default
2278
+ # +Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH+)
2279
+ #
2280
+ # - +max_attributes:+ (Integer) The maximum number of attributes allowed on an
2281
+ # element. (default +Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES+)
2282
+ #
2283
+ # - +parse_noscript_content_as_text:+ (Boolean) Whether to parse the content of +noscript+
2284
+ # elements as text. (default +false+)
2003
2285
  #
2004
- # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#58
2005
- def parse(tags, encoding = T.unsafe(nil), options = T.unsafe(nil)); end
2286
+ # See rdoc-ref:HTML5@Parsing+options for a complete description of these parsing options.
2287
+ #
2288
+ # [Returns] Nokogiri::HTML5::DocumentFragment
2289
+ #
2290
+ # === Context \Node
2291
+ #
2292
+ # If a context node is specified using +context:+, then the parser will behave as if that
2293
+ # Node, or a hypothetical tag named as specified, is the parent of the fragment subtree.
2294
+ #
2295
+ # source://nokogiri//lib/nokogiri/html5/document_fragment.rb#69
2296
+ def parse(input, encoding_ = T.unsafe(nil), positional_options_hash = T.unsafe(nil), encoding: T.unsafe(nil), **options); end
2006
2297
  end
2007
2298
  end
2008
2299
 
@@ -2065,6 +2356,7 @@ Nokogiri::LIBXML_COMPILED_VERSION = T.let(T.unsafe(nil), String)
2065
2356
  Nokogiri::LIBXML_ICONV_ENABLED = T.let(T.unsafe(nil), TrueClass)
2066
2357
  Nokogiri::LIBXML_LOADED_VERSION = T.let(T.unsafe(nil), String)
2067
2358
  Nokogiri::LIBXML_MEMORY_MANAGEMENT = T.let(T.unsafe(nil), String)
2359
+ Nokogiri::LIBXML_ZLIB_ENABLED = T.let(T.unsafe(nil), TrueClass)
2068
2360
  Nokogiri::LIBXSLT_COMPILED_VERSION = T.let(T.unsafe(nil), String)
2069
2361
  Nokogiri::LIBXSLT_DATETIME_ENABLED = T.let(T.unsafe(nil), TrueClass)
2070
2362
  Nokogiri::LIBXSLT_LOADED_VERSION = T.let(T.unsafe(nil), String)
@@ -2172,38 +2464,41 @@ class Nokogiri::VersionInfo
2172
2464
  end
2173
2465
  end
2174
2466
 
2175
- # source://nokogiri//lib/nokogiri/xml.rb#12
2467
+ # source://nokogiri//lib/nokogiri/xml.rb#11
2176
2468
  module Nokogiri::XML
2177
2469
  class << self
2178
- # Parse an XML document using the Nokogiri::XML::Reader API. See
2179
- # Nokogiri::XML::Reader for mor information
2470
+ # Convenience method for Nokogiri::XML::Reader.new
2180
2471
  #
2181
- # @yield [options]
2182
- #
2183
- # source://nokogiri//lib/nokogiri/xml.rb#23
2184
- def Reader(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
2472
+ # source://nokogiri//lib/nokogiri/xml.rb#21
2473
+ def Reader(*_arg0, **_arg1, &_arg2); end
2185
2474
 
2186
- # Create a new Nokogiri::XML::RelaxNG document from +string_or_io+.
2187
- # See Nokogiri::XML::RelaxNG for an example.
2475
+ # :call-seq:
2476
+ # RelaxNG(input) Nokogiri::XML::RelaxNG
2477
+ # RelaxNG(input, options:) → Nokogiri::XML::RelaxNG
2478
+ #
2479
+ # Convenience method for Nokogiri::XML::RelaxNG.new
2188
2480
  #
2189
- # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#9
2190
- def RelaxNG(string_or_io, options = T.unsafe(nil)); end
2481
+ # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#11
2482
+ def RelaxNG(*_arg0, **_arg1, &_arg2); end
2191
2483
 
2192
- # Create a new Nokogiri::XML::Schema object using a +string_or_io+
2193
- # object.
2484
+ # :call-seq:
2485
+ # Schema(input) → Nokogiri::XML::Schema
2486
+ # Schema(input, parse_options) → Nokogiri::XML::Schema
2487
+ #
2488
+ # Convenience method for Nokogiri::XML::Schema.new
2194
2489
  #
2195
- # source://nokogiri//lib/nokogiri/xml/schema.rb#9
2196
- def Schema(string_or_io, options = T.unsafe(nil)); end
2490
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#11
2491
+ def Schema(*_arg0, **_arg1, &_arg2); end
2197
2492
 
2198
- # Parse a fragment from +string+ in to a NodeSet.
2493
+ # Convenience method for Nokogiri::XML::DocumentFragment.parse
2199
2494
  #
2200
- # source://nokogiri//lib/nokogiri/xml.rb#42
2201
- def fragment(string, options = T.unsafe(nil), &block); end
2495
+ # source://nokogiri//lib/nokogiri/xml.rb#31
2496
+ def fragment(*_arg0, **_arg1, &_arg2); end
2202
2497
 
2203
- # Parse XML. Convenience method for Nokogiri::XML::Document.parse
2498
+ # Convenience method for Nokogiri::XML::Document.parse
2204
2499
  #
2205
- # source://nokogiri//lib/nokogiri/xml.rb#36
2206
- def parse(thing, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
2500
+ # source://nokogiri//lib/nokogiri/xml.rb#26
2501
+ def parse(*_arg0, **_arg1, &_arg2); end
2207
2502
  end
2208
2503
  end
2209
2504
 
@@ -2729,28 +3024,40 @@ class Nokogiri::XML::DTD < ::Nokogiri::XML::Node
2729
3024
  def validate(_arg0); end
2730
3025
  end
2731
3026
 
2732
- # Nokogiri::XML::Document is the main entry point for dealing with XML documents. The Document
2733
- # is created by parsing an XML document. See Nokogiri::XML::Document.parse for more information
2734
- # on parsing.
3027
+ # Nokogiri::XML::Document is the main entry point for dealing with \XML documents. The Document
3028
+ # is created by parsing \XML content from a String or an IO object. See
3029
+ # Nokogiri::XML::Document.parse for more information on parsing.
2735
3030
  #
2736
- # For searching a Document, see Nokogiri::XML::Searchable#css and
2737
- # Nokogiri::XML::Searchable#xpath
3031
+ # Document inherits a great deal of functionality from its superclass Nokogiri::XML::Node, so
3032
+ # please read that class's documentation as well.
2738
3033
  #
2739
3034
  # source://nokogiri//lib/nokogiri/xml/document.rb#14
2740
3035
  class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2741
3036
  # @return [Document] a new instance of Document
2742
3037
  #
2743
- # source://nokogiri//lib/nokogiri/xml/document.rb#177
3038
+ # source://nokogiri//lib/nokogiri/xml/document.rb#190
2744
3039
  def initialize(*args); end
2745
3040
 
2746
- # source://nokogiri//lib/nokogiri/xml/document.rb#393
3041
+ # source://nokogiri//lib/nokogiri/xml/document.rb#437
2747
3042
  def <<(node_or_tags); end
2748
3043
 
2749
- # source://nokogiri//lib/nokogiri/xml/document.rb#393
3044
+ # source://nokogiri//lib/nokogiri/xml/document.rb#437
2750
3045
  def add_child(node_or_tags); end
2751
3046
 
2752
3047
  def canonicalize(*_arg0); end
2753
- def clone(*_arg0); end
3048
+
3049
+ # :call-seq:
3050
+ # clone → Nokogiri::XML::Document
3051
+ # clone(level) → Nokogiri::XML::Document
3052
+ #
3053
+ # Clone this node.
3054
+ #
3055
+ # [Parameters]
3056
+ # - +level+ (optional Integer). 0 is a shallow copy, 1 (the default) is a deep copy.
3057
+ # [Returns] The new Nokogiri::XML::Document
3058
+ #
3059
+ # source://nokogiri//lib/nokogiri/xml/document.rb#223
3060
+ def clone(level = T.unsafe(nil)); end
2754
3061
 
2755
3062
  # :call-seq:
2756
3063
  # collect_namespaces() → Hash<String(Namespace#prefix) ⇒ String(Namespace#href)>
@@ -2788,17 +3095,17 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2788
3095
  #
2789
3096
  # {"xmlns:foo" => "baz"}
2790
3097
  #
2791
- # source://nokogiri//lib/nokogiri/xml/document.rb#316
3098
+ # source://nokogiri//lib/nokogiri/xml/document.rb#361
2792
3099
  def collect_namespaces; end
2793
3100
 
2794
3101
  # Create a CDATA Node containing +string+
2795
3102
  #
2796
- # source://nokogiri//lib/nokogiri/xml/document.rb#261
3103
+ # source://nokogiri//lib/nokogiri/xml/document.rb#306
2797
3104
  def create_cdata(string, &block); end
2798
3105
 
2799
3106
  # Create a Comment Node containing +string+
2800
3107
  #
2801
- # source://nokogiri//lib/nokogiri/xml/document.rb#266
3108
+ # source://nokogiri//lib/nokogiri/xml/document.rb#311
2802
3109
  def create_comment(string, &block); end
2803
3110
 
2804
3111
  # :call-seq:
@@ -2849,14 +3156,14 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2849
3156
  #
2850
3157
  # doc.create_element("div") { |node| node["class"] = "blue" if before_noon? }
2851
3158
  #
2852
- # source://nokogiri//lib/nokogiri/xml/document.rb#231
3159
+ # source://nokogiri//lib/nokogiri/xml/document.rb#276
2853
3160
  def create_element(name, *contents_or_attrs, &block); end
2854
3161
 
2855
3162
  def create_entity(*_arg0); end
2856
3163
 
2857
3164
  # Create a Text Node with +string+
2858
3165
  #
2859
- # source://nokogiri//lib/nokogiri/xml/document.rb#256
3166
+ # source://nokogiri//lib/nokogiri/xml/document.rb#301
2860
3167
  def create_text_node(string, &block); end
2861
3168
 
2862
3169
  # :call-seq: deconstruct_keys(array_of_names) → Hash
@@ -2898,25 +3205,37 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2898
3205
  #
2899
3206
  # Since v1.14.0
2900
3207
  #
2901
- # source://nokogiri//lib/nokogiri/xml/document.rb#457
3208
+ # source://nokogiri//lib/nokogiri/xml/document.rb#501
2902
3209
  def deconstruct_keys(keys); end
2903
3210
 
2904
3211
  # Apply any decorators to +node+
2905
3212
  #
2906
- # source://nokogiri//lib/nokogiri/xml/document.rb#364
3213
+ # source://nokogiri//lib/nokogiri/xml/document.rb#409
2907
3214
  def decorate(node); end
2908
3215
 
2909
3216
  # Get the list of decorators given +key+
2910
3217
  #
2911
- # source://nokogiri//lib/nokogiri/xml/document.rb#323
3218
+ # source://nokogiri//lib/nokogiri/xml/document.rb#368
2912
3219
  def decorators(key); end
2913
3220
 
2914
3221
  # A reference to +self+
2915
3222
  #
2916
- # source://nokogiri//lib/nokogiri/xml/document.rb#276
3223
+ # source://nokogiri//lib/nokogiri/xml/document.rb#321
2917
3224
  def document; end
2918
3225
 
2919
- def dup(*_arg0); end
3226
+ # :call-seq:
3227
+ # dup → Nokogiri::XML::Document
3228
+ # dup(level) → Nokogiri::XML::Document
3229
+ #
3230
+ # Duplicate this node.
3231
+ #
3232
+ # [Parameters]
3233
+ # - +level+ (optional Integer). 0 is a shallow copy, 1 (the default) is a deep copy.
3234
+ # [Returns] The new Nokogiri::XML::Document
3235
+ #
3236
+ # source://nokogiri//lib/nokogiri/xml/document.rb#207
3237
+ def dup(level = T.unsafe(nil)); end
3238
+
2920
3239
  def encoding; end
2921
3240
  def encoding=(_arg0); end
2922
3241
 
@@ -2924,25 +3243,25 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2924
3243
  #
2925
3244
  # [Returns] Array<Nokogiri::XML::SyntaxError>
2926
3245
  #
2927
- # source://nokogiri//lib/nokogiri/xml/document.rb#128
3246
+ # source://nokogiri//lib/nokogiri/xml/document.rb#141
2928
3247
  def errors; end
2929
3248
 
2930
3249
  # The errors found while parsing a document.
2931
3250
  #
2932
3251
  # [Returns] Array<Nokogiri::XML::SyntaxError>
2933
3252
  #
2934
- # source://nokogiri//lib/nokogiri/xml/document.rb#128
3253
+ # source://nokogiri//lib/nokogiri/xml/document.rb#141
2935
3254
  def errors=(_arg0); end
2936
3255
 
2937
3256
  # Create a Nokogiri::XML::DocumentFragment from +tags+
2938
3257
  # Returns an empty fragment if +tags+ is nil.
2939
3258
  #
2940
- # source://nokogiri//lib/nokogiri/xml/document.rb#385
3259
+ # source://nokogiri//lib/nokogiri/xml/document.rb#429
2941
3260
  def fragment(tags = T.unsafe(nil)); end
2942
3261
 
2943
3262
  # The name of this document. Always returns "document"
2944
3263
  #
2945
- # source://nokogiri//lib/nokogiri/xml/document.rb#271
3264
+ # source://nokogiri//lib/nokogiri/xml/document.rb#316
2946
3265
  def name; end
2947
3266
 
2948
3267
  # When `true`, reparented elements without a namespace will inherit their new parent's
@@ -2991,7 +3310,7 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
2991
3310
  #
2992
3311
  # Since v1.12.4
2993
3312
  #
2994
- # source://nokogiri//lib/nokogiri/xml/document.rb#175
3313
+ # source://nokogiri//lib/nokogiri/xml/document.rb#188
2995
3314
  def namespace_inheritance; end
2996
3315
 
2997
3316
  # When `true`, reparented elements without a namespace will inherit their new parent's
@@ -3040,12 +3359,12 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
3040
3359
  #
3041
3360
  # Since v1.12.4
3042
3361
  #
3043
- # source://nokogiri//lib/nokogiri/xml/document.rb#175
3362
+ # source://nokogiri//lib/nokogiri/xml/document.rb#188
3044
3363
  def namespace_inheritance=(_arg0); end
3045
3364
 
3046
3365
  # Get the hash of namespaces on the root Nokogiri::XML::Node
3047
3366
  #
3048
- # source://nokogiri//lib/nokogiri/xml/document.rb#378
3367
+ # source://nokogiri//lib/nokogiri/xml/document.rb#422
3049
3368
  def namespaces; end
3050
3369
 
3051
3370
  def remove_namespaces!; end
@@ -3067,18 +3386,18 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
3067
3386
  # irb> doc.slop!
3068
3387
  # ... which does absolutely nothing.
3069
3388
  #
3070
- # source://nokogiri//lib/nokogiri/xml/document.rb#353
3389
+ # source://nokogiri//lib/nokogiri/xml/document.rb#398
3071
3390
  def slop!; end
3072
3391
 
3073
- # source://nokogiri//lib/nokogiri/xml/node.rb#1286
3392
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1364
3074
3393
  def to_xml(*args, &block); end
3075
3394
 
3076
3395
  def url; end
3077
3396
 
3078
- # Validate this Document against it's DTD. Returns a list of errors on
3397
+ # Validate this Document against its DTD. Returns a list of errors on
3079
3398
  # the document or +nil+ when there is no DTD.
3080
3399
  #
3081
- # source://nokogiri//lib/nokogiri/xml/document.rb#331
3400
+ # source://nokogiri//lib/nokogiri/xml/document.rb#376
3082
3401
  def validate; end
3083
3402
 
3084
3403
  def version; end
@@ -3090,46 +3409,53 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
3090
3409
  #
3091
3410
  # See XPathVisitor for more information.
3092
3411
  #
3093
- # source://nokogiri//lib/nokogiri/xml/document.rb#413
3412
+ # source://nokogiri//lib/nokogiri/xml/document.rb#457
3094
3413
  def xpath_doctype; end
3095
3414
 
3415
+ protected
3416
+
3417
+ def initialize_copy_with_args(_arg0, _arg1); end
3418
+
3096
3419
  private
3097
3420
 
3098
- # source://nokogiri//lib/nokogiri/xml/document.rb#465
3421
+ # source://nokogiri//lib/nokogiri/xml/document.rb#509
3099
3422
  def inspect_attributes; end
3100
3423
 
3101
3424
  class << self
3102
3425
  def new(*_arg0); end
3103
3426
 
3104
- # Parse an XML file.
3427
+ # call-seq:
3428
+ # parse(input) { |options| ... } => Nokogiri::XML::Document
3429
+ #
3430
+ # Parse \XML input from a String or IO object, and return a new XML::Document.
3105
3431
  #
3106
- # +string_or_io+ may be a String, or any object that responds to
3107
- # _read_ and _close_ such as an IO, or StringIO.
3432
+ # 🛡 By default, Nokogiri treats documents as untrusted, and so does not attempt to load DTDs
3433
+ # or access the network. See Nokogiri::XML::ParseOptions for a complete list of options; and
3434
+ # that module's DEFAULT_XML constant for what's set (and not set) by default.
3108
3435
  #
3109
- # +url+ (optional) is the URI where this document is located.
3436
+ # [Required Parameters]
3437
+ # - +input+ (String | IO) The content to be parsed.
3110
3438
  #
3111
- # +encoding+ (optional) is the encoding that should be used when processing
3112
- # the document.
3439
+ # [Optional Keyword Arguments]
3440
+ # - +url:+ (String) The base URI for this document.
3113
3441
  #
3114
- # +options+ (optional) is a configuration object that sets options during
3115
- # parsing, such as Nokogiri::XML::ParseOptions::RECOVER. See the
3116
- # Nokogiri::XML::ParseOptions for more information.
3442
+ # document. When not provided, the encoding will be determined based on the document
3443
+ # content.
3117
3444
  #
3118
- # +block+ (optional) is passed a configuration object on which
3119
- # parse options may be set.
3445
+ # - +options:+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
3446
+ # behaviors during parsing. See ParseOptions for more information. The default value is
3447
+ # +ParseOptions::DEFAULT_XML+.
3120
3448
  #
3121
- # By default, Nokogiri treats documents as untrusted, and so
3122
- # does not attempt to load DTDs or access the network. See
3123
- # Nokogiri::XML::ParseOptions for a complete list of options;
3124
- # and that module's DEFAULT_XML constant for what's set (and not
3125
- # set) by default.
3449
+ # [Yields]
3450
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
3451
+ # can be configured before parsing. See Nokogiri::XML::ParseOptions for more information.
3126
3452
  #
3127
- # Nokogiri.XML() is a convenience method which will call this method.
3453
+ # [Returns] Nokogiri::XML::Document
3128
3454
  #
3129
3455
  # @yield [options]
3130
3456
  #
3131
- # source://nokogiri//lib/nokogiri/xml/document.rb#48
3132
- def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
3457
+ # source://nokogiri//lib/nokogiri/xml/document.rb#56
3458
+ def parse(string_or_io, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), options_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), options: T.unsafe(nil)); end
3133
3459
 
3134
3460
  def read_io(_arg0, _arg1, _arg2, _arg3); end
3135
3461
  def read_memory(_arg0, _arg1, _arg2, _arg3); end
@@ -3138,12 +3464,12 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
3138
3464
 
3139
3465
  # @return [Boolean]
3140
3466
  #
3141
- # source://nokogiri//lib/nokogiri/xml/document.rb#83
3467
+ # source://nokogiri//lib/nokogiri/xml/document.rb#96
3142
3468
  def empty_doc?(string_or_io); end
3143
3469
  end
3144
3470
  end
3145
3471
 
3146
- # source://nokogiri//lib/nokogiri/xml/document.rb#463
3472
+ # source://nokogiri//lib/nokogiri/xml/document.rb#507
3147
3473
  Nokogiri::XML::Document::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
3148
3474
 
3149
3475
  # source://nokogiri//lib/nokogiri/xml/document.rb#19
@@ -3159,19 +3485,58 @@ Nokogiri::XML::Document::NCNAME_RE = T.let(T.unsafe(nil), Regexp)
3159
3485
  # source://nokogiri//lib/nokogiri/xml/document.rb#18
3160
3486
  Nokogiri::XML::Document::NCNAME_START_CHAR = T.let(T.unsafe(nil), String)
3161
3487
 
3162
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#6
3488
+ # source://nokogiri//lib/nokogiri/xml/document.rb#23
3489
+ Nokogiri::XML::Document::OBJECT_CLONE_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3490
+
3491
+ # source://nokogiri//lib/nokogiri/xml/document.rb#22
3492
+ Nokogiri::XML::Document::OBJECT_DUP_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3493
+
3494
+ # DocumentFragment represents a fragment of an \XML document. It provides the same functionality
3495
+ # exposed by XML::Node and can be used to contain one or more \XML subtrees.
3496
+ #
3497
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#8
3163
3498
  class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
3164
- # Create a new DocumentFragment from +tags+.
3499
+ # :call-seq:
3500
+ # new(document, input=nil) { |options| ... } → DocumentFragment
3501
+ # new(document, input=nil, context:, options:) → DocumentFragment
3502
+ #
3503
+ # Parse \XML fragment input from a String, and return a new DocumentFragment that is
3504
+ # associated with the given +document+.
3505
+ #
3506
+ # 💡 It's recommended to use either XML::DocumentFragment.parse or Node#parse rather than call
3507
+ # this method directly.
3508
+ #
3509
+ # [Required Parameters]
3510
+ # - +document+ (XML::Document) The parent document to associate the returned fragment with.
3511
+ #
3512
+ # [Optional Parameters]
3513
+ # - +input+ (String) The content to be parsed.
3514
+ #
3515
+ # [Optional Keyword Arguments]
3516
+ # - +context:+ (Nokogiri::XML::Node) The <b>context node</b> for the subtree created. See
3517
+ # below for more information.
3518
+ #
3519
+ # - +options:+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
3520
+ # behaviors during parsing. See ParseOptions for more information. The default value is
3521
+ # +ParseOptions::DEFAULT_XML+.
3522
+ #
3523
+ # [Yields]
3524
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
3525
+ # can be configured before parsing. See ParseOptions for more information.
3526
+ #
3527
+ # [Returns] XML::DocumentFragment
3528
+ #
3529
+ # === Context \Node
3165
3530
  #
3166
- # If +ctx+ is present, it is used as a context node for the
3167
- # subtree created, e.g., namespaces will be resolved relative
3168
- # to +ctx+.
3531
+ # If a context node is specified using +context:+, then the fragment will be created by
3532
+ # calling Node#parse on that node, so the parser will behave as if that Node is the parent of
3533
+ # the fragment subtree, and will resolve namespaces relative to that node.
3169
3534
  #
3170
3535
  # @return [DocumentFragment] a new instance of DocumentFragment
3171
3536
  # @yield [options]
3172
3537
  #
3173
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#19
3174
- def initialize(document, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
3538
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#85
3539
+ def initialize(document, tags = T.unsafe(nil), context_ = T.unsafe(nil), options_ = T.unsafe(nil), context: T.unsafe(nil), options: T.unsafe(nil)); end
3175
3540
 
3176
3541
  # call-seq: css *rules, [namespace-bindings, custom-pseudo-class]
3177
3542
  #
@@ -3180,7 +3545,7 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
3180
3545
  #
3181
3546
  # For more information see Nokogiri::XML::Searchable#css
3182
3547
  #
3183
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#102
3548
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#173
3184
3549
  def css(*args); end
3185
3550
 
3186
3551
  # :call-seq: deconstruct() → Array
@@ -3224,79 +3589,112 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
3224
3589
  #
3225
3590
  # Since v1.14.0
3226
3591
  #
3227
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#190
3592
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#261
3228
3593
  def deconstruct; end
3229
3594
 
3230
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#42
3595
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#113
3231
3596
  def dup; end
3232
3597
 
3233
3598
  # A list of Nokogiri::XML::SyntaxError found when parsing a document
3234
3599
  #
3235
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#136
3600
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#207
3236
3601
  def errors; end
3237
3602
 
3238
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#140
3603
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#211
3239
3604
  def errors=(things); end
3240
3605
 
3241
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#144
3606
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#215
3242
3607
  def fragment(data); end
3243
3608
 
3244
3609
  # return the name for DocumentFragment
3245
3610
  #
3246
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#54
3611
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#125
3247
3612
  def name; end
3248
3613
 
3614
+ # The options used to parse the document fragment. Returns the value of any options that were
3615
+ # passed into the constructor as a parameter or set in a config block, else the default
3616
+ # options for the specific subclass.
3617
+ #
3618
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#12
3619
+ def parse_options; end
3620
+
3249
3621
  # call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
3250
3622
  #
3251
3623
  # Search this fragment for +paths+. +paths+ must be one or more XPath or CSS queries.
3252
3624
  #
3253
3625
  # For more information see Nokogiri::XML::Searchable#search
3254
3626
  #
3255
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#121
3627
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#192
3256
3628
  def search(*rules); end
3257
3629
 
3258
3630
  # Convert this DocumentFragment to a string
3259
3631
  #
3260
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#60
3632
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#131
3261
3633
  def serialize; end
3262
3634
 
3263
3635
  # Convert this DocumentFragment to html
3264
3636
  # See Nokogiri::XML::NodeSet#to_html
3265
3637
  #
3266
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#67
3638
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#138
3267
3639
  def to_html(*args); end
3268
3640
 
3269
3641
  # Convert this DocumentFragment to a string
3270
3642
  #
3271
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#60
3643
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#131
3272
3644
  def to_s; end
3273
3645
 
3274
3646
  # Convert this DocumentFragment to xhtml
3275
3647
  # See Nokogiri::XML::NodeSet#to_xhtml
3276
3648
  #
3277
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#79
3649
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#150
3278
3650
  def to_xhtml(*args); end
3279
3651
 
3280
3652
  # Convert this DocumentFragment to xml
3281
3653
  # See Nokogiri::XML::NodeSet#to_xml
3282
3654
  #
3283
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#91
3655
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#162
3284
3656
  def to_xml(*args); end
3285
3657
 
3286
3658
  private
3287
3659
 
3288
3660
  # fix for issue 770
3289
3661
  #
3290
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#197
3662
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#268
3291
3663
  def namespace_declarations(ctx); end
3292
3664
 
3293
3665
  class << self
3294
- def new(*_arg0); end
3666
+ def native_new(_arg0); end
3295
3667
 
3296
- # Create a Nokogiri::XML::DocumentFragment from +tags+
3668
+ # Wrapper method to separate the concerns of:
3669
+ # - the native object allocator's parameter (it only requires `document`)
3670
+ # - the initializer's parameters
3671
+ #
3672
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#42
3673
+ def new(document, *_arg1, **_arg2, &_arg3); end
3674
+
3675
+ # :call-seq:
3676
+ # parse(input) { |options| ... } → XML::DocumentFragment
3677
+ # parse(input, options:) → XML::DocumentFragment
3678
+ #
3679
+ # Parse \XML fragment input from a String, and return a new XML::DocumentFragment. This
3680
+ # method creates a new, empty XML::Document to contain the fragment.
3297
3681
  #
3298
- # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#9
3299
- def parse(tags, options = T.unsafe(nil), &block); end
3682
+ # [Required Parameters]
3683
+ # - +input+ (String) The content to be parsed.
3684
+ #
3685
+ # [Optional Keyword Arguments]
3686
+ # - +options+ (Nokogiri::XML::ParseOptions) Configuration object that determines some
3687
+ # behaviors during parsing. See ParseOptions for more information. The default value is
3688
+ # +ParseOptions::DEFAULT_XML+.
3689
+ #
3690
+ # [Yields]
3691
+ # If a block is given, a Nokogiri::XML::ParseOptions object is yielded to the block which
3692
+ # can be configured before parsing. See Nokogiri::XML::ParseOptions for more information.
3693
+ #
3694
+ # [Returns] Nokogiri::XML::DocumentFragment
3695
+ #
3696
+ # source://nokogiri//lib/nokogiri/xml/document_fragment.rb#35
3697
+ def parse(tags, options_ = T.unsafe(nil), options: T.unsafe(nil), &block); end
3300
3698
  end
3301
3699
  end
3302
3700
 
@@ -3566,18 +3964,18 @@ class Nokogiri::XML::Node
3566
3964
  #
3567
3965
  # Also see related method +add_child+.
3568
3966
  #
3569
- # source://nokogiri//lib/nokogiri/xml/node.rb#256
3967
+ # source://nokogiri//lib/nokogiri/xml/node.rb#292
3570
3968
  def <<(node_or_tags); end
3571
3969
 
3572
3970
  # Compare two Node objects with respect to their Document. Nodes from
3573
3971
  # different documents cannot be compared.
3574
3972
  #
3575
- # source://nokogiri//lib/nokogiri/xml/node.rb#1262
3973
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1340
3576
3974
  def <=>(other); end
3577
3975
 
3578
3976
  # Test to see if this Node is equal to +other+
3579
3977
  #
3580
- # source://nokogiri//lib/nokogiri/xml/node.rb#1252
3978
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1330
3581
3979
  def ==(other); end
3582
3980
 
3583
3981
  # :call-seq: [](name) → (String, nil)
@@ -3610,7 +4008,7 @@ class Nokogiri::XML::Node
3610
4008
  # doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
3611
4009
  # # => "broad"
3612
4010
  #
3613
- # source://nokogiri//lib/nokogiri/xml/node.rb#512
4011
+ # source://nokogiri//lib/nokogiri/xml/node.rb#587
3614
4012
  def [](name); end
3615
4013
 
3616
4014
  # :call-seq: []=(name, value) → value
@@ -3647,12 +4045,12 @@ class Nokogiri::XML::Node
3647
4045
  # # " <child width:size=\"broad\"></child>\n" +
3648
4046
  # # "</root>\n"
3649
4047
  #
3650
- # source://nokogiri//lib/nokogiri/xml/node.rb#550
4048
+ # source://nokogiri//lib/nokogiri/xml/node.rb#625
3651
4049
  def []=(name, value); end
3652
4050
 
3653
4051
  # Accept a visitor. This method calls "visit" on +visitor+ with self.
3654
4052
  #
3655
- # source://nokogiri//lib/nokogiri/xml/node.rb#1246
4053
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1324
3656
4054
  def accept(visitor); end
3657
4055
 
3658
4056
  # Add +node_or_tags+ as a child of this Node.
@@ -3665,7 +4063,7 @@ class Nokogiri::XML::Node
3665
4063
  #
3666
4064
  # Also see related method +<<+.
3667
4065
  #
3668
- # source://nokogiri//lib/nokogiri/xml/node.rb#148
4066
+ # source://nokogiri//lib/nokogiri/xml/node.rb#184
3669
4067
  def add_child(node_or_tags); end
3670
4068
 
3671
4069
  # :call-seq: add_class(names) → self
@@ -3709,7 +4107,7 @@ class Nokogiri::XML::Node
3709
4107
  # node # => <div></div>
3710
4108
  # node.add_class(["section", "header"]) # => <div class="section header"></div>
3711
4109
  #
3712
- # source://nokogiri//lib/nokogiri/xml/node.rb#715
4110
+ # source://nokogiri//lib/nokogiri/xml/node.rb#790
3713
4111
  def add_class(names); end
3714
4112
 
3715
4113
  def add_namespace(_arg0, _arg1); end
@@ -3727,7 +4125,7 @@ class Nokogiri::XML::Node
3727
4125
  #
3728
4126
  # @raise [ArgumentError]
3729
4127
  #
3730
- # source://nokogiri//lib/nokogiri/xml/node.rb#288
4128
+ # source://nokogiri//lib/nokogiri/xml/node.rb#324
3731
4129
  def add_next_sibling(node_or_tags); end
3732
4130
 
3733
4131
  # Insert +node_or_tags+ before this Node (as a sibling).
@@ -3742,7 +4140,7 @@ class Nokogiri::XML::Node
3742
4140
  #
3743
4141
  # @raise [ArgumentError]
3744
4142
  #
3745
- # source://nokogiri//lib/nokogiri/xml/node.rb#271
4143
+ # source://nokogiri//lib/nokogiri/xml/node.rb#307
3746
4144
  def add_previous_sibling(node_or_tags); end
3747
4145
 
3748
4146
  # Insert +node_or_tags+ after this node (as a sibling).
@@ -3754,13 +4152,13 @@ class Nokogiri::XML::Node
3754
4152
  #
3755
4153
  # Also see related method +add_next_sibling+.
3756
4154
  #
3757
- # source://nokogiri//lib/nokogiri/xml/node.rb#318
4155
+ # source://nokogiri//lib/nokogiri/xml/node.rb#354
3758
4156
  def after(node_or_tags); end
3759
4157
 
3760
4158
  # Get a list of ancestor Node for this Node. If +selector+ is given,
3761
4159
  # the ancestors must match +selector+
3762
4160
  #
3763
- # source://nokogiri//lib/nokogiri/xml/node.rb#1215
4161
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1293
3764
4162
  def ancestors(selector = T.unsafe(nil)); end
3765
4163
 
3766
4164
  # :call-seq: append_class(names) → self
@@ -3802,7 +4200,7 @@ class Nokogiri::XML::Node
3802
4200
  # node.append_class(["section", "header"]) # => <div class="section header"></div>
3803
4201
  # node.append_class(["section", "header"]) # => <div class="section header section header"></div>
3804
4202
  #
3805
- # source://nokogiri//lib/nokogiri/xml/node.rb#759
4203
+ # source://nokogiri//lib/nokogiri/xml/node.rb#834
3806
4204
  def append_class(names); end
3807
4205
 
3808
4206
  # :call-seq: [](name) → (String, nil)
@@ -3835,7 +4233,7 @@ class Nokogiri::XML::Node
3835
4233
  # doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
3836
4234
  # # => "broad"
3837
4235
  #
3838
- # source://nokogiri//lib/nokogiri/xml/node.rb#512
4236
+ # source://nokogiri//lib/nokogiri/xml/node.rb#587
3839
4237
  def attr(name); end
3840
4238
 
3841
4239
  def attribute(_arg0); end
@@ -3896,7 +4294,7 @@ class Nokogiri::XML::Node
3896
4294
  # # value = "tall"
3897
4295
  # # })}
3898
4296
  #
3899
- # source://nokogiri//lib/nokogiri/xml/node.rb#609
4297
+ # source://nokogiri//lib/nokogiri/xml/node.rb#684
3900
4298
  def attributes; end
3901
4299
 
3902
4300
  # Insert +node_or_tags+ before this node (as a sibling).
@@ -3908,19 +4306,19 @@ class Nokogiri::XML::Node
3908
4306
  #
3909
4307
  # Also see related method +add_previous_sibling+.
3910
4308
  #
3911
- # source://nokogiri//lib/nokogiri/xml/node.rb#304
4309
+ # source://nokogiri//lib/nokogiri/xml/node.rb#340
3912
4310
  def before(node_or_tags); end
3913
4311
 
3914
4312
  def blank?; end
3915
4313
 
3916
- # source://nokogiri//lib/nokogiri/xml/node.rb#1414
4314
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1492
3917
4315
  def canonicalize(mode = T.unsafe(nil), inclusive_namespaces = T.unsafe(nil), with_comments = T.unsafe(nil)); end
3918
4316
 
3919
4317
  # Returns true if this is a CDATA
3920
4318
  #
3921
4319
  # @return [Boolean]
3922
4320
  #
3923
- # source://nokogiri//lib/nokogiri/xml/node.rb#1136
4321
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1214
3924
4322
  def cdata?; end
3925
4323
 
3926
4324
  def child; end
@@ -3933,7 +4331,7 @@ class Nokogiri::XML::Node
3933
4331
  #
3934
4332
  # Also see related method +inner_html=+
3935
4333
  #
3936
- # source://nokogiri//lib/nokogiri/xml/node.rb#349
4334
+ # source://nokogiri//lib/nokogiri/xml/node.rb#385
3937
4335
  def children=(node_or_tags); end
3938
4336
 
3939
4337
  # :call-seq: classes() → Array<String>
@@ -3955,24 +4353,77 @@ class Nokogiri::XML::Node
3955
4353
  # node # => <div class="section title header"></div>
3956
4354
  # node.classes # => ["section", "title", "header"]
3957
4355
  #
3958
- # source://nokogiri//lib/nokogiri/xml/node.rb#669
4356
+ # source://nokogiri//lib/nokogiri/xml/node.rb#744
3959
4357
  def classes; end
3960
4358
 
3961
- def clone(*_arg0); end
4359
+ # :call-seq:
4360
+ # clone → Nokogiri::XML::Node
4361
+ # clone(level) → Nokogiri::XML::Node
4362
+ # clone(level, new_parent_doc) → Nokogiri::XML::Node
4363
+ #
4364
+ # Clone this node.
4365
+ #
4366
+ # [Parameters]
4367
+ # - +level+ (optional Integer). 0 is a shallow copy, 1 (the default) is a deep copy.
4368
+ # - +new_parent_doc+
4369
+ # The new node's parent Document. Defaults to the the Document of the current node.
4370
+ # [Returns] The new Nokogiri::XML::Node
4371
+ #
4372
+ # source://nokogiri//lib/nokogiri/xml/node.rb#162
4373
+ def clone(level = T.unsafe(nil), new_parent_doc = T.unsafe(nil)); end
3962
4374
 
3963
4375
  # Returns true if this is a Comment
3964
4376
  #
3965
4377
  # @return [Boolean]
3966
4378
  #
3967
- # source://nokogiri//lib/nokogiri/xml/node.rb#1131
4379
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1209
3968
4380
  def comment?; end
3969
4381
 
3970
4382
  def content; end
3971
4383
 
3972
- # Set the Node's content to a Text node containing +string+. The string gets XML escaped, not
3973
- # interpreted as markup.
4384
+ # call-seq:
4385
+ # content=(input)
4386
+ #
4387
+ # Set the content of this node to +input+.
4388
+ #
4389
+ # [Parameters]
4390
+ # - +input+ (String) The new content for this node. Input is considered to be raw content, and
4391
+ # so will be entity-escaped in the final DOM string.
4392
+ #
4393
+ # [Example]
4394
+ # Note how entities are handled:
4395
+ #
4396
+ # doc = Nokogiri::HTML::Document.parse(<<~HTML)
4397
+ # <html>
4398
+ # <body>
4399
+ # <div id="first">asdf</div>
4400
+ # <div id="second">asdf</div>
4401
+ # HTML
4402
+ #
4403
+ # text_node = doc.at_css("div#first").children.first
4404
+ # div_node = doc.at_css("div#second")
4405
+ #
4406
+ # value = "You &amp; Me"
4407
+ #
4408
+ # text_node.content = value
4409
+ # div_node.content = value
4410
+ #
4411
+ # doc.css("div").to_html
4412
+ # # => "<div id=\"first\">You &amp;amp; Me</div>
4413
+ # # <div id=\"second\">You &amp;amp; Me</div>"
4414
+ #
4415
+ # For content that is already entity-escaped, use CGI::unescapeHTML to decode it:
4416
+ #
4417
+ # text_node.content = CGI::unescapeHTML(value)
4418
+ # div_node.content = CGI::unescapeHTML(value)
4419
+ #
4420
+ # doc.css("div").to_html
4421
+ # # => "<div id=\"first\">You &amp; Me</div>
4422
+ # # <div id=\"second\">You &amp; Me</div>"
3974
4423
  #
3975
- # source://nokogiri//lib/nokogiri/xml/node.rb#411
4424
+ # See also: #native_content=
4425
+ #
4426
+ # source://nokogiri//lib/nokogiri/xml/node.rb#487
3976
4427
  def content=(string); end
3977
4428
 
3978
4429
  def create_external_subset(_arg0, _arg1, _arg2); end
@@ -3980,9 +4431,11 @@ class Nokogiri::XML::Node
3980
4431
 
3981
4432
  # Get the path to this node as a CSS expression
3982
4433
  #
3983
- # source://nokogiri//lib/nokogiri/xml/node.rb#1206
4434
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1284
3984
4435
  def css_path; end
3985
4436
 
4437
+ def data_ptr?; end
4438
+
3986
4439
  # :call-seq: deconstruct_keys(array_of_names) → Hash
3987
4440
  #
3988
4441
  # Returns a hash describing the Node, to use in pattern matching.
@@ -4032,12 +4485,12 @@ class Nokogiri::XML::Node
4032
4485
  #
4033
4486
  # Since v1.14.0
4034
4487
  #
4035
- # source://nokogiri//lib/nokogiri/xml/node.rb#1475
4488
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1553
4036
4489
  def deconstruct_keys(keys); end
4037
4490
 
4038
4491
  # Decorate this node with the decorators set up in this node's Document
4039
4492
  #
4040
- # source://nokogiri//lib/nokogiri/xml/node.rb#132
4493
+ # source://nokogiri//lib/nokogiri/xml/node.rb#168
4041
4494
  def decorate!; end
4042
4495
 
4043
4496
  # Adds a default namespace supplied as a string +url+ href, to self.
@@ -4046,18 +4499,18 @@ class Nokogiri::XML::Node
4046
4499
  # now show up in #attributes, but when this node is serialized to XML an
4047
4500
  # "xmlns" attribute will appear. See also #namespace and #namespace=
4048
4501
  #
4049
- # source://nokogiri//lib/nokogiri/xml/node.rb#427
4502
+ # source://nokogiri//lib/nokogiri/xml/node.rb#503
4050
4503
  def default_namespace=(url); end
4051
4504
 
4052
4505
  # Remove the attribute named +name+
4053
4506
  #
4054
- # source://nokogiri//lib/nokogiri/xml/node.rb#643
4507
+ # source://nokogiri//lib/nokogiri/xml/node.rb#718
4055
4508
  def delete(name); end
4056
4509
 
4057
4510
  # Fetch the Nokogiri::HTML4::ElementDescription for this node. Returns
4058
4511
  # nil on XML documents and on unknown tags.
4059
4512
  #
4060
- # source://nokogiri//lib/nokogiri/xml/node.rb#1173
4513
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1251
4061
4514
  def description; end
4062
4515
 
4063
4516
  # Do xinclude substitution on the subtree below node. If given a block, a
@@ -4066,7 +4519,7 @@ class Nokogiri::XML::Node
4066
4519
  #
4067
4520
  # @yield [options]
4068
4521
  #
4069
- # source://nokogiri//lib/nokogiri/xml/node.rb#454
4522
+ # source://nokogiri//lib/nokogiri/xml/node.rb#530
4070
4523
  def do_xinclude(options = T.unsafe(nil)); end
4071
4524
 
4072
4525
  def document; end
@@ -4075,28 +4528,42 @@ class Nokogiri::XML::Node
4075
4528
  #
4076
4529
  # @return [Boolean]
4077
4530
  #
4078
- # source://nokogiri//lib/nokogiri/xml/node.rb#1151
4531
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1229
4079
4532
  def document?; end
4080
4533
 
4081
- def dup(*_arg0); end
4534
+ # :call-seq:
4535
+ # dup → Nokogiri::XML::Node
4536
+ # dup(level) → Nokogiri::XML::Node
4537
+ # dup(level, new_parent_doc) → Nokogiri::XML::Node
4538
+ #
4539
+ # Duplicate this node.
4540
+ #
4541
+ # [Parameters]
4542
+ # - +level+ (optional Integer). 0 is a shallow copy, 1 (the default) is a deep copy.
4543
+ # - +new_parent_doc+ (optional Nokogiri::XML::Document)
4544
+ # The new node's parent Document. Defaults to the the Document of the current node.
4545
+ # [Returns] The new Nokogiri::XML::Node
4546
+ #
4547
+ # source://nokogiri//lib/nokogiri/xml/node.rb#144
4548
+ def dup(level = T.unsafe(nil), new_parent_doc = T.unsafe(nil)); end
4082
4549
 
4083
4550
  # Iterate over each attribute name and value pair for this Node.
4084
4551
  #
4085
- # source://nokogiri//lib/nokogiri/xml/node.rb#635
4552
+ # source://nokogiri//lib/nokogiri/xml/node.rb#710
4086
4553
  def each; end
4087
4554
 
4088
4555
  # Returns true if this is an Element node
4089
4556
  #
4090
4557
  # @return [Boolean]
4091
4558
  #
4092
- # source://nokogiri//lib/nokogiri/xml/node.rb#1187
4559
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1265
4093
4560
  def elem?; end
4094
4561
 
4095
4562
  # Returns true if this is an Element node
4096
4563
  #
4097
4564
  # @return [Boolean]
4098
4565
  #
4099
- # source://nokogiri//lib/nokogiri/xml/node.rb#1187
4566
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1265
4100
4567
  def element?; end
4101
4568
 
4102
4569
  def element_children; end
@@ -4115,7 +4582,7 @@ class Nokogiri::XML::Node
4115
4582
  #
4116
4583
  # @return [Boolean]
4117
4584
  #
4118
- # source://nokogiri//lib/nokogiri/xml/node.rb#1166
4585
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1244
4119
4586
  def fragment?; end
4120
4587
 
4121
4588
  # :call-seq: [](name) → (String, nil)
@@ -4148,7 +4615,7 @@ class Nokogiri::XML::Node
4148
4615
  # doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
4149
4616
  # # => "broad"
4150
4617
  #
4151
- # source://nokogiri//lib/nokogiri/xml/node.rb#512
4618
+ # source://nokogiri//lib/nokogiri/xml/node.rb#587
4152
4619
  def get_attribute(name); end
4153
4620
 
4154
4621
  def has_attribute?(_arg0); end
@@ -4157,7 +4624,7 @@ class Nokogiri::XML::Node
4157
4624
  #
4158
4625
  # @return [Boolean]
4159
4626
  #
4160
- # source://nokogiri//lib/nokogiri/xml/node.rb#1146
4627
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1224
4161
4628
  def html?; end
4162
4629
 
4163
4630
  # Get the inner_html for this node's Node#children
@@ -4180,7 +4647,7 @@ class Nokogiri::XML::Node
4180
4647
  #
4181
4648
  # Also see related method +children=+
4182
4649
  #
4183
- # source://nokogiri//lib/nokogiri/xml/node.rb#338
4650
+ # source://nokogiri//lib/nokogiri/xml/node.rb#374
4184
4651
  def inner_html=(node_or_tags); end
4185
4652
 
4186
4653
  # :section:
@@ -4191,7 +4658,7 @@ class Nokogiri::XML::Node
4191
4658
 
4192
4659
  # Get the attribute names for this Node.
4193
4660
  #
4194
- # source://nokogiri//lib/nokogiri/xml/node.rb#629
4661
+ # source://nokogiri//lib/nokogiri/xml/node.rb#704
4195
4662
  def keys; end
4196
4663
 
4197
4664
  # :call-seq:
@@ -4245,7 +4712,7 @@ class Nokogiri::XML::Node
4245
4712
  #
4246
4713
  # Since v1.11.0
4247
4714
  #
4248
- # source://nokogiri//lib/nokogiri/xml/node.rb#892
4715
+ # source://nokogiri//lib/nokogiri/xml/node.rb#967
4249
4716
  def kwattr_add(attribute_name, keywords); end
4250
4717
 
4251
4718
  # :call-seq:
@@ -4294,7 +4761,7 @@ class Nokogiri::XML::Node
4294
4761
  #
4295
4762
  # Since v1.11.0
4296
4763
  #
4297
- # source://nokogiri//lib/nokogiri/xml/node.rb#945
4764
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1020
4298
4765
  def kwattr_append(attribute_name, keywords); end
4299
4766
 
4300
4767
  # :call-seq:
@@ -4333,7 +4800,7 @@ class Nokogiri::XML::Node
4333
4800
  #
4334
4801
  # Since v1.11.0
4335
4802
  #
4336
- # source://nokogiri//lib/nokogiri/xml/node.rb#988
4803
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1063
4337
4804
  def kwattr_remove(attribute_name, keywords); end
4338
4805
 
4339
4806
  # :call-seq:
@@ -4362,7 +4829,7 @@ class Nokogiri::XML::Node
4362
4829
  #
4363
4830
  # Since v1.11.0
4364
4831
  #
4365
- # source://nokogiri//lib/nokogiri/xml/node.rb#838
4832
+ # source://nokogiri//lib/nokogiri/xml/node.rb#913
4366
4833
  def kwattr_values(attribute_name); end
4367
4834
 
4368
4835
  def lang; end
@@ -4375,7 +4842,7 @@ class Nokogiri::XML::Node
4375
4842
  #
4376
4843
  # @return [Boolean]
4377
4844
  #
4378
- # source://nokogiri//lib/nokogiri/xml/node.rb#1015
4845
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1090
4379
4846
  def matches?(selector); end
4380
4847
 
4381
4848
  def name; end
@@ -4388,7 +4855,7 @@ class Nokogiri::XML::Node
4388
4855
  # for this node. You probably want #default_namespace= instead, or perhaps
4389
4856
  # #add_namespace_definition with a nil prefix argument.
4390
4857
  #
4391
- # source://nokogiri//lib/nokogiri/xml/node.rb#437
4858
+ # source://nokogiri//lib/nokogiri/xml/node.rb#513
4392
4859
  def namespace=(ns); end
4393
4860
 
4394
4861
  def namespace_definitions; end
@@ -4431,7 +4898,7 @@ class Nokogiri::XML::Node
4431
4898
  # # "xmlns"=>"http://example.com/root",
4432
4899
  # # "xmlns:in_scope"=>"http://example.com/in_scope"}
4433
4900
  #
4434
- # source://nokogiri//lib/nokogiri/xml/node.rb#1122
4901
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1200
4435
4902
  def namespaces; end
4436
4903
 
4437
4904
  def native_content=(_arg0); end
@@ -4449,7 +4916,7 @@ class Nokogiri::XML::Node
4449
4916
  #
4450
4917
  # @raise [ArgumentError]
4451
4918
  #
4452
- # source://nokogiri//lib/nokogiri/xml/node.rb#288
4919
+ # source://nokogiri//lib/nokogiri/xml/node.rb#324
4453
4920
  def next=(node_or_tags); end
4454
4921
 
4455
4922
  def next_element; end
@@ -4461,7 +4928,7 @@ class Nokogiri::XML::Node
4461
4928
 
4462
4929
  # Set the parent Node for this Node
4463
4930
  #
4464
- # source://nokogiri//lib/nokogiri/xml/node.rb#417
4931
+ # source://nokogiri//lib/nokogiri/xml/node.rb#493
4465
4932
  def parent=(parent_node); end
4466
4933
 
4467
4934
  # Parse +string_or_io+ as a document fragment within the context of
@@ -4470,7 +4937,7 @@ class Nokogiri::XML::Node
4470
4937
  #
4471
4938
  # @yield [options]
4472
4939
  #
4473
- # source://nokogiri//lib/nokogiri/xml/node.rb#1030
4940
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1105
4474
4941
  def parse(string_or_io, options = T.unsafe(nil)); end
4475
4942
 
4476
4943
  def path; end
@@ -4486,7 +4953,7 @@ class Nokogiri::XML::Node
4486
4953
  #
4487
4954
  # Also see related method +add_child+.
4488
4955
  #
4489
- # source://nokogiri//lib/nokogiri/xml/node.rb#168
4956
+ # source://nokogiri//lib/nokogiri/xml/node.rb#204
4490
4957
  def prepend_child(node_or_tags); end
4491
4958
 
4492
4959
  def previous; end
@@ -4503,7 +4970,7 @@ class Nokogiri::XML::Node
4503
4970
  #
4504
4971
  # @raise [ArgumentError]
4505
4972
  #
4506
- # source://nokogiri//lib/nokogiri/xml/node.rb#271
4973
+ # source://nokogiri//lib/nokogiri/xml/node.rb#307
4507
4974
  def previous=(node_or_tags); end
4508
4975
 
4509
4976
  def previous_element; end
@@ -4513,21 +4980,21 @@ class Nokogiri::XML::Node
4513
4980
  #
4514
4981
  # @return [Boolean]
4515
4982
  #
4516
- # source://nokogiri//lib/nokogiri/xml/node.rb#1156
4983
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1234
4517
4984
  def processing_instruction?; end
4518
4985
 
4519
4986
  # Is this a read only node?
4520
4987
  #
4521
4988
  # @return [Boolean]
4522
4989
  #
4523
- # source://nokogiri//lib/nokogiri/xml/node.rb#1181
4990
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1259
4524
4991
  def read_only?; end
4525
4992
 
4526
4993
  def remove; end
4527
4994
 
4528
4995
  # Remove the attribute named +name+
4529
4996
  #
4530
- # source://nokogiri//lib/nokogiri/xml/node.rb#643
4997
+ # source://nokogiri//lib/nokogiri/xml/node.rb#718
4531
4998
  def remove_attribute(name); end
4532
4999
 
4533
5000
  # :call-seq:
@@ -4576,7 +5043,7 @@ class Nokogiri::XML::Node
4576
5043
  # node # => <div class="section header float"></div>
4577
5044
  # node.remove_class(["section", "float"]) # => <div class="header"></div>
4578
5045
  #
4579
- # source://nokogiri//lib/nokogiri/xml/node.rb#809
5046
+ # source://nokogiri//lib/nokogiri/xml/node.rb#884
4580
5047
  def remove_class(names = T.unsafe(nil)); end
4581
5048
 
4582
5049
  # Replace this Node with +node_or_tags+.
@@ -4589,7 +5056,7 @@ class Nokogiri::XML::Node
4589
5056
  #
4590
5057
  # Also see related method +swap+.
4591
5058
  #
4592
- # source://nokogiri//lib/nokogiri/xml/node.rb#369
5059
+ # source://nokogiri//lib/nokogiri/xml/node.rb#405
4593
5060
  def replace(node_or_tags); end
4594
5061
 
4595
5062
  # Serialize Node using +options+. Save options can also be set using a block.
@@ -4604,7 +5071,7 @@ class Nokogiri::XML::Node
4604
5071
  # config.format.as_xml
4605
5072
  # end
4606
5073
  #
4607
- # source://nokogiri//lib/nokogiri/xml/node.rb#1286
5074
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1364
4608
5075
  def serialize(*args, &block); end
4609
5076
 
4610
5077
  # :call-seq: []=(name, value) → value
@@ -4641,7 +5108,7 @@ class Nokogiri::XML::Node
4641
5108
  # # " <child width:size=\"broad\"></child>\n" +
4642
5109
  # # "</root>\n"
4643
5110
  #
4644
- # source://nokogiri//lib/nokogiri/xml/node.rb#550
5111
+ # source://nokogiri//lib/nokogiri/xml/node.rb#625
4645
5112
  def set_attribute(name, value); end
4646
5113
 
4647
5114
  # Swap this Node for +node_or_tags+
@@ -4653,7 +5120,7 @@ class Nokogiri::XML::Node
4653
5120
  #
4654
5121
  # Also see related method +replace+.
4655
5122
  #
4656
- # source://nokogiri//lib/nokogiri/xml/node.rb#403
5123
+ # source://nokogiri//lib/nokogiri/xml/node.rb#439
4657
5124
  def swap(node_or_tags); end
4658
5125
 
4659
5126
  def text; end
@@ -4662,7 +5129,7 @@ class Nokogiri::XML::Node
4662
5129
  #
4663
5130
  # @return [Boolean]
4664
5131
  #
4665
- # source://nokogiri//lib/nokogiri/xml/node.rb#1161
5132
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1239
4666
5133
  def text?; end
4667
5134
 
4668
5135
  # Serialize this Node to HTML
@@ -4672,13 +5139,13 @@ class Nokogiri::XML::Node
4672
5139
  # See Node#write_to for a list of +options+. For formatted output,
4673
5140
  # use Node#to_xhtml instead.
4674
5141
  #
4675
- # source://nokogiri//lib/nokogiri/xml/node.rb#1313
5142
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1391
4676
5143
  def to_html(options = T.unsafe(nil)); end
4677
5144
 
4678
5145
  # Turn this node in to a string. If the document is HTML, this method
4679
5146
  # returns html. If the document is XML, this method returns XML.
4680
5147
  #
4681
- # source://nokogiri//lib/nokogiri/xml/node.rb#1196
5148
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1274
4682
5149
  def to_s; end
4683
5150
 
4684
5151
  def to_str; end
@@ -4688,7 +5155,7 @@ class Nokogiri::XML::Node
4688
5155
  #
4689
5156
  # See Node#write_to for a list of +options+
4690
5157
  #
4691
- # source://nokogiri//lib/nokogiri/xml/node.rb#1334
5158
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1412
4692
5159
  def to_xhtml(options = T.unsafe(nil)); end
4693
5160
 
4694
5161
  # Serialize this Node to XML using +options+
@@ -4696,7 +5163,7 @@ class Nokogiri::XML::Node
4696
5163
  #
4697
5164
  # See Node#write_to for a list of +options+
4698
5165
  #
4699
- # source://nokogiri//lib/nokogiri/xml/node.rb#1323
5166
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1401
4700
5167
  def to_xml(options = T.unsafe(nil)); end
4701
5168
 
4702
5169
  # Yields self and all children to +block+ recursively.
@@ -4704,7 +5171,7 @@ class Nokogiri::XML::Node
4704
5171
  # @yield [_self]
4705
5172
  # @yieldparam _self [Nokogiri::XML::Node] the object that the method was called on
4706
5173
  #
4707
- # source://nokogiri//lib/nokogiri/xml/node.rb#1239
5174
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1317
4708
5175
  def traverse(&block); end
4709
5176
 
4710
5177
  def type; end
@@ -4714,12 +5181,12 @@ class Nokogiri::XML::Node
4714
5181
  #
4715
5182
  # @return [Boolean]
4716
5183
  #
4717
- # source://nokogiri//lib/nokogiri/xml/node.rb#623
5184
+ # source://nokogiri//lib/nokogiri/xml/node.rb#698
4718
5185
  def value?(value); end
4719
5186
 
4720
5187
  # Get the attribute values for this Node.
4721
5188
  #
4722
- # source://nokogiri//lib/nokogiri/xml/node.rb#617
5189
+ # source://nokogiri//lib/nokogiri/xml/node.rb#692
4723
5190
  def values; end
4724
5191
 
4725
5192
  # :call-seq:
@@ -4766,14 +5233,14 @@ class Nokogiri::XML::Node
4766
5233
  # # <div><a>asdf</a></div>
4767
5234
  # # </body></html>
4768
5235
  #
4769
- # source://nokogiri//lib/nokogiri/xml/node.rb#223
5236
+ # source://nokogiri//lib/nokogiri/xml/node.rb#259
4770
5237
  def wrap(node_or_tags); end
4771
5238
 
4772
5239
  # Write Node as HTML to +io+ with +options+
4773
5240
  #
4774
5241
  # See Node#write_to for a list of +options+
4775
5242
  #
4776
- # source://nokogiri//lib/nokogiri/xml/node.rb#1391
5243
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1469
4777
5244
  def write_html_to(io, options = T.unsafe(nil)); end
4778
5245
 
4779
5246
  # :call-seq:
@@ -4807,7 +5274,7 @@ class Nokogiri::XML::Node
4807
5274
  #
4808
5275
  # See Node#write_to for a list of +options+
4809
5276
  #
4810
- # source://nokogiri//lib/nokogiri/xml/node.rb#1399
5277
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1477
4811
5278
  def write_xhtml_to(io, options = T.unsafe(nil)); end
4812
5279
 
4813
5280
  # Write Node as XML to +io+ with +options+
@@ -4816,23 +5283,25 @@ class Nokogiri::XML::Node
4816
5283
  #
4817
5284
  # See Node#write_to for a list of options
4818
5285
  #
4819
- # source://nokogiri//lib/nokogiri/xml/node.rb#1409
5286
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1487
4820
5287
  def write_xml_to(io, options = T.unsafe(nil)); end
4821
5288
 
4822
5289
  # Returns true if this is an XML::Document node
4823
5290
  #
4824
5291
  # @return [Boolean]
4825
5292
  #
4826
- # source://nokogiri//lib/nokogiri/xml/node.rb#1141
5293
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1219
4827
5294
  def xml?; end
4828
5295
 
4829
5296
  protected
4830
5297
 
4831
5298
  # @raise [ArgumentError]
4832
5299
  #
4833
- # source://nokogiri//lib/nokogiri/xml/node.rb#1489
5300
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1567
4834
5301
  def coerce(data); end
4835
5302
 
5303
+ def initialize_copy_with_args(_arg0, _arg1, _arg2); end
5304
+
4836
5305
  private
4837
5306
 
4838
5307
  def add_child_node(_arg0); end
@@ -4843,7 +5312,7 @@ class Nokogiri::XML::Node
4843
5312
  def add_next_sibling_node(_arg0); end
4844
5313
  def add_previous_sibling_node(_arg0); end
4845
5314
 
4846
- # source://nokogiri//lib/nokogiri/xml/node.rb#1523
5315
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1601
4847
5316
  def add_sibling(next_or_previous, node_or_tags); end
4848
5317
 
4849
5318
  def compare(_arg0); end
@@ -4852,10 +5321,10 @@ class Nokogiri::XML::Node
4852
5321
  def html_standard_serialize(_arg0); end
4853
5322
  def in_context(_arg0, _arg1); end
4854
5323
 
4855
- # source://nokogiri//lib/nokogiri/xml/node.rb#1562
5324
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1633
4856
5325
  def inspect_attributes; end
4857
5326
 
4858
- # source://nokogiri//lib/nokogiri/xml/node.rb#1511
5327
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1589
4859
5328
  def keywordify(keywords); end
4860
5329
 
4861
5330
  def native_write_to(_arg0, _arg1, _arg2, _arg3); end
@@ -4865,10 +5334,10 @@ class Nokogiri::XML::Node
4865
5334
  def set(_arg0, _arg1); end
4866
5335
  def set_namespace(_arg0); end
4867
5336
 
4868
- # source://nokogiri//lib/nokogiri/xml/node.rb#1548
5337
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1623
4869
5338
  def to_format(save_option, options); end
4870
5339
 
4871
- # source://nokogiri//lib/nokogiri/xml/node.rb#1555
5340
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1628
4872
5341
  def write_format_to(save_option, io, options); end
4873
5342
 
4874
5343
  class << self
@@ -4896,10 +5365,10 @@ Nokogiri::XML::Node::CDATA_SECTION_NODE = T.let(T.unsafe(nil), Integer)
4896
5365
  # source://nokogiri//lib/nokogiri/xml/node.rb#77
4897
5366
  Nokogiri::XML::Node::COMMENT_NODE = T.let(T.unsafe(nil), Integer)
4898
5367
 
4899
- # source://nokogiri//lib/nokogiri/xml/node.rb#1422
5368
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1500
4900
5369
  Nokogiri::XML::Node::DECONSTRUCT_KEYS = T.let(T.unsafe(nil), Array)
4901
5370
 
4902
- # source://nokogiri//lib/nokogiri/xml/node.rb#1423
5371
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1501
4903
5372
  Nokogiri::XML::Node::DECONSTRUCT_METHODS = T.let(T.unsafe(nil), Hash)
4904
5373
 
4905
5374
  # DOCB document node type
@@ -4957,7 +5426,7 @@ Nokogiri::XML::Node::ENTITY_REF_NODE = T.let(T.unsafe(nil), Integer)
4957
5426
  # source://nokogiri//lib/nokogiri/xml/node.rb#87
4958
5427
  Nokogiri::XML::Node::HTML_DOCUMENT_NODE = T.let(T.unsafe(nil), Integer)
4959
5428
 
4960
- # source://nokogiri//lib/nokogiri/xml/node.rb#1566
5429
+ # source://nokogiri//lib/nokogiri/xml/node.rb#1637
4961
5430
  Nokogiri::XML::Node::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
4962
5431
 
4963
5432
  # Namespace declaration type
@@ -5116,9 +5585,6 @@ Nokogiri::XML::Node::SaveOptions::NO_XHTML = T.let(T.unsafe(nil), Integer)
5116
5585
  # source://nokogiri//lib/nokogiri/xml/node.rb#67
5117
5586
  Nokogiri::XML::Node::TEXT_NODE = T.let(T.unsafe(nil), Integer)
5118
5587
 
5119
- # source://nokogiri//lib/nokogiri/xml/node.rb#1545
5120
- Nokogiri::XML::Node::USING_LIBXML_WITH_BROKEN_SERIALIZATION = T.let(T.unsafe(nil), FalseClass)
5121
-
5122
5588
  # XInclude end type
5123
5589
  #
5124
5590
  # source://nokogiri//lib/nokogiri/xml/node.rb#101
@@ -5129,11 +5595,15 @@ Nokogiri::XML::Node::XINCLUDE_END = T.let(T.unsafe(nil), Integer)
5129
5595
  # source://nokogiri//lib/nokogiri/xml/node.rb#99
5130
5596
  Nokogiri::XML::Node::XINCLUDE_START = T.let(T.unsafe(nil), Integer)
5131
5597
 
5132
- # A NodeSet contains a list of Nokogiri::XML::Node objects. Typically
5133
- # a NodeSet is return as a result of searching a Document via
5134
- # Nokogiri::XML::Searchable#css or Nokogiri::XML::Searchable#xpath
5598
+ # A NodeSet is an Enumerable that contains a list of Nokogiri::XML::Node objects.
5135
5599
  #
5136
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#10
5600
+ # Typically a NodeSet is returned as a result of searching a Document via
5601
+ # Nokogiri::XML::Searchable#css or Nokogiri::XML::Searchable#xpath.
5602
+ #
5603
+ # Note that the `#dup` and `#clone` methods perform shallow copies; these methods do not copy
5604
+ # the Nodes contained in the NodeSet (similar to how Array and other Enumerable classes work).
5605
+ #
5606
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#14
5137
5607
  class Nokogiri::XML::NodeSet
5138
5608
  include ::Nokogiri::XML::Searchable
5139
5609
  include ::Enumerable
@@ -5144,7 +5614,7 @@ class Nokogiri::XML::NodeSet
5144
5614
  # @yield [_self]
5145
5615
  # @yieldparam _self [Nokogiri::XML::NodeSet] the object that the method was called on
5146
5616
  #
5147
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#20
5617
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#22
5148
5618
  def initialize(document, list = T.unsafe(nil)); end
5149
5619
 
5150
5620
  # call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
@@ -5158,7 +5628,7 @@ class Nokogiri::XML::NodeSet
5158
5628
  #
5159
5629
  # node_set.at(3) # same as node_set[3]
5160
5630
  #
5161
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#119
5631
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#121
5162
5632
  def %(*args); end
5163
5633
 
5164
5634
  def &(_arg0); end
@@ -5170,7 +5640,7 @@ class Nokogiri::XML::NodeSet
5170
5640
  # of elements and if each element is equal to the corresponding
5171
5641
  # element in the other NodeSet
5172
5642
  #
5173
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#393
5643
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#395
5174
5644
  def ==(other); end
5175
5645
 
5176
5646
  def [](*_arg0); end
@@ -5180,12 +5650,12 @@ class Nokogiri::XML::NodeSet
5180
5650
  #
5181
5651
  # See Nokogiri::XML::Node#add_class for more information.
5182
5652
  #
5183
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#139
5653
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#141
5184
5654
  def add_class(name); end
5185
5655
 
5186
5656
  # Insert +datum+ after the last Node in this NodeSet
5187
5657
  #
5188
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#69
5658
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#71
5189
5659
  def after(datum); end
5190
5660
 
5191
5661
  # Append the class attribute +name+ to all Node objects in the
@@ -5193,7 +5663,7 @@ class Nokogiri::XML::NodeSet
5193
5663
  #
5194
5664
  # See Nokogiri::XML::Node#append_class for more information.
5195
5665
  #
5196
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#151
5666
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#153
5197
5667
  def append_class(name); end
5198
5668
 
5199
5669
  # call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
@@ -5207,7 +5677,7 @@ class Nokogiri::XML::NodeSet
5207
5677
  #
5208
5678
  # node_set.at(3) # same as node_set[3]
5209
5679
  #
5210
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#119
5680
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#121
5211
5681
  def at(*args); end
5212
5682
 
5213
5683
  # Set attributes on each Node in the NodeSet, or get an
@@ -5242,7 +5712,7 @@ class Nokogiri::XML::NodeSet
5242
5712
  #
5243
5713
  # node_set.attr("class") { |node| node.name }
5244
5714
  #
5245
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#203
5715
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#205
5246
5716
  def attr(key, value = T.unsafe(nil), &block); end
5247
5717
 
5248
5718
  # Set attributes on each Node in the NodeSet, or get an
@@ -5277,22 +5747,20 @@ class Nokogiri::XML::NodeSet
5277
5747
  #
5278
5748
  # node_set.attr("class") { |node| node.name }
5279
5749
  #
5280
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#203
5750
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#205
5281
5751
  def attribute(key, value = T.unsafe(nil), &block); end
5282
5752
 
5283
5753
  # Insert +datum+ before the first Node in this NodeSet
5284
5754
  #
5285
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#63
5755
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#65
5286
5756
  def before(datum); end
5287
5757
 
5288
5758
  # Returns a new NodeSet containing all the children of all the nodes in
5289
5759
  # the NodeSet
5290
5760
  #
5291
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#406
5761
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#408
5292
5762
  def children; end
5293
5763
 
5294
- def clone; end
5295
-
5296
5764
  # call-seq: css *rules, [namespace-bindings, custom-pseudo-class]
5297
5765
  #
5298
5766
  # Search this node set for CSS +rules+. +rules+ must be one or more CSS
@@ -5300,7 +5768,7 @@ class Nokogiri::XML::NodeSet
5300
5768
  #
5301
5769
  # For more information see Nokogiri::XML::Searchable#css
5302
5770
  #
5303
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#83
5771
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#85
5304
5772
  def css(*args); end
5305
5773
 
5306
5774
  # :call-seq: deconstruct() → Array
@@ -5309,55 +5777,53 @@ class Nokogiri::XML::NodeSet
5309
5777
  #
5310
5778
  # Since v1.14.0
5311
5779
  #
5312
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#440
5780
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#442
5313
5781
  def deconstruct; end
5314
5782
 
5315
5783
  def delete(_arg0); end
5316
5784
 
5317
5785
  # The Document this NodeSet is associated with
5318
5786
  #
5319
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#15
5787
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#19
5320
5788
  def document; end
5321
5789
 
5322
5790
  # The Document this NodeSet is associated with
5323
5791
  #
5324
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#15
5792
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#19
5325
5793
  def document=(_arg0); end
5326
5794
 
5327
- def dup; end
5328
-
5329
5795
  # Iterate over each node, yielding to +block+
5330
5796
  #
5331
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#231
5797
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#233
5332
5798
  def each; end
5333
5799
 
5334
5800
  # Is this NodeSet empty?
5335
5801
  #
5336
5802
  # @return [Boolean]
5337
5803
  #
5338
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#45
5804
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#47
5339
5805
  def empty?; end
5340
5806
 
5341
5807
  # Filter this list for nodes that match +expr+
5342
5808
  #
5343
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#130
5809
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#132
5344
5810
  def filter(expr); end
5345
5811
 
5346
5812
  # Get the first element of the NodeSet.
5347
5813
  #
5348
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#29
5814
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#31
5349
5815
  def first(n = T.unsafe(nil)); end
5350
5816
 
5351
5817
  def include?(_arg0); end
5352
5818
 
5353
5819
  # Returns the index of the first node in self that is == to +node+ or meets the given block. Returns nil if no match is found.
5354
5820
  #
5355
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#51
5821
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#53
5356
5822
  def index(node = T.unsafe(nil)); end
5357
5823
 
5358
5824
  # Get the inner html of all contained Node objects
5359
5825
  #
5360
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#260
5826
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#262
5361
5827
  def inner_html(*args); end
5362
5828
 
5363
5829
  # Get the inner text of all contained Node objects
@@ -5373,17 +5839,17 @@ class Nokogiri::XML::NodeSet
5373
5839
  #
5374
5840
  # See Nokogiri::XML::Node#content for more information.
5375
5841
  #
5376
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#253
5842
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#255
5377
5843
  def inner_text; end
5378
5844
 
5379
- # Return a nicely formated string representation
5845
+ # Return a nicely formatted string representation
5380
5846
  #
5381
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#427
5847
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#429
5382
5848
  def inspect; end
5383
5849
 
5384
5850
  # Get the last element of the NodeSet.
5385
5851
  #
5386
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#39
5852
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#41
5387
5853
  def last; end
5388
5854
 
5389
5855
  def length; end
@@ -5391,7 +5857,7 @@ class Nokogiri::XML::NodeSet
5391
5857
  # Removes the last element from set and returns it, or +nil+ if
5392
5858
  # the set is empty
5393
5859
  #
5394
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#374
5860
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#376
5395
5861
  def pop; end
5396
5862
 
5397
5863
  def push(_arg0); end
@@ -5399,12 +5865,12 @@ class Nokogiri::XML::NodeSet
5399
5865
 
5400
5866
  # Remove the attributed named +name+ from all Node objects in the NodeSet
5401
5867
  #
5402
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#223
5868
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#225
5403
5869
  def remove_attr(name); end
5404
5870
 
5405
5871
  # Remove the attributed named +name+ from all Node objects in the NodeSet
5406
5872
  #
5407
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#223
5873
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#225
5408
5874
  def remove_attribute(name); end
5409
5875
 
5410
5876
  # Remove the class attribute +name+ from all Node objects in the
@@ -5412,13 +5878,13 @@ class Nokogiri::XML::NodeSet
5412
5878
  #
5413
5879
  # See Nokogiri::XML::Node#remove_class for more information.
5414
5880
  #
5415
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#163
5881
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#165
5416
5882
  def remove_class(name = T.unsafe(nil)); end
5417
5883
 
5418
5884
  # Returns a new NodeSet containing all the nodes in the NodeSet
5419
5885
  # in reverse order
5420
5886
  #
5421
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#417
5887
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#419
5422
5888
  def reverse; end
5423
5889
 
5424
5890
  # Set attributes on each Node in the NodeSet, or get an
@@ -5453,13 +5919,13 @@ class Nokogiri::XML::NodeSet
5453
5919
  #
5454
5920
  # node_set.attr("class") { |node| node.name }
5455
5921
  #
5456
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#203
5922
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#205
5457
5923
  def set(key, value = T.unsafe(nil), &block); end
5458
5924
 
5459
5925
  # Returns the first element of the NodeSet and removes it. Returns
5460
5926
  # +nil+ if the set is empty.
5461
5927
  #
5462
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#383
5928
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#385
5463
5929
  def shift; end
5464
5930
 
5465
5931
  def size; end
@@ -5478,7 +5944,7 @@ class Nokogiri::XML::NodeSet
5478
5944
  #
5479
5945
  # See Nokogiri::XML::Node#content for more information.
5480
5946
  #
5481
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#253
5947
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#255
5482
5948
  def text; end
5483
5949
 
5484
5950
  def to_a; end
@@ -5486,22 +5952,22 @@ class Nokogiri::XML::NodeSet
5486
5952
 
5487
5953
  # Convert this NodeSet to HTML
5488
5954
  #
5489
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#341
5955
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#343
5490
5956
  def to_html(*args); end
5491
5957
 
5492
5958
  # Convert this NodeSet to a string.
5493
5959
  #
5494
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#335
5960
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#337
5495
5961
  def to_s; end
5496
5962
 
5497
5963
  # Convert this NodeSet to XHTML
5498
5964
  #
5499
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#358
5965
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#360
5500
5966
  def to_xhtml(*args); end
5501
5967
 
5502
5968
  # Convert this NodeSet to XML
5503
5969
  #
5504
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#364
5970
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#366
5505
5971
  def to_xml(*args); end
5506
5972
 
5507
5973
  def unlink; end
@@ -5570,7 +6036,7 @@ class Nokogiri::XML::NodeSet
5570
6036
  # # <div><a>d</a></div>
5571
6037
  # # </body></html>
5572
6038
  #
5573
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#328
6039
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#330
5574
6040
  def wrap(node_or_tags); end
5575
6041
 
5576
6042
  # call-seq: xpath *paths, [namespace-bindings, variable-bindings, custom-handler-class]
@@ -5580,13 +6046,17 @@ class Nokogiri::XML::NodeSet
5580
6046
  #
5581
6047
  # For more information see Nokogiri::XML::Searchable#xpath
5582
6048
  #
5583
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#99
6049
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#101
5584
6050
  def xpath(*args); end
5585
6051
 
5586
6052
  def |(_arg0); end
6053
+
6054
+ private
6055
+
6056
+ def initialize_copy(_arg0); end
5587
6057
  end
5588
6058
 
5589
- # source://nokogiri//lib/nokogiri/xml/node_set.rb#444
6059
+ # source://nokogiri//lib/nokogiri/xml/node_set.rb#446
5590
6060
  Nokogiri::XML::NodeSet::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
5591
6061
 
5592
6062
  # Struct representing an {XML Schema Notation}[https://www.w3.org/TR/xml/#Notations]
@@ -5611,7 +6081,7 @@ module Nokogiri::XML::PP::Node
5611
6081
  # source://nokogiri//lib/nokogiri/xml/pp/node.rb#10
5612
6082
  def inspect; end
5613
6083
 
5614
- # source://nokogiri//lib/nokogiri/xml/pp/node.rb#27
6084
+ # source://nokogiri//lib/nokogiri/xml/pp/node.rb#32
5615
6085
  def pretty_print(pp); end
5616
6086
  end
5617
6087
 
@@ -5997,7 +6467,7 @@ Nokogiri::XML::ParseOptions::DTDVALID = T.let(T.unsafe(nil), Integer)
5997
6467
 
5998
6468
  # Relax any hardcoded limit from the parser. Off by default.
5999
6469
  #
6000
- # ⚠ There may be a performance penalty when this option is set.
6470
+ # ⚠ <b>It is UNSAFE to set this option</b> when parsing untrusted documents.
6001
6471
  #
6002
6472
  # source://nokogiri//lib/nokogiri/xml/parse_options.rb#144
6003
6473
  Nokogiri::XML::ParseOptions::HUGE = T.let(T.unsafe(nil), Integer)
@@ -6102,41 +6572,42 @@ class Nokogiri::XML::ProcessingInstruction < ::Nokogiri::XML::Node
6102
6572
  end
6103
6573
  end
6104
6574
 
6105
- # Nokogiri::XML::Reader parses an XML document similar to the way a cursor would move. The
6106
- # Reader is given an XML document, and yields nodes to an each block.
6575
+ # The Reader parser allows you to effectively pull parse an \XML document. Once instantiated,
6576
+ # call Nokogiri::XML::Reader#each to iterate over each node.
6577
+ #
6578
+ # Nokogiri::XML::Reader parses an \XML document similar to the way a cursor would move. The
6579
+ # Reader is given an \XML document, and yields nodes to an each block.
6107
6580
  #
6108
- # The Reader parser might be good for when you need the speed and low memory usage of the SAX
6109
- # parser, but do not want to write a Document handler.
6581
+ # The Reader parser might be good for when you need the speed and low memory usage of a \SAX
6582
+ # parser, but do not want to write a SAX::Document handler.
6110
6583
  #
6111
6584
  # Here is an example of usage:
6112
6585
  #
6113
- # reader = Nokogiri::XML::Reader(<<-eoxml)
6586
+ # reader = Nokogiri::XML::Reader.new <<~XML
6114
6587
  # <x xmlns:tenderlove='http://tenderlovemaking.com/'>
6115
6588
  # <tenderlove:foo awesome='true'>snuggles!</tenderlove:foo>
6116
6589
  # </x>
6117
- # eoxml
6590
+ # XML
6118
6591
  #
6119
6592
  # reader.each do |node|
6120
- #
6121
6593
  # # node is an instance of Nokogiri::XML::Reader
6122
6594
  # puts node.name
6123
- #
6124
6595
  # end
6125
6596
  #
6126
6597
  # ⚠ Nokogiri::XML::Reader#each can only be called once! Once the cursor moves through the entire
6127
6598
  # document, you must parse the document again. It may be better to capture all information you
6128
6599
  # need during a single iteration.
6129
6600
  #
6130
- # ⚠ libxml2 does not support error recovery in the Reader parser. The `RECOVER` ParseOption is
6601
+ # ⚠ libxml2 does not support error recovery in the Reader parser. The +RECOVER+ ParseOption is
6131
6602
  # ignored. If a syntax error is encountered during parsing, an exception will be raised.
6132
6603
  #
6133
- # source://nokogiri//lib/nokogiri/xml/reader.rb#33
6604
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#34
6134
6605
  class Nokogiri::XML::Reader
6135
6606
  include ::Enumerable
6136
6607
 
6137
6608
  # @return [Reader] a new instance of Reader
6138
6609
  #
6139
- # source://nokogiri//lib/nokogiri/xml/reader.rb#80
6610
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#114
6140
6611
  def initialize(source, url = T.unsafe(nil), encoding = T.unsafe(nil)); end
6141
6612
 
6142
6613
  def attribute(_arg0); end
@@ -6151,7 +6622,7 @@ class Nokogiri::XML::Reader
6151
6622
  # [Returns]
6152
6623
  # (Hash<String, String>) Attribute names and values, and namespace prefixes and hrefs.
6153
6624
  #
6154
- # source://nokogiri//lib/nokogiri/xml/reader.rb#93
6625
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#126
6155
6626
  def attributes; end
6156
6627
 
6157
6628
  def attributes?; end
@@ -6161,7 +6632,7 @@ class Nokogiri::XML::Reader
6161
6632
 
6162
6633
  # Move the cursor through the document yielding the cursor to the block
6163
6634
  #
6164
- # source://nokogiri//lib/nokogiri/xml/reader.rb#99
6635
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#132
6165
6636
  def each; end
6166
6637
 
6167
6638
  def empty_element?; end
@@ -6169,12 +6640,12 @@ class Nokogiri::XML::Reader
6169
6640
 
6170
6641
  # A list of errors encountered while parsing
6171
6642
  #
6172
- # source://nokogiri//lib/nokogiri/xml/reader.rb#73
6643
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#74
6173
6644
  def errors; end
6174
6645
 
6175
6646
  # A list of errors encountered while parsing
6176
6647
  #
6177
- # source://nokogiri//lib/nokogiri/xml/reader.rb#73
6648
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#74
6178
6649
  def errors=(_arg0); end
6179
6650
 
6180
6651
  def inner_xml; end
@@ -6189,9 +6660,9 @@ class Nokogiri::XML::Reader
6189
6660
  def read; end
6190
6661
  def self_closing?; end
6191
6662
 
6192
- # The XML source
6663
+ # The \XML source
6193
6664
  #
6194
- # source://nokogiri//lib/nokogiri/xml/reader.rb#76
6665
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#77
6195
6666
  def source; end
6196
6667
 
6197
6668
  def state; end
@@ -6202,119 +6673,146 @@ class Nokogiri::XML::Reader
6202
6673
  class << self
6203
6674
  def from_io(*_arg0); end
6204
6675
  def from_memory(*_arg0); end
6676
+
6677
+ # :call-seq:
6678
+ # Reader.new(input) { |options| ... } → Reader
6679
+ #
6680
+ # Create a new Reader to parse an \XML document.
6681
+ #
6682
+ # [Required Parameters]
6683
+ # - +input+ (String | IO): The \XML document to parse.
6684
+ #
6685
+ # [Optional Parameters]
6686
+ # - +url:+ (String) The base URL of the document.
6687
+ # - +options:+ (Integer | ParseOptions) Options to control the parser behavior.
6688
+ # Defaults to +ParseOptions::STRICT+.
6689
+ #
6690
+ # [Yields]
6691
+ # If present, the block will be passed a Nokogiri::XML::ParseOptions object to modify before
6692
+ # the fragment is parsed. See Nokogiri::XML::ParseOptions for more information.
6693
+ #
6694
+ # @yield [options]
6695
+ #
6696
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#99
6697
+ def new(string_or_io, url_ = T.unsafe(nil), encoding_ = T.unsafe(nil), options_ = T.unsafe(nil), url: T.unsafe(nil), encoding: T.unsafe(nil), options: T.unsafe(nil)); end
6205
6698
  end
6206
6699
  end
6207
6700
 
6208
6701
  # Attribute node type
6209
6702
  #
6210
- # source://nokogiri//lib/nokogiri/xml/reader.rb#40
6703
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#41
6211
6704
  Nokogiri::XML::Reader::TYPE_ATTRIBUTE = T.let(T.unsafe(nil), Integer)
6212
6705
 
6213
6706
  # CDATA node type
6214
6707
  #
6215
- # source://nokogiri//lib/nokogiri/xml/reader.rb#44
6708
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#45
6216
6709
  Nokogiri::XML::Reader::TYPE_CDATA = T.let(T.unsafe(nil), Integer)
6217
6710
 
6218
6711
  # Comment node type
6219
6712
  #
6220
- # source://nokogiri//lib/nokogiri/xml/reader.rb#52
6713
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#53
6221
6714
  Nokogiri::XML::Reader::TYPE_COMMENT = T.let(T.unsafe(nil), Integer)
6222
6715
 
6223
6716
  # Document node type
6224
6717
  #
6225
- # source://nokogiri//lib/nokogiri/xml/reader.rb#54
6718
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#55
6226
6719
  Nokogiri::XML::Reader::TYPE_DOCUMENT = T.let(T.unsafe(nil), Integer)
6227
6720
 
6228
6721
  # Document Fragment node type
6229
6722
  #
6230
- # source://nokogiri//lib/nokogiri/xml/reader.rb#58
6723
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#59
6231
6724
  Nokogiri::XML::Reader::TYPE_DOCUMENT_FRAGMENT = T.let(T.unsafe(nil), Integer)
6232
6725
 
6233
6726
  # Document Type node type
6234
6727
  #
6235
- # source://nokogiri//lib/nokogiri/xml/reader.rb#56
6728
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#57
6236
6729
  Nokogiri::XML::Reader::TYPE_DOCUMENT_TYPE = T.let(T.unsafe(nil), Integer)
6237
6730
 
6238
6731
  # Element node type
6239
6732
  #
6240
- # source://nokogiri//lib/nokogiri/xml/reader.rb#38
6733
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#39
6241
6734
  Nokogiri::XML::Reader::TYPE_ELEMENT = T.let(T.unsafe(nil), Integer)
6242
6735
 
6243
6736
  # Element end node type
6244
6737
  #
6245
- # source://nokogiri//lib/nokogiri/xml/reader.rb#66
6738
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#67
6246
6739
  Nokogiri::XML::Reader::TYPE_END_ELEMENT = T.let(T.unsafe(nil), Integer)
6247
6740
 
6248
6741
  # Entity end node type
6249
6742
  #
6250
- # source://nokogiri//lib/nokogiri/xml/reader.rb#68
6743
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#69
6251
6744
  Nokogiri::XML::Reader::TYPE_END_ENTITY = T.let(T.unsafe(nil), Integer)
6252
6745
 
6253
6746
  # Entity node type
6254
6747
  #
6255
- # source://nokogiri//lib/nokogiri/xml/reader.rb#48
6748
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#49
6256
6749
  Nokogiri::XML::Reader::TYPE_ENTITY = T.let(T.unsafe(nil), Integer)
6257
6750
 
6258
6751
  # Entity Reference node type
6259
6752
  #
6260
- # source://nokogiri//lib/nokogiri/xml/reader.rb#46
6753
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#47
6261
6754
  Nokogiri::XML::Reader::TYPE_ENTITY_REFERENCE = T.let(T.unsafe(nil), Integer)
6262
6755
 
6263
- # source://nokogiri//lib/nokogiri/xml/reader.rb#36
6756
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#37
6264
6757
  Nokogiri::XML::Reader::TYPE_NONE = T.let(T.unsafe(nil), Integer)
6265
6758
 
6266
6759
  # Notation node type
6267
6760
  #
6268
- # source://nokogiri//lib/nokogiri/xml/reader.rb#60
6761
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#61
6269
6762
  Nokogiri::XML::Reader::TYPE_NOTATION = T.let(T.unsafe(nil), Integer)
6270
6763
 
6271
6764
  # PI node type
6272
6765
  #
6273
- # source://nokogiri//lib/nokogiri/xml/reader.rb#50
6766
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#51
6274
6767
  Nokogiri::XML::Reader::TYPE_PROCESSING_INSTRUCTION = T.let(T.unsafe(nil), Integer)
6275
6768
 
6276
6769
  # Significant Whitespace node type
6277
6770
  #
6278
- # source://nokogiri//lib/nokogiri/xml/reader.rb#64
6771
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#65
6279
6772
  Nokogiri::XML::Reader::TYPE_SIGNIFICANT_WHITESPACE = T.let(T.unsafe(nil), Integer)
6280
6773
 
6281
6774
  # Text node type
6282
6775
  #
6283
- # source://nokogiri//lib/nokogiri/xml/reader.rb#42
6776
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#43
6284
6777
  Nokogiri::XML::Reader::TYPE_TEXT = T.let(T.unsafe(nil), Integer)
6285
6778
 
6286
6779
  # Whitespace node type
6287
6780
  #
6288
- # source://nokogiri//lib/nokogiri/xml/reader.rb#62
6781
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#63
6289
6782
  Nokogiri::XML::Reader::TYPE_WHITESPACE = T.let(T.unsafe(nil), Integer)
6290
6783
 
6291
- # XML Declaration node type
6784
+ # \XML Declaration node type
6292
6785
  #
6293
- # source://nokogiri//lib/nokogiri/xml/reader.rb#70
6786
+ # source://nokogiri//lib/nokogiri/xml/reader.rb#71
6294
6787
  Nokogiri::XML::Reader::TYPE_XML_DECLARATION = T.let(T.unsafe(nil), Integer)
6295
6788
 
6296
- # Nokogiri::XML::RelaxNG is used for validating XML against a
6297
- # RelaxNG schema.
6789
+ # Nokogiri::XML::RelaxNG is used for validating \XML against a RELAX NG schema definition.
6298
6790
  #
6299
- # == Synopsis
6791
+ # 🛡 <b>Do not use this class for untrusted schema documents.</b> RELAX NG input is always
6792
+ # treated as *trusted*, meaning that the underlying parsing libraries <b>will access network
6793
+ # resources</b>. This is counter to Nokogiri's "untrusted by default" security policy, but is an
6794
+ # unfortunate limitation of the underlying libraries.
6300
6795
  #
6301
- # Validate an XML document against a RelaxNG schema. Loop over the errors
6302
- # that are returned and print them out:
6796
+ # *Example:* Determine whether an \XML document is valid.
6303
6797
  #
6304
- # schema = Nokogiri::XML::RelaxNG(File.open(ADDRESS_SCHEMA_FILE))
6305
- # doc = Nokogiri::XML(File.open(ADDRESS_XML_FILE))
6798
+ # schema = Nokogiri::XML::RelaxNG.new(File.read(RELAX_NG_FILE))
6799
+ # doc = Nokogiri::XML::Document.parse(File.read(XML_FILE))
6800
+ # schema.valid?(doc) # Boolean
6306
6801
  #
6307
- # schema.validate(doc).each do |error|
6308
- # puts error.message
6309
- # end
6802
+ # *Example:* Validate an \XML document against a \RelaxNG schema, and capture any errors that are found.
6803
+ #
6804
+ # schema = Nokogiri::XML::RelaxNG.new(File.open(RELAX_NG_FILE))
6805
+ # doc = Nokogiri::XML::Document.parse(File.open(XML_FILE))
6806
+ # errors = schema.validate(doc) # Array<SyntaxError>
6310
6807
  #
6311
- # The list of errors are Nokogiri::XML::SyntaxError objects.
6808
+ # *Example:* Validate an \XML document using a Document containing a RELAX NG schema definition.
6312
6809
  #
6313
- # NOTE: RelaxNG input is always treated as TRUSTED documents, meaning that they will cause the
6314
- # underlying parsing libraries to access network resources. This is counter to Nokogiri's
6315
- # "untrusted by default" security policy, but is a limitation of the underlying libraries.
6810
+ # schema_doc = Nokogiri::XML::Document.parse(File.read(RELAX_NG_FILE))
6811
+ # schema = Nokogiri::XML::RelaxNG.from_document(schema_doc)
6812
+ # doc = Nokogiri::XML::Document.parse(File.open(XML_FILE))
6813
+ # schema.valid?(doc) # Boolean
6316
6814
  #
6317
- # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#35
6815
+ # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#42
6318
6816
  class Nokogiri::XML::RelaxNG < ::Nokogiri::XML::Schema
6319
6817
  private
6320
6818
 
@@ -6322,25 +6820,59 @@ class Nokogiri::XML::RelaxNG < ::Nokogiri::XML::Schema
6322
6820
 
6323
6821
  class << self
6324
6822
  def from_document(*_arg0); end
6325
- def read_memory(*_arg0); end
6823
+
6824
+ # :call-seq:
6825
+ # new(input) → Nokogiri::XML::RelaxNG
6826
+ # new(input, options:) → Nokogiri::XML::RelaxNG
6827
+ #
6828
+ # Parse a RELAX NG schema definition from a String or IO to create a new Nokogiri::XML::RelaxNG.
6829
+ #
6830
+ # [Parameters]
6831
+ # - +input+ (String | IO) RELAX NG schema definition
6832
+ # - +options:+ (Nokogiri::XML::ParseOptions)
6833
+ # Defaults to Nokogiri::XML::ParseOptions::DEFAULT_SCHEMA ⚠ Unused
6834
+ #
6835
+ # [Returns] Nokogiri::XML::RelaxNG
6836
+ #
6837
+ # ⚠ +parse_options+ is currently unused by this method and is present only as a placeholder for
6838
+ # future functionality.
6839
+ #
6840
+ # Also see convenience method Nokogiri::XML::RelaxNG()
6841
+ #
6842
+ # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#60
6843
+ def new(input, parse_options_ = T.unsafe(nil), options: T.unsafe(nil)); end
6844
+
6845
+ # :call-seq:
6846
+ # read_memory(input) → Nokogiri::XML::RelaxNG
6847
+ # read_memory(input, options:) → Nokogiri::XML::RelaxNG
6848
+ #
6849
+ # Convenience method for Nokogiri::XML::RelaxNG.new.
6850
+ #
6851
+ # source://nokogiri//lib/nokogiri/xml/relax_ng.rb#69
6852
+ def read_memory(*_arg0, **_arg1, &_arg2); end
6326
6853
  end
6327
6854
  end
6328
6855
 
6329
- # SAX Parsers are event driven parsers. Nokogiri provides two different event based parsers when
6330
- # dealing with XML. If you want to do SAX style parsing using HTML, check out
6331
- # Nokogiri::HTML4::SAX.
6856
+ # SAX Parsers are event-driven parsers.
6857
+ #
6858
+ # Two SAX parsers for XML are available, a parser that reads from a string or IO object as it
6859
+ # feels necessary, and a parser that you explicitly feed XML in chunks. If you want to let
6860
+ # Nokogiri deal with reading your XML, use the Nokogiri::XML::SAX::Parser. If you want to have
6861
+ # fine grain control over the XML input, use the Nokogiri::XML::SAX::PushParser.
6862
+ #
6863
+ # If you want to do SAX style parsing of HTML, check out Nokogiri::HTML4::SAX.
6332
6864
  #
6333
6865
  # The basic way a SAX style parser works is by creating a parser, telling the parser about the
6334
6866
  # events we're interested in, then giving the parser some XML to process. The parser will notify
6335
6867
  # you when it encounters events you said you would like to know about.
6336
6868
  #
6337
- # To register for events, you simply subclass Nokogiri::XML::SAX::Document, and implement the
6338
- # methods for which you would like notification.
6869
+ # To register for events, subclass Nokogiri::XML::SAX::Document and implement the methods for
6870
+ # which you would like notification.
6339
6871
  #
6340
6872
  # For example, if I want to be notified when a document ends, and when an element starts, I
6341
6873
  # would write a class like this:
6342
6874
  #
6343
- # class MyDocument < Nokogiri::XML::SAX::Document
6875
+ # class MyHandler < Nokogiri::XML::SAX::Document
6344
6876
  # def end_document
6345
6877
  # puts "the document has ended"
6346
6878
  # end
@@ -6353,7 +6885,7 @@ end
6353
6885
  # Then I would instantiate a SAX parser with this document, and feed the parser some XML
6354
6886
  #
6355
6887
  # # Create a new parser
6356
- # parser = Nokogiri::XML::SAX::Parser.new(MyDocument.new)
6888
+ # parser = Nokogiri::XML::SAX::Parser.new(MyHandler.new)
6357
6889
  #
6358
6890
  # # Feed the parser some XML
6359
6891
  # parser.parse(File.open(ARGV[0]))
@@ -6361,133 +6893,254 @@ end
6361
6893
  # Now my document handler will be called when each node starts, and when then document ends. To
6362
6894
  # see what kinds of events are available, take a look at Nokogiri::XML::SAX::Document.
6363
6895
  #
6364
- # Two SAX parsers for XML are available, a parser that reads from a string or IO object as it
6365
- # feels necessary, and a parser that lets you spoon feed it XML. If you want to let Nokogiri
6366
- # deal with reading your XML, use the Nokogiri::XML::SAX::Parser. If you want to have fine grain
6367
- # control over the XML input, use the Nokogiri::XML::SAX::PushParser.
6368
- #
6369
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#45
6896
+ # source://nokogiri//lib/nokogiri/xml/sax.rb#46
6370
6897
  module Nokogiri::XML::SAX; end
6371
6898
 
6372
- # This class is used for registering types of events you are interested in handling. All of
6373
- # the methods on this class are available as possible events while parsing an XML document. To
6374
- # register for any particular event, just subclass this class and implement the methods you
6375
- # are interested in knowing about.
6899
+ # :markup: markdown
6900
+ #
6901
+ # The SAX::Document class is used for registering types of events you are interested in
6902
+ # handling. All of the methods on this class are available as possible events while parsing an
6903
+ # \XML document. To register for any particular event, subclass this class and implement the
6904
+ # methods you are interested in knowing about.
6376
6905
  #
6377
6906
  # To only be notified about start and end element events, write a class like this:
6378
6907
  #
6379
- # class MyDocument < Nokogiri::XML::SAX::Document
6380
- # def start_element name, attrs = []
6381
- # puts "#{name} started!"
6382
- # end
6908
+ # class MyHandler < Nokogiri::XML::SAX::Document
6909
+ # def start_element name, attrs = []
6910
+ # puts "#{name} started!"
6911
+ # end
6383
6912
  #
6384
- # def end_element name
6385
- # puts "#{name} ended"
6913
+ # def end_element name
6914
+ # puts "#{name} ended"
6915
+ # end
6386
6916
  # end
6387
- # end
6388
6917
  #
6389
- # You can use this event handler for any SAX style parser included with Nokogiri. See
6390
- # Nokogiri::XML::SAX, and Nokogiri::HTML4::SAX.
6918
+ # You can use this event handler for any SAX-style parser included with Nokogiri.
6919
+ #
6920
+ # See also:
6921
+ #
6922
+ # - Nokogiri::XML::SAX
6923
+ # - Nokogiri::HTML4::SAX
6924
+ #
6925
+ # ### Entity Handling
6926
+ #
6927
+ # ⚠ Entity handling is complicated in a SAX parser! Please read this section carefully if
6928
+ # you're not getting the behavior you expect.
6929
+ #
6930
+ # Entities will be reported to the user via callbacks to #characters, to #reference, or
6931
+ # possibly to both. The behavior is determined by a combination of _entity type_ and the value
6932
+ # of ParserContext#replace_entities. (Recall that the default value of
6933
+ # ParserContext#replace_entities is `false`.)
6934
+ #
6935
+ # ⚠ <b>It is UNSAFE to set ParserContext#replace_entities to `true`</b> when parsing untrusted
6936
+ # documents.
6391
6937
  #
6392
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#66
6938
+ # 💡 For more information on entity types, see [Wikipedia's page on
6939
+ # DTDs](https://en.wikipedia.org/wiki/Document_type_definition#Entity_declarations).
6940
+ #
6941
+ # | Entity type | #characters | #reference |
6942
+ # |--------------------------------------|------------------------------------|-------------------------------------|
6943
+ # | Char ref (e.g., <tt>&#146;</tt>) | always | never |
6944
+ # | Predefined (e.g., <tt>&amp;</tt>) | always | never |
6945
+ # | Undeclared † | never | <tt>#replace_entities == false</tt> |
6946
+ # | Internal | always | <tt>#replace_entities == false</tt> |
6947
+ # | External † | <tt>#replace_entities == true</tt> | <tt>#replace_entities == false</tt> |
6948
+ #
6949
+ # &nbsp;
6950
+ #
6951
+ # † In the case where the replacement text for the entity is unknown (e.g., an undeclared entity
6952
+ # or an external entity that could not be resolved because of network issues), then the
6953
+ # replacement text will not be reported. If ParserContext#replace_entities is `true`, this
6954
+ # means the #characters callback will not be invoked. If ParserContext#replace_entities is
6955
+ # `false`, then the #reference callback will be invoked, but with `nil` for the `content`
6956
+ # argument.
6957
+ #
6958
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#65
6393
6959
  class Nokogiri::XML::SAX::Document
6394
6960
  # Called when cdata blocks are found
6395
- # +string+ contains the cdata content
6961
+ # [Parameters]
6962
+ # - +string+ contains the cdata content
6396
6963
  #
6397
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#155
6964
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#245
6398
6965
  def cdata_block(string); end
6399
6966
 
6400
- # Characters read between a tag. This method might be called multiple
6401
- # times given one contiguous string of characters.
6967
+ # Called when character data is parsed, and for parsed entities when
6968
+ # ParserContext#replace_entities is +true+.
6969
+ #
6970
+ # [Parameters]
6971
+ # - +string+ contains the character data or entity replacement text
6402
6972
  #
6403
- # +string+ contains the character data
6973
+ # ⚠ Please see Document@Entity+Handling for important information about how entities are handled.
6404
6974
  #
6405
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#131
6975
+ # ⚠ This method might be called multiple times for a contiguous string of characters.
6976
+ #
6977
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#201
6406
6978
  def characters(string); end
6407
6979
 
6408
6980
  # Called when comments are encountered
6409
- # +string+ contains the comment data
6981
+ # [Parameters]
6982
+ # - +string+ contains the comment data
6410
6983
  #
6411
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#137
6984
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#224
6412
6985
  def comment(string); end
6413
6986
 
6414
- # Called when document ends parsing
6987
+ # Called when document ends parsing.
6415
6988
  #
6416
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#79
6989
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#83
6417
6990
  def end_document; end
6418
6991
 
6419
- # Called at the end of an element
6420
- # +name+ is the tag name
6992
+ # Called at the end of an element.
6993
+ #
6994
+ # [Parameters]
6995
+ # - +name+ (String) the name of the element being closed
6421
6996
  #
6422
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#93
6997
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#122
6423
6998
  def end_element(name); end
6424
6999
 
6425
- # Called at the end of an element
6426
- # +name+ is the element's name
6427
- # +prefix+ is the namespace prefix associated with the element
6428
- # +uri+ is the associated namespace URI
7000
+ # Called at the end of an element.
6429
7001
  #
6430
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#120
7002
+ # [Parameters]
7003
+ # - +name+ (String) is the name of the element
7004
+ # - +prefix+ (String, nil) is the namespace prefix for the element
7005
+ # - +uri+ (String, nil) is the associated URI for the element's namespace
7006
+ #
7007
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#185
6431
7008
  def end_element_namespace(name, prefix = T.unsafe(nil), uri = T.unsafe(nil)); end
6432
7009
 
6433
7010
  # Called on document errors
6434
- # +string+ contains the error
7011
+ # [Parameters]
7012
+ # - +string+ contains the error
6435
7013
  #
6436
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#149
7014
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#238
6437
7015
  def error(string); end
6438
7016
 
6439
7017
  # Called when processing instructions are found
6440
- # +name+ is the target of the instruction
6441
- # +content+ is the value of the instruction
7018
+ # [Parameters]
7019
+ # - +name+ is the target of the instruction
7020
+ # - +content+ is the value of the instruction
6442
7021
  #
6443
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#162
7022
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#253
6444
7023
  def processing_instruction(name, content); end
6445
7024
 
6446
- # Called when document starts parsing
7025
+ # Called when a parsed entity is referenced and not replaced.
7026
+ #
7027
+ # [Parameters]
7028
+ # - +name+ (String) is the name of the entity
7029
+ # - +content+ (String, nil) is the replacement text for the entity, if known
7030
+ #
7031
+ # ⚠ Please see Document@Entity+Handling for important information about how entities are handled.
7032
+ #
7033
+ # ⚠ An internal entity may result in a call to both #characters and #reference.
7034
+ #
7035
+ # Since v1.17.0
7036
+ #
7037
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#217
7038
+ def reference(name, content); end
7039
+
7040
+ # Called when document starts parsing.
6447
7041
  #
6448
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#74
7042
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#78
6449
7043
  def start_document; end
6450
7044
 
6451
- # Called at the beginning of an element
6452
- # * +name+ is the name of the tag
6453
- # * +attrs+ are an assoc list of namespaces and attributes, e.g.:
7045
+ # Called at the beginning of an element.
7046
+ #
7047
+ # [Parameters]
7048
+ # - +name+ (String) the name of the element
7049
+ # - +attrs+ (Array<Array<String>>) an assoc list of namespace declarations and attributes, e.g.:
6454
7050
  # [ ["xmlns:foo", "http://sample.net"], ["size", "large"] ]
6455
7051
  #
6456
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#87
7052
+ # 💡If you're dealing with XML and need to handle namespaces, use the
7053
+ # #start_element_namespace method instead.
7054
+ #
7055
+ # Note that the element namespace and any attribute namespaces are not provided, and so any
7056
+ # namespaced elements or attributes will be returned as strings including the prefix:
7057
+ #
7058
+ # parser.parse(<<~XML)
7059
+ # <root xmlns:foo='http://foo.example.com/' xmlns='http://example.com/'>
7060
+ # <foo:bar foo:quux="xxx">hello world</foo:bar>
7061
+ # </root>
7062
+ # XML
7063
+ #
7064
+ # assert_pattern do
7065
+ # parser.document.start_elements => [
7066
+ # ["root", [["xmlns:foo", "http://foo.example.com/"], ["xmlns", "http://example.com/"]]],
7067
+ # ["foo:bar", [["foo:quux", "xxx"]]],
7068
+ # ]
7069
+ # end
7070
+ #
7071
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#113
6457
7072
  def start_element(name, attrs = T.unsafe(nil)); end
6458
7073
 
6459
- # Called at the beginning of an element
6460
- # +name+ is the element name
6461
- # +attrs+ is a list of attributes
6462
- # +prefix+ is the namespace prefix for the element
6463
- # +uri+ is the associated namespace URI
6464
- # +ns+ is a hash of namespace prefix:urls associated with the element
7074
+ # Called at the beginning of an element.
6465
7075
  #
6466
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#103
7076
+ # [Parameters]
7077
+ # - +name+ (String) is the name of the element
7078
+ # - +attrs+ (Array<Attribute>) is an array of structs with the following properties:
7079
+ # - +localname+ (String) the local name of the attribute
7080
+ # - +value+ (String) the value of the attribute
7081
+ # - +prefix+ (String, nil) the namespace prefix of the attribute
7082
+ # - +uri+ (String, nil) the namespace URI of the attribute
7083
+ # - +prefix+ (String, nil) is the namespace prefix for the element
7084
+ # - +uri+ (String, nil) is the associated URI for the element's namespace
7085
+ # - +ns+ (Array<Array<String, String>>) is an assoc list of namespace declarations on the element
7086
+ #
7087
+ # 💡If you're dealing with HTML or don't care about namespaces, try #start_element instead.
7088
+ #
7089
+ # [Example]
7090
+ # it "start_elements_namespace is called with namespaced attributes" do
7091
+ # parser.parse(<<~XML)
7092
+ # <root xmlns:foo='http://foo.example.com/'>
7093
+ # <foo:a foo:bar='hello' />
7094
+ # </root>
7095
+ # XML
7096
+ #
7097
+ # assert_pattern do
7098
+ # parser.document.start_elements_namespace => [
7099
+ # [
7100
+ # "root",
7101
+ # [],
7102
+ # nil, nil,
7103
+ # [["foo", "http://foo.example.com/"]], # namespace declarations
7104
+ # ], [
7105
+ # "a",
7106
+ # [Nokogiri::XML::SAX::Parser::Attribute(localname: "bar", prefix: "foo", uri: "http://foo.example.com/", value: "hello")], # prefixed attribute
7107
+ # "foo", "http://foo.example.com/", # prefix and uri for the "a" element
7108
+ # [],
7109
+ # ]
7110
+ # ]
7111
+ # end
7112
+ # end
7113
+ #
7114
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#166
6467
7115
  def start_element_namespace(name, attrs = T.unsafe(nil), prefix = T.unsafe(nil), uri = T.unsafe(nil), ns = T.unsafe(nil)); end
6468
7116
 
6469
7117
  # Called on document warnings
6470
- # +string+ contains the warning
7118
+ # [Parameters]
7119
+ # - +string+ contains the warning
6471
7120
  #
6472
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#143
7121
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#231
6473
7122
  def warning(string); end
6474
7123
 
6475
- # Called when an XML declaration is parsed
7124
+ # Called when an \XML declaration is parsed.
7125
+ #
7126
+ # [Parameters]
7127
+ # - +version+ (String) the version attribute
7128
+ # - +encoding+ (String, nil) the encoding of the document if present, else +nil+
7129
+ # - +standalone+ ("yes", "no", nil) the standalone attribute if present, else +nil+
6476
7130
  #
6477
- # source://nokogiri//lib/nokogiri/xml/sax/document.rb#69
7131
+ # source://nokogiri//lib/nokogiri/xml/sax/document.rb#73
6478
7132
  def xmldecl(version, encoding, standalone); end
6479
7133
  end
6480
7134
 
6481
- # This parser is a SAX style parser that reads it's input as it
6482
- # deems necessary. The parser takes a Nokogiri::XML::SAX::Document,
6483
- # an optional encoding, then given an XML input, sends messages to
6484
- # the Nokogiri::XML::SAX::Document.
7135
+ # This parser is a SAX style parser that reads its input as it deems necessary. The parser
7136
+ # takes a Nokogiri::XML::SAX::Document, an optional encoding, then given an XML input, sends
7137
+ # messages to the Nokogiri::XML::SAX::Document.
6485
7138
  #
6486
7139
  # Here is an example of using this parser:
6487
7140
  #
6488
7141
  # # Create a subclass of Nokogiri::XML::SAX::Document and implement
6489
7142
  # # the events we care about:
6490
- # class MyDoc < Nokogiri::XML::SAX::Document
7143
+ # class MyHandler < Nokogiri::XML::SAX::Document
6491
7144
  # def start_element name, attrs = []
6492
7145
  # puts "starting: #{name}"
6493
7146
  # end
@@ -6497,89 +7150,165 @@ end
6497
7150
  # end
6498
7151
  # end
6499
7152
  #
6500
- # # Create our parser
6501
- # parser = Nokogiri::XML::SAX::Parser.new(MyDoc.new)
7153
+ # parser = Nokogiri::XML::SAX::Parser.new(MyHandler.new)
6502
7154
  #
6503
- # # Send some XML to the parser
6504
- # parser.parse(File.open(ARGV[0]))
7155
+ # # Hand an IO object to the parser, which will read the XML from the IO.
7156
+ # File.open(path_to_xml) do |f|
7157
+ # parser.parse(f)
7158
+ # end
7159
+ #
7160
+ # For more information about \SAX parsers, see Nokogiri::XML::SAX.
7161
+ #
7162
+ # Also see Nokogiri::XML::SAX::Document for the available events.
6505
7163
  #
6506
- # For more information about SAX parsers, see Nokogiri::XML::SAX. Also
6507
- # see Nokogiri::XML::SAX::Document for the available events.
7164
+ # For \HTML documents, use the subclass Nokogiri::HTML4::SAX::Parser.
6508
7165
  #
6509
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#34
7166
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#38
6510
7167
  class Nokogiri::XML::SAX::Parser
6511
- # Create a new Parser with +doc+ and +encoding+
7168
+ include ::Nokogiri::ClassResolver
7169
+
7170
+ # :call-seq:
7171
+ # new ⇒ SAX::Parser
7172
+ # new(handler) ⇒ SAX::Parser
7173
+ # new(handler, encoding) ⇒ SAX::Parser
7174
+ #
7175
+ # Create a new Parser.
7176
+ #
7177
+ # [Parameters]
7178
+ # - +handler+ (optional Nokogiri::XML::SAX::Document) The document that will receive
7179
+ # events. Will create a new Nokogiri::XML::SAX::Document if not given, which is accessible
7180
+ # through the #document attribute.
7181
+ # - +encoding+ (optional Encoding, String, nil) An Encoding or encoding name to use when
7182
+ # parsing the input. (default +nil+ for auto-detection)
6512
7183
  #
6513
7184
  # @return [Parser] a new instance of Parser
6514
7185
  #
6515
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#72
7186
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#95
6516
7187
  def initialize(doc = T.unsafe(nil), encoding = T.unsafe(nil)); end
6517
7188
 
6518
7189
  # The Nokogiri::XML::SAX::Document where events will be sent.
6519
7190
  #
6520
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#66
7191
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#75
6521
7192
  def document; end
6522
7193
 
6523
7194
  # The Nokogiri::XML::SAX::Document where events will be sent.
6524
7195
  #
6525
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#66
7196
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#75
6526
7197
  def document=(_arg0); end
6527
7198
 
6528
7199
  # The encoding beings used for this document.
6529
7200
  #
6530
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#69
7201
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#78
6531
7202
  def encoding; end
6532
7203
 
6533
7204
  # The encoding beings used for this document.
6534
7205
  #
6535
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#69
7206
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#78
6536
7207
  def encoding=(_arg0); end
6537
7208
 
6538
- # Parse given +thing+ which may be a string containing xml, or an
6539
- # IO object.
7209
+ # :call-seq:
7210
+ # parse(input) { |parser_context| ... }
7211
+ #
7212
+ # Parse the input, sending events to the SAX::Document at #document.
7213
+ #
7214
+ # [Parameters]
7215
+ # - +input+ (String, IO) The input to parse.
7216
+ #
7217
+ # If +input+ quacks like a readable IO object, this method forwards to Parser.parse_io,
7218
+ # otherwise it forwards to Parser.parse_memory.
7219
+ #
7220
+ # [Yields]
7221
+ # If a block is given, the underlying ParserContext object will be yielded. This can be used
7222
+ # to set options on the parser context before parsing begins.
6540
7223
  #
6541
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#81
6542
- def parse(thing, &block); end
7224
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#119
7225
+ def parse(input, &block); end
6543
7226
 
6544
- # Parse a file with +filename+
7227
+ # :call-seq:
7228
+ # parse_file(filename) { |parser_context| ... }
7229
+ # parse_file(filename, encoding) { |parser_context| ... }
7230
+ #
7231
+ # Parse a file.
7232
+ #
7233
+ # [Parameters]
7234
+ # - +filename+ (String) The path to the file to be parsed.
7235
+ # - +encoding+ (optional Encoding, String, nil) An Encoding or encoding name to use when
7236
+ # parsing the input, or +nil+ for auto-detection. (default #encoding)
7237
+ #
7238
+ # [Yields]
7239
+ # If a block is given, the underlying ParserContext object will be yielded. This can be used
7240
+ # to set options on the parser context before parsing begins.
6545
7241
  #
6546
7242
  # @raise [ArgumentError]
6547
7243
  # @yield [ctx]
6548
7244
  #
6549
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#99
6550
- def parse_file(filename); end
7245
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#187
7246
+ def parse_file(filename, encoding = T.unsafe(nil)); end
6551
7247
 
6552
- # Parse given +io+
7248
+ # :call-seq:
7249
+ # parse_io(io) { |parser_context| ... }
7250
+ # parse_io(io, encoding) { |parser_context| ... }
7251
+ #
7252
+ # Parse an input stream.
7253
+ #
7254
+ # [Parameters]
7255
+ # - +io+ (IO) The readable IO object from which to read input
7256
+ # - +encoding+ (optional Encoding, String, nil) An Encoding or encoding name to use when
7257
+ # parsing the input, or +nil+ for auto-detection. (default #encoding)
7258
+ #
7259
+ # [Yields]
7260
+ # If a block is given, the underlying ParserContext object will be yielded. This can be used
7261
+ # to set options on the parser context before parsing begins.
6553
7262
  #
6554
7263
  # @yield [ctx]
6555
7264
  #
6556
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#91
7265
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#143
6557
7266
  def parse_io(io, encoding = T.unsafe(nil)); end
6558
7267
 
7268
+ # :call-seq:
7269
+ # parse_memory(input) { |parser_context| ... }
7270
+ # parse_memory(input, encoding) { |parser_context| ... }
7271
+ #
7272
+ # Parse an input string.
7273
+ #
7274
+ # [Parameters]
7275
+ # - +input+ (String) The input string to be parsed.
7276
+ # - +encoding+ (optional Encoding, String, nil) An Encoding or encoding name to use when
7277
+ # parsing the input, or +nil+ for auto-detection. (default #encoding)
7278
+ #
7279
+ # [Yields]
7280
+ # If a block is given, the underlying ParserContext object will be yielded. This can be used
7281
+ # to set options on the parser context before parsing begins.
7282
+ #
6559
7283
  # @yield [ctx]
6560
7284
  #
6561
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#109
6562
- def parse_memory(data); end
7285
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#165
7286
+ def parse_memory(input, encoding = T.unsafe(nil)); end
6563
7287
 
6564
7288
  private
6565
7289
 
6566
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#117
6567
- def check_encoding(encoding); end
7290
+ def initialize_native; end
6568
7291
  end
6569
7292
 
6570
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#35
7293
+ # Structure used for marshalling attributes for some callbacks in XML::SAX::Document.
7294
+ #
7295
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#43
6571
7296
  class Nokogiri::XML::SAX::Parser::Attribute < ::Struct; end
6572
7297
 
6573
- # Encodinds this parser supports
6574
- #
6575
- # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#39
7298
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#46
6576
7299
  Nokogiri::XML::SAX::Parser::ENCODINGS = T.let(T.unsafe(nil), Hash)
6577
7300
 
6578
- # Context for XML SAX parsers. This class is usually not instantiated
6579
- # by the user. Instead, you should be looking at
6580
- # Nokogiri::XML::SAX::Parser
7301
+ # pure ASCII
6581
7302
  #
6582
- # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#10
7303
+ # source://nokogiri//lib/nokogiri/xml/sax/parser.rb#71
7304
+ Nokogiri::XML::SAX::Parser::REVERSE_ENCODINGS = T.let(T.unsafe(nil), Hash)
7305
+
7306
+ # Context object to invoke the XML SAX parser on the SAX::Document handler.
7307
+ #
7308
+ # 💡 This class is usually not instantiated by the user. Use Nokogiri::XML::SAX::Parser
7309
+ # instead.
7310
+ #
7311
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#11
6583
7312
  class Nokogiri::XML::SAX::ParserContext
6584
7313
  def column; end
6585
7314
  def line; end
@@ -6590,12 +7319,91 @@ class Nokogiri::XML::SAX::ParserContext
6590
7319
  def replace_entities=(_arg0); end
6591
7320
 
6592
7321
  class << self
6593
- def file(_arg0); end
6594
- def io(_arg0, _arg1); end
6595
- def memory(_arg0); end
7322
+ # :call-seq:
7323
+ # file(path)
7324
+ # file(path, encoding)
7325
+ #
7326
+ # Create a parser context for the file at +path+.
7327
+ #
7328
+ # [Parameters]
7329
+ # - +path+ (String) The path to the input file
7330
+ # - +encoding+ (optional) (Encoding, String) The +Encoding+ to use, or the name of an encoding to
7331
+ # use (default +nil+, encoding will be autodetected)
7332
+ #
7333
+ # [Returns] Nokogiri::XML::SAX::ParserContext
7334
+ #
7335
+ # 💡 Calling this method directly is discouraged. Use Nokogiri::XML::SAX::Parser.parse_file which
7336
+ # is more convenient for most use cases.
7337
+ #
7338
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#97
7339
+ def file(input, encoding = T.unsafe(nil)); end
7340
+
7341
+ # :call-seq:
7342
+ # io(input)
7343
+ # io(input, encoding)
7344
+ #
7345
+ # Create a parser context for an +input+ IO which will assume +encoding+
7346
+ #
7347
+ # [Parameters]
7348
+ # - +io+ (IO) The readable IO object from which to read input
7349
+ # - +encoding+ (optional) (Encoding) The +Encoding+ to use, or the name of an
7350
+ # encoding to use (default +nil+, encoding will be autodetected)
7351
+ #
7352
+ # [Returns] Nokogiri::XML::SAX::ParserContext
7353
+ #
7354
+ # 💡 Calling this method directly is discouraged. Use Nokogiri::XML::SAX::Parser parse
7355
+ # methods which are more convenient for most use cases.
7356
+ #
7357
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#56
7358
+ def io(input, encoding = T.unsafe(nil)); end
7359
+
7360
+ # :call-seq:
7361
+ # memory(input)
7362
+ # memory(input, encoding)
7363
+ #
7364
+ # Create a parser context for the +input+ String.
7365
+ #
7366
+ # [Parameters]
7367
+ # - +input+ (String) The input string to be parsed.
7368
+ # - +encoding+ (optional) (Encoding, String) The +Encoding+ to use, or the name of an encoding to
7369
+ # use (default +nil+, encoding will be autodetected)
7370
+ #
7371
+ # [Returns] Nokogiri::XML::SAX::ParserContext
7372
+ #
7373
+ # 💡 Calling this method directly is discouraged. Use Nokogiri::XML::SAX::Parser parse methods
7374
+ # which are more convenient for most use cases.
7375
+ #
7376
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#77
7377
+ def memory(input, encoding = T.unsafe(nil)); end
6596
7378
 
6597
- # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#11
6598
- def new(thing, encoding = T.unsafe(nil)); end
7379
+ def native_file(_arg0, _arg1); end
7380
+ def native_io(_arg0, _arg1); end
7381
+ def native_memory(_arg0, _arg1); end
7382
+
7383
+ # :call-seq:
7384
+ # new(input)
7385
+ # new(input, encoding)
7386
+ #
7387
+ # Create a parser context for an IO or a String. This is a shorthand method for
7388
+ # ParserContext.io and ParserContext.memory.
7389
+ #
7390
+ # [Parameters]
7391
+ # - +input+ (IO, String) A String or a readable IO object
7392
+ # - +encoding+ (optional) (Encoding) The +Encoding+ to use, or the name of an
7393
+ # encoding to use (default +nil+, encoding will be autodetected)
7394
+ #
7395
+ # If +input+ quacks like a readable IO object, this method forwards to ParserContext.io,
7396
+ # otherwise it forwards to ParserContext.memory.
7397
+ #
7398
+ # [Returns] Nokogiri::XML::SAX::ParserContext
7399
+ #
7400
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#31
7401
+ def new(input, encoding = T.unsafe(nil)); end
7402
+
7403
+ private
7404
+
7405
+ # source://nokogiri//lib/nokogiri/xml/sax/parser_context.rb#101
7406
+ def resolve_encoding(encoding); end
6599
7407
  end
6600
7408
  end
6601
7409
 
@@ -6651,7 +7459,10 @@ class Nokogiri::XML::SAX::PushParser
6651
7459
  # Finish the parsing. This method is only necessary for
6652
7460
  # Nokogiri::XML::SAX::Document#end_document to be called.
6653
7461
  #
6654
- # source://nokogiri//lib/nokogiri/xml/sax/push_parser.rb#55
7462
+ # ⚠ Note that empty documents are treated as an error when using the libxml2-based
7463
+ # implementation (CRuby), but are fine when using the Xerces-based implementation (JRuby).
7464
+ #
7465
+ # source://nokogiri//lib/nokogiri/xml/sax/push_parser.rb#58
6655
7466
  def finish; end
6656
7467
 
6657
7468
  def options; end
@@ -6671,66 +7482,112 @@ class Nokogiri::XML::SAX::PushParser
6671
7482
  def native_write(_arg0, _arg1); end
6672
7483
  end
6673
7484
 
6674
- # Nokogiri::XML::Schema is used for validating XML against a schema
6675
- # (usually from an xsd file).
7485
+ # Nokogiri::XML::Schema is used for validating \XML against an \XSD schema definition.
6676
7486
  #
6677
- # == Synopsis
7487
+ # Since v1.11.0, Schema treats inputs as *untrusted* by default, and so external entities are
7488
+ # not resolved from the network (+http://+ or +ftp://+). When parsing a trusted document, the
7489
+ # caller may turn off the +NONET+ option via the ParseOptions to (re-)enable external entity
7490
+ # resolution over a network connection.
6678
7491
  #
6679
- # Validate an XML document against a Schema. Loop over the errors that
6680
- # are returned and print them out:
7492
+ # 🛡 Before v1.11.0, documents were "trusted" by default during schema parsing which was counter
7493
+ # to Nokogiri's "untrusted by default" security policy.
6681
7494
  #
6682
- # xsd = Nokogiri::XML::Schema(File.read(PO_SCHEMA_FILE))
6683
- # doc = Nokogiri::XML(File.read(PO_XML_FILE))
7495
+ # *Example:* Determine whether an \XML document is valid.
6684
7496
  #
6685
- # xsd.validate(doc).each do |error|
6686
- # puts error.message
6687
- # end
7497
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7498
+ # doc = Nokogiri::XML::Document.parse(File.read(XML_FILE))
7499
+ # schema.valid?(doc) # Boolean
7500
+ #
7501
+ # *Example:* Validate an \XML document against an \XSD schema, and capture any errors that are found.
7502
+ #
7503
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7504
+ # doc = Nokogiri::XML::Document.parse(File.read(XML_FILE))
7505
+ # errors = schema.validate(doc) # Array<SyntaxError>
6688
7506
  #
6689
- # The list of errors are Nokogiri::XML::SyntaxError objects.
7507
+ # *Example:* Validate an \XML document using a Document containing an \XSD schema definition.
6690
7508
  #
6691
- # NOTE: As of v1.11.0, Schema treats inputs as UNTRUSTED by default, and so external entities
6692
- # are not resolved from the network (`http://` or `ftp://`). Previously, parsing treated
6693
- # documents as "trusted" by default which was counter to Nokogiri's "untrusted by default"
6694
- # security policy. If a document is trusted, then the caller may turn off the NONET option via
6695
- # the ParseOptions to re-enable external entity resolution over a network connection.
7509
+ # schema_doc = Nokogiri::XML::Document.parse(File.read(RELAX_NG_FILE))
7510
+ # schema = Nokogiri::XML::Schema.from_document(schema_doc)
7511
+ # doc = Nokogiri::XML::Document.parse(File.read(XML_FILE))
7512
+ # schema.valid?(doc) # Boolean
6696
7513
  #
6697
- # source://nokogiri//lib/nokogiri/xml/schema.rb#37
7514
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#45
6698
7515
  class Nokogiri::XML::Schema
6699
- # Errors while parsing the schema file
7516
+ # The errors found while parsing the \XSD
6700
7517
  #
6701
- # source://nokogiri//lib/nokogiri/xml/schema.rb#39
7518
+ # [Returns] Array<Nokogiri::XML::SyntaxError>
7519
+ #
7520
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#49
6702
7521
  def errors; end
6703
7522
 
6704
- # Errors while parsing the schema file
7523
+ # The errors found while parsing the \XSD
7524
+ #
7525
+ # [Returns] Array<Nokogiri::XML::SyntaxError>
6705
7526
  #
6706
- # source://nokogiri//lib/nokogiri/xml/schema.rb#39
7527
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#49
6707
7528
  def errors=(_arg0); end
6708
7529
 
6709
- # The Nokogiri::XML::ParseOptions used to parse the schema
7530
+ # The options used to parse the schema
6710
7531
  #
6711
- # source://nokogiri//lib/nokogiri/xml/schema.rb#41
7532
+ # [Returns] Nokogiri::XML::ParseOptions
7533
+ #
7534
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#54
6712
7535
  def parse_options; end
6713
7536
 
6714
- # The Nokogiri::XML::ParseOptions used to parse the schema
7537
+ # The options used to parse the schema
7538
+ #
7539
+ # [Returns] Nokogiri::XML::ParseOptions
6715
7540
  #
6716
- # source://nokogiri//lib/nokogiri/xml/schema.rb#41
7541
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#54
6717
7542
  def parse_options=(_arg0); end
6718
7543
 
6719
- # Returns true if +thing+ is a valid Nokogiri::XML::Document or
6720
- # file.
7544
+ # :call-seq: valid?(input) Boolean
7545
+ #
7546
+ # Validate +input+ and return a Boolean indicating whether the document is valid
7547
+ #
7548
+ # [Parameters]
7549
+ # - +input+ (Nokogiri::XML::Document | String)
7550
+ # A parsed document, or a string containing a local filename.
7551
+ #
7552
+ # [Returns] Boolean
7553
+ #
7554
+ # *Example:* Validate an existing XML::Document
7555
+ #
7556
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7557
+ # return unless schema.valid?(document)
7558
+ #
7559
+ # *Example:* Validate an \XML document on disk
7560
+ #
7561
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7562
+ # return unless schema.valid?("/path/to/file.xml")
6721
7563
  #
6722
7564
  # @return [Boolean]
6723
7565
  #
6724
- # source://nokogiri//lib/nokogiri/xml/schema.rb#68
6725
- def valid?(thing); end
7566
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#135
7567
+ def valid?(input); end
6726
7568
 
6727
- # Validate +thing+ against this schema. +thing+ can be a
6728
- # Nokogiri::XML::Document object, or a filename. An Array of
6729
- # Nokogiri::XML::SyntaxError objects found while validating the
6730
- # +thing+ is returned.
7569
+ # :call-seq: validate(input) Array<SyntaxError>
6731
7570
  #
6732
- # source://nokogiri//lib/nokogiri/xml/schema.rb#55
6733
- def validate(thing); end
7571
+ # Validate +input+ and return any errors that are found.
7572
+ #
7573
+ # [Parameters]
7574
+ # - +input+ (Nokogiri::XML::Document | String)
7575
+ # A parsed document, or a string containing a local filename.
7576
+ #
7577
+ # [Returns] Array<SyntaxError>
7578
+ #
7579
+ # *Example:* Validate an existing XML::Document, and capture any errors that are found.
7580
+ #
7581
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7582
+ # errors = schema.validate(document)
7583
+ #
7584
+ # *Example:* Validate an \XML document on disk, and capture any errors that are found.
7585
+ #
7586
+ # schema = Nokogiri::XML::Schema.new(File.read(XSD_FILE))
7587
+ # errors = schema.validate("/path/to/file.xml")
7588
+ #
7589
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#104
7590
+ def validate(input); end
6734
7591
 
6735
7592
  private
6736
7593
 
@@ -6740,13 +7597,30 @@ class Nokogiri::XML::Schema
6740
7597
  class << self
6741
7598
  def from_document(*_arg0); end
6742
7599
 
6743
- # Create a new Nokogiri::XML::Schema object using a +string_or_io+
6744
- # object.
7600
+ # :call-seq:
7601
+ # new(input) → Nokogiri::XML::Schema
7602
+ # new(input, parse_options) → Nokogiri::XML::Schema
7603
+ #
7604
+ # Parse an \XSD schema definition from a String or IO to create a new Nokogiri::XML::Schema
7605
+ #
7606
+ # [Parameters]
7607
+ # - +input+ (String | IO) \XSD schema definition
7608
+ # - +parse_options+ (Nokogiri::XML::ParseOptions)
7609
+ # Defaults to Nokogiri::XML::ParseOptions::DEFAULT_SCHEMA
6745
7610
  #
6746
- # source://nokogiri//lib/nokogiri/xml/schema.rb#46
6747
- def new(string_or_io, options = T.unsafe(nil)); end
7611
+ # [Returns] Nokogiri::XML::Schema
7612
+ #
7613
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#69
7614
+ def new(input, parse_options_ = T.unsafe(nil), parse_options: T.unsafe(nil)); end
6748
7615
 
6749
- def read_memory(*_arg0); end
7616
+ # :call-seq:
7617
+ # read_memory(input) → Nokogiri::XML::Schema
7618
+ # read_memory(input, parse_options) → Nokogiri::XML::Schema
7619
+ #
7620
+ # Convenience method for Nokogiri::XML::Schema.new
7621
+ #
7622
+ # source://nokogiri//lib/nokogiri/xml/schema.rb#78
7623
+ def read_memory(*_arg0, **_arg1, &_arg2); end
6750
7624
  end
6751
7625
  end
6752
7626
 
@@ -6978,7 +7852,7 @@ module Nokogiri::XML::Searchable
6978
7852
  # source://nokogiri//lib/nokogiri/xml/searchable.rb#241
6979
7853
  def css_rules_to_xpath(rules, ns); end
6980
7854
 
6981
- # source://nokogiri//lib/nokogiri/xml/searchable.rb#259
7855
+ # source://nokogiri//lib/nokogiri/xml/searchable.rb#257
6982
7856
  def extract_params(params); end
6983
7857
 
6984
7858
  # source://nokogiri//lib/nokogiri/xml/searchable.rb#229
@@ -7004,97 +7878,113 @@ Nokogiri::XML::Searchable::LOOKS_LIKE_XPATH = T.let(T.unsafe(nil), Regexp)
7004
7878
  class Nokogiri::XML::SyntaxError < ::Nokogiri::SyntaxError
7005
7879
  # Returns the value of attribute code.
7006
7880
  #
7007
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#10
7881
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#23
7008
7882
  def code; end
7009
7883
 
7010
7884
  # Returns the value of attribute column.
7011
7885
  #
7012
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#18
7886
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#40
7013
7887
  def column; end
7014
7888
 
7015
7889
  # Returns the value of attribute domain.
7016
7890
  #
7017
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#9
7891
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#22
7018
7892
  def domain; end
7019
7893
 
7020
7894
  # return true if this is an error
7021
7895
  #
7022
7896
  # @return [Boolean]
7023
7897
  #
7024
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#34
7898
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#56
7025
7899
  def error?; end
7026
7900
 
7027
7901
  # return true if this error is fatal
7028
7902
  #
7029
7903
  # @return [Boolean]
7030
7904
  #
7031
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#40
7905
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#62
7032
7906
  def fatal?; end
7033
7907
 
7034
7908
  # Returns the value of attribute file.
7035
7909
  #
7036
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#12
7910
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#25
7037
7911
  def file; end
7038
7912
 
7039
7913
  # Returns the value of attribute int1.
7040
7914
  #
7041
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#17
7915
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#39
7042
7916
  def int1; end
7043
7917
 
7044
7918
  # Returns the value of attribute level.
7045
7919
  #
7046
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#11
7920
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#24
7047
7921
  def level; end
7048
7922
 
7049
7923
  # Returns the value of attribute line.
7050
7924
  #
7051
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#13
7925
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#26
7052
7926
  def line; end
7053
7927
 
7054
7928
  # return true if this is a non error
7055
7929
  #
7056
7930
  # @return [Boolean]
7057
7931
  #
7058
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#22
7932
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#44
7059
7933
  def none?; end
7060
7934
 
7935
+ # The XPath path of the node that caused the error when validating a `Nokogiri::XML::Document`.
7936
+ #
7937
+ # This attribute will only be non-nil when the error is emitted by `Schema#validate` on
7938
+ # Document objects. It will return `nil` for DOM parsing errors and for errors emitted during
7939
+ # Schema validation of files.
7940
+ #
7941
+ # ⚠ `#path` is not supported on JRuby, where it will always return `nil`.
7942
+ #
7943
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#35
7944
+ def path; end
7945
+
7061
7946
  # Returns the value of attribute str1.
7062
7947
  #
7063
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#14
7948
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#36
7064
7949
  def str1; end
7065
7950
 
7066
7951
  # Returns the value of attribute str2.
7067
7952
  #
7068
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#15
7953
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#37
7069
7954
  def str2; end
7070
7955
 
7071
7956
  # Returns the value of attribute str3.
7072
7957
  #
7073
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#16
7958
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#38
7074
7959
  def str3; end
7075
7960
 
7076
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#44
7961
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#66
7077
7962
  def to_s; end
7078
7963
 
7079
7964
  # return true if this is a warning
7080
7965
  #
7081
7966
  # @return [Boolean]
7082
7967
  #
7083
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#28
7968
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#50
7084
7969
  def warning?; end
7085
7970
 
7086
7971
  private
7087
7972
 
7088
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#53
7973
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#75
7089
7974
  def level_to_s; end
7090
7975
 
7091
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#65
7976
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#87
7092
7977
  def location_to_s; end
7093
7978
 
7094
7979
  # @return [Boolean]
7095
7980
  #
7096
- # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#61
7981
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#83
7097
7982
  def nil_or_zero?(attribute); end
7983
+
7984
+ class << self
7985
+ # source://nokogiri//lib/nokogiri/xml/syntax_error.rb#10
7986
+ def aggregate(errors); end
7987
+ end
7098
7988
  end
7099
7989
 
7100
7990
  # source://nokogiri//lib/nokogiri/xml/text.rb#5
@@ -7109,17 +7999,17 @@ end
7109
7999
 
7110
8000
  # Original C14N 1.0 spec canonicalization
7111
8001
  #
7112
- # source://nokogiri//lib/nokogiri/xml.rb#14
8002
+ # source://nokogiri//lib/nokogiri/xml.rb#13
7113
8003
  Nokogiri::XML::XML_C14N_1_0 = T.let(T.unsafe(nil), Integer)
7114
8004
 
7115
8005
  # C14N 1.1 spec canonicalization
7116
8006
  #
7117
- # source://nokogiri//lib/nokogiri/xml.rb#18
8007
+ # source://nokogiri//lib/nokogiri/xml.rb#17
7118
8008
  Nokogiri::XML::XML_C14N_1_1 = T.let(T.unsafe(nil), Integer)
7119
8009
 
7120
8010
  # Exclusive C14N 1.0 spec canonicalization
7121
8011
  #
7122
- # source://nokogiri//lib/nokogiri/xml.rb#16
8012
+ # source://nokogiri//lib/nokogiri/xml.rb#15
7123
8013
  Nokogiri::XML::XML_C14N_EXCLUSIVE_1_0 = T.let(T.unsafe(nil), Integer)
7124
8014
 
7125
8015
  # source://nokogiri//lib/nokogiri/xml/xpath.rb#5
@@ -7171,7 +8061,7 @@ end
7171
8061
  # See Nokogiri::XSLT::Stylesheet for creating and manipulating
7172
8062
  # Stylesheet object.
7173
8063
  #
7174
- # source://nokogiri//lib/nokogiri/xslt.rb#21
8064
+ # source://nokogiri//lib/nokogiri/xslt.rb#15
7175
8065
  module Nokogiri::XSLT
7176
8066
  class << self
7177
8067
  # :call-seq:
@@ -7227,7 +8117,7 @@ module Nokogiri::XSLT
7227
8117
  # # " <reverse>raB</reverse>\n" +
7228
8118
  # # "</reversed>\n"
7229
8119
  #
7230
- # source://nokogiri//lib/nokogiri/xslt.rb#76
8120
+ # source://nokogiri//lib/nokogiri/xslt.rb#70
7231
8121
  def parse(string, modules = T.unsafe(nil)); end
7232
8122
 
7233
8123
  # :call-seq:
@@ -7241,7 +8131,7 @@ module Nokogiri::XSLT
7241
8131
  #
7242
8132
  # [Returns] Array of string parameters, with quotes correctly escaped for use with XSLT::Stylesheet.transform
7243
8133
  #
7244
- # source://nokogiri//lib/nokogiri/xslt.rb#100
8134
+ # source://nokogiri//lib/nokogiri/xslt.rb#94
7245
8135
  def quote_params(params); end
7246
8136
 
7247
8137
  def register(_arg0, _arg1); end