lunchmoney 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  4. data/.github/workflows/ci.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/.simplecov +1 -0
  7. data/Gemfile +2 -2
  8. data/Gemfile.lock +65 -57
  9. data/lib/lunchmoney/api.rb +1 -0
  10. data/lib/lunchmoney/calls/categories.rb +0 -2
  11. data/lib/lunchmoney/calls/transactions.rb +0 -1
  12. data/lib/lunchmoney/deprecate.rb +35 -0
  13. data/lib/lunchmoney/objects/asset.rb +6 -1
  14. data/lib/lunchmoney/objects/plaid_account.rb +6 -1
  15. data/lib/lunchmoney/version.rb +1 -1
  16. data/sorbet/rbi/annotations/activesupport.rbi +5 -0
  17. data/sorbet/rbi/gems/{activesupport@7.2.1.rbi → activesupport@7.2.2.1.rbi} +109 -86
  18. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  19. data/sorbet/rbi/gems/{concurrent-ruby@1.3.4.rbi → concurrent-ruby@1.3.5.rbi} +44 -32
  20. data/sorbet/rbi/gems/{connection_pool@2.4.1.rbi → connection_pool@2.5.0.rbi} +1 -0
  21. data/sorbet/rbi/gems/{dotenv@3.1.2.rbi → dotenv@3.1.7.rbi} +21 -29
  22. data/sorbet/rbi/gems/{erubi@1.13.0.rbi → erubi@1.13.1.rbi} +14 -9
  23. data/sorbet/rbi/gems/{faraday-net_http@3.1.1.rbi → faraday-net_http@3.4.0.rbi} +34 -34
  24. data/sorbet/rbi/gems/{faraday@2.10.1.rbi → faraday@2.12.2.rbi} +43 -34
  25. data/sorbet/rbi/gems/{i18n@1.14.5.rbi → i18n@1.14.7.rbi} +80 -80
  26. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.10.2.rbi} +697 -146
  27. data/sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi +9 -0
  28. data/sorbet/rbi/gems/{logger@1.6.0.rbi → logger@1.6.6.rbi} +109 -72
  29. data/sorbet/rbi/gems/{minitest@5.25.1.rbi → minitest@5.25.5.rbi} +227 -220
  30. data/sorbet/rbi/gems/{mocha@2.4.5.rbi → mocha@2.7.1.rbi} +154 -118
  31. data/sorbet/rbi/gems/{net-http@0.4.1.rbi → net-http@0.6.0.rbi} +360 -181
  32. data/sorbet/rbi/gems/{parser@3.3.4.2.rbi → parser@3.3.7.1.rbi} +23 -17
  33. data/sorbet/rbi/gems/{prism@0.30.0.rbi → prism@1.4.0.rbi} +12440 -9920
  34. data/sorbet/rbi/gems/{rack@3.1.7.rbi → rack@3.1.9.rbi} +91 -83
  35. data/sorbet/rbi/gems/rbi@0.3.1.rbi +6599 -0
  36. data/sorbet/rbi/gems/rbs@3.9.0.rbi +6978 -0
  37. data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.10.0.rbi} +193 -170
  38. data/sorbet/rbi/gems/{rexml@3.3.6.rbi → rexml@3.4.1.rbi} +541 -114
  39. data/sorbet/rbi/gems/{rubocop-ast@1.32.1.rbi → rubocop-ast@1.38.0.rbi} +1224 -622
  40. data/sorbet/rbi/gems/{rubocop-minitest@0.35.1.rbi → rubocop-minitest@0.36.0.rbi} +5 -5
  41. data/sorbet/rbi/gems/{rubocop-rails@2.26.0.rbi → rubocop-rails@2.29.1.rbi} +9412 -6480
  42. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.5.rbi → rubocop-sorbet@0.8.7.rbi} +44 -1
  43. data/sorbet/rbi/gems/{rubocop@1.65.1.rbi → rubocop@1.71.2.rbi} +5606 -3467
  44. data/sorbet/rbi/gems/{securerandom@0.3.1.rbi → securerandom@0.4.1.rbi} +7 -5
  45. data/sorbet/rbi/gems/{spoom@1.4.2.rbi → spoom@1.6.1.rbi} +3315 -973
  46. data/sorbet/rbi/gems/{tapioca@0.16.1.rbi → tapioca@0.16.11.rbi} +300 -234
  47. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +58 -31
  48. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  49. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  50. data/sorbet/rbi/gems/{uri@0.13.0.rbi → uri@1.0.3.rbi} +278 -256
  51. data/sorbet/rbi/gems/{webmock@3.23.1.rbi → webmock@3.25.1.rbi} +101 -78
  52. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -235
  53. metadata +42 -44
  54. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  55. data/sorbet/rbi/gems/rbi@0.1.14.rbi +0 -3305
  56. data/sorbet/rbi/gems/strscan@3.1.0.rbi +0 -9
  57. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  58. /data/sorbet/rbi/gems/{bigdecimal@3.1.8.rbi → bigdecimal@3.1.9.rbi} +0 -0
  59. /data/sorbet/rbi/gems/{hashdiff@1.1.1.rbi → hashdiff@1.1.2.rbi} +0 -0
@@ -113,7 +113,7 @@ class REXML::Attribute
113
113
 
114
114
  # Returns a copy of this attribute
115
115
  #
116
- # source://rexml//lib/rexml/attribute.rb#163
116
+ # source://rexml//lib/rexml/attribute.rb#164
117
117
  def clone; end
118
118
 
119
119
  # source://rexml//lib/rexml/attribute.rb#132
@@ -129,7 +129,7 @@ class REXML::Attribute
129
129
  #
130
130
  # Returns this attribute
131
131
  #
132
- # source://rexml//lib/rexml/attribute.rb#171
132
+ # source://rexml//lib/rexml/attribute.rb#172
133
133
  def element=(element); end
134
134
 
135
135
  # Creates (and returns) a hash from both the name and value
@@ -137,7 +137,7 @@ class REXML::Attribute
137
137
  # source://rexml//lib/rexml/attribute.rb#111
138
138
  def hash; end
139
139
 
140
- # source://rexml//lib/rexml/attribute.rb#197
140
+ # source://rexml//lib/rexml/attribute.rb#198
141
141
  def inspect; end
142
142
 
143
143
  # Returns the namespace URL, if defined, or nil otherwise
@@ -165,13 +165,13 @@ class REXML::Attribute
165
165
  # source://rexml//lib/rexml/attribute.rb#95
166
166
  def namespace(arg = T.unsafe(nil)); end
167
167
 
168
- # source://rexml//lib/rexml/attribute.rb#193
168
+ # source://rexml//lib/rexml/attribute.rb#194
169
169
  def node_type; end
170
170
 
171
171
  # The normalized value of this attribute. That is, the attribute with
172
172
  # entities intact.
173
173
  #
174
- # source://rexml//lib/rexml/attribute.rb#157
174
+ # source://rexml//lib/rexml/attribute.rb#158
175
175
  def normalized=(new_normalized); end
176
176
 
177
177
  # Returns the namespace of the attribute.
@@ -191,7 +191,7 @@ class REXML::Attribute
191
191
  #
192
192
  # This method is usually not called directly.
193
193
  #
194
- # source://rexml//lib/rexml/attribute.rb#184
194
+ # source://rexml//lib/rexml/attribute.rb#185
195
195
  def remove; end
196
196
 
197
197
  # Returns the attribute value, with entities replaced
@@ -217,10 +217,10 @@ class REXML::Attribute
217
217
 
218
218
  # Writes this attribute (EG, puts 'key="value"' to the output)
219
219
  #
220
- # source://rexml//lib/rexml/attribute.rb#189
220
+ # source://rexml//lib/rexml/attribute.rb#190
221
221
  def write(output, indent = T.unsafe(nil)); end
222
222
 
223
- # source://rexml//lib/rexml/attribute.rb#203
223
+ # source://rexml//lib/rexml/attribute.rb#204
224
224
  def xpath; end
225
225
  end
226
226
 
@@ -1038,7 +1038,7 @@ class REXML::Document < ::REXML::Element
1038
1038
  # d.add(REXML::Element.new('foo'))
1039
1039
  # d.to_s # => "<foo/>"
1040
1040
  #
1041
- # source://rexml//lib/rexml/document.rb#170
1041
+ # source://rexml//lib/rexml/document.rb#172
1042
1042
  def <<(child); end
1043
1043
 
1044
1044
  # :call-seq:
@@ -1075,7 +1075,7 @@ class REXML::Document < ::REXML::Element
1075
1075
  # d.add(REXML::Element.new('foo'))
1076
1076
  # d.to_s # => "<foo/>"
1077
1077
  #
1078
- # source://rexml//lib/rexml/document.rb#170
1078
+ # source://rexml//lib/rexml/document.rb#172
1079
1079
  def add(child); end
1080
1080
 
1081
1081
  # :call-seq:
@@ -1085,7 +1085,7 @@ class REXML::Document < ::REXML::Element
1085
1085
  #
1086
1086
  # REXML::Element.add_element(name_or_element, attributes)
1087
1087
  #
1088
- # source://rexml//lib/rexml/document.rb#209
1088
+ # source://rexml//lib/rexml/document.rb#211
1089
1089
  def add_element(arg = T.unsafe(nil), arg2 = T.unsafe(nil)); end
1090
1090
 
1091
1091
  # :call-seq:
@@ -1094,7 +1094,7 @@ class REXML::Document < ::REXML::Element
1094
1094
  # Returns the new document resulting from executing
1095
1095
  # <tt>Document.new(self)</tt>. See Document.new.
1096
1096
  #
1097
- # source://rexml//lib/rexml/document.rb#120
1097
+ # source://rexml//lib/rexml/document.rb#122
1098
1098
  def clone; end
1099
1099
 
1100
1100
  # :call-seq:
@@ -1107,10 +1107,10 @@ class REXML::Document < ::REXML::Element
1107
1107
  # d = REXML::Document.new('')
1108
1108
  # d.doctype.class # => nil
1109
1109
  #
1110
- # source://rexml//lib/rexml/document.rb#241
1110
+ # source://rexml//lib/rexml/document.rb#243
1111
1111
  def doctype; end
1112
1112
 
1113
- # source://rexml//lib/rexml/document.rb#442
1113
+ # source://rexml//lib/rexml/document.rb#446
1114
1114
  def document; end
1115
1115
 
1116
1116
  # :call-seq:
@@ -1123,20 +1123,39 @@ class REXML::Document < ::REXML::Element
1123
1123
  # d = REXML::Document.new('')
1124
1124
  # d.encoding # => "UTF-8"
1125
1125
  #
1126
- # source://rexml//lib/rexml/document.rb#290
1126
+ # source://rexml//lib/rexml/document.rb#292
1127
1127
  def encoding; end
1128
1128
 
1129
1129
  # Returns the value of attribute entity_expansion_count.
1130
1130
  #
1131
- # source://rexml//lib/rexml/document.rb#433
1131
+ # source://rexml//lib/rexml/document.rb#435
1132
1132
  def entity_expansion_count; end
1133
1133
 
1134
+ # Sets the attribute entity_expansion_limit
1135
+ #
1136
+ # @param value the value to set the attribute entity_expansion_limit to.
1137
+ #
1138
+ # source://rexml//lib/rexml/document.rb#436
1139
+ def entity_expansion_limit=(_arg0); end
1140
+
1141
+ # Returns the value of attribute entity_expansion_text_limit.
1142
+ #
1143
+ # source://rexml//lib/rexml/document.rb#437
1144
+ def entity_expansion_text_limit; end
1145
+
1146
+ # Sets the attribute entity_expansion_text_limit
1147
+ #
1148
+ # @param value the value to set the attribute entity_expansion_text_limit to.
1149
+ #
1150
+ # source://rexml//lib/rexml/document.rb#437
1151
+ def entity_expansion_text_limit=(_arg0); end
1152
+
1134
1153
  # :call-seq:
1135
1154
  # expanded_name -> empty_string
1136
1155
  #
1137
1156
  # Returns an empty string.
1138
1157
  #
1139
- # source://rexml//lib/rexml/document.rb#129
1158
+ # source://rexml//lib/rexml/document.rb#131
1140
1159
  def expanded_name; end
1141
1160
 
1142
1161
  # :call-seq:
@@ -1146,7 +1165,7 @@ class REXML::Document < ::REXML::Element
1146
1165
  # d = doc_type
1147
1166
  # d ? d.name : "UNDEFINED"
1148
1167
  #
1149
- # source://rexml//lib/rexml/document.rb#129
1168
+ # source://rexml//lib/rexml/document.rb#131
1150
1169
  def name; end
1151
1170
 
1152
1171
  # :call-seq:
@@ -1154,10 +1173,10 @@ class REXML::Document < ::REXML::Element
1154
1173
  #
1155
1174
  # Returns the symbol +:document+.
1156
1175
  #
1157
- # source://rexml//lib/rexml/document.rb#110
1176
+ # source://rexml//lib/rexml/document.rb#112
1158
1177
  def node_type; end
1159
1178
 
1160
- # source://rexml//lib/rexml/document.rb#435
1179
+ # source://rexml//lib/rexml/document.rb#439
1161
1180
  def record_entity_expansion; end
1162
1181
 
1163
1182
  # :call-seq:
@@ -1170,7 +1189,7 @@ class REXML::Document < ::REXML::Element
1170
1189
  # d = REXML::Document.new('')
1171
1190
  # d.root # => nil
1172
1191
  #
1173
- # source://rexml//lib/rexml/document.rb#225
1192
+ # source://rexml//lib/rexml/document.rb#227
1174
1193
  def root; end
1175
1194
 
1176
1195
  # :call-seq:
@@ -1186,7 +1205,7 @@ class REXML::Document < ::REXML::Element
1186
1205
  #
1187
1206
  # @return [Boolean]
1188
1207
  #
1189
- # source://rexml//lib/rexml/document.rb#305
1208
+ # source://rexml//lib/rexml/document.rb#307
1190
1209
  def stand_alone?; end
1191
1210
 
1192
1211
  # :call-seq:
@@ -1200,7 +1219,7 @@ class REXML::Document < ::REXML::Element
1200
1219
  # d = REXML::Document.new('')
1201
1220
  # d.version # => "1.0"
1202
1221
  #
1203
- # source://rexml//lib/rexml/document.rb#275
1222
+ # source://rexml//lib/rexml/document.rb#277
1204
1223
  def version; end
1205
1224
 
1206
1225
  # :call-seq:
@@ -1259,7 +1278,7 @@ class REXML::Document < ::REXML::Element
1259
1278
  # instead of encoding in XML declaration.
1260
1279
  # Defaults to nil. It means encoding in XML declaration is used.
1261
1280
  #
1262
- # source://rexml//lib/rexml/document.rb#365
1281
+ # source://rexml//lib/rexml/document.rb#367
1263
1282
  def write(*arguments); end
1264
1283
 
1265
1284
  # :call-seq:
@@ -1275,12 +1294,12 @@ class REXML::Document < ::REXML::Element
1275
1294
  # d.xml_decl.class # => REXML::XMLDecl
1276
1295
  # d.xml_decl.to_s # => ""
1277
1296
  #
1278
- # source://rexml//lib/rexml/document.rb#258
1297
+ # source://rexml//lib/rexml/document.rb#260
1279
1298
  def xml_decl; end
1280
1299
 
1281
1300
  private
1282
1301
 
1283
- # source://rexml//lib/rexml/document.rb#447
1302
+ # source://rexml//lib/rexml/document.rb#451
1284
1303
  def build(source); end
1285
1304
 
1286
1305
  class << self
@@ -1288,31 +1307,31 @@ class REXML::Document < ::REXML::Element
1288
1307
  #
1289
1308
  # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
1290
1309
  #
1291
- # source://rexml//lib/rexml/document.rb#415
1310
+ # source://rexml//lib/rexml/document.rb#417
1292
1311
  def entity_expansion_limit; end
1293
1312
 
1294
1313
  # Set the entity expansion limit. By default the limit is set to 10000.
1295
1314
  #
1296
1315
  # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
1297
1316
  #
1298
- # source://rexml//lib/rexml/document.rb#408
1317
+ # source://rexml//lib/rexml/document.rb#410
1299
1318
  def entity_expansion_limit=(val); end
1300
1319
 
1301
1320
  # Get the entity expansion limit. By default the limit is set to 10240.
1302
1321
  #
1303
1322
  # Deprecated. Use REXML::Security.entity_expansion_text_limit instead.
1304
1323
  #
1305
- # source://rexml//lib/rexml/document.rb#429
1324
+ # source://rexml//lib/rexml/document.rb#431
1306
1325
  def entity_expansion_text_limit; end
1307
1326
 
1308
1327
  # Set the entity expansion limit. By default the limit is set to 10240.
1309
1328
  #
1310
1329
  # Deprecated. Use REXML::Security.entity_expansion_text_limit= instead.
1311
1330
  #
1312
- # source://rexml//lib/rexml/document.rb#422
1331
+ # source://rexml//lib/rexml/document.rb#424
1313
1332
  def entity_expansion_text_limit=(val); end
1314
1333
 
1315
- # source://rexml//lib/rexml/document.rb#401
1334
+ # source://rexml//lib/rexml/document.rb#403
1316
1335
  def parse_stream(source, listener); end
1317
1336
  end
1318
1337
  end
@@ -3250,7 +3269,7 @@ class REXML::Entity < ::REXML::Child
3250
3269
  # Returns the value of this entity unprocessed -- raw. This is the
3251
3270
  # normalized value; that is, with all %ent; and &ent; entities intact
3252
3271
  #
3253
- # source://rexml//lib/rexml/entity.rb#83
3272
+ # source://rexml//lib/rexml/entity.rb#86
3254
3273
  def normalized; end
3255
3274
 
3256
3275
  # Returns the value of attribute pubid.
@@ -3265,7 +3284,7 @@ class REXML::Entity < ::REXML::Child
3265
3284
 
3266
3285
  # Returns this entity as a string. See write().
3267
3286
  #
3268
- # source://rexml//lib/rexml/entity.rb#117
3287
+ # source://rexml//lib/rexml/entity.rb#120
3269
3288
  def to_s; end
3270
3289
 
3271
3290
  # Evaluates to the unnormalized value of this entity; that is, replacing
@@ -3288,7 +3307,7 @@ class REXML::Entity < ::REXML::Child
3288
3307
  # indent::
3289
3308
  # *DEPRECATED* and ignored
3290
3309
  #
3291
- # source://rexml//lib/rexml/entity.rb#95
3310
+ # source://rexml//lib/rexml/entity.rb#98
3292
3311
  def write(out, indent = T.unsafe(nil)); end
3293
3312
 
3294
3313
  class << self
@@ -3435,46 +3454,269 @@ class REXML::Formatters::Pretty < ::REXML::Formatters::Default
3435
3454
  def wrap(string, width); end
3436
3455
  end
3437
3456
 
3457
+ # If you add a method, keep in mind two things:
3458
+ # (1) the first argument will always be a list of nodes from which to
3459
+ # filter. In the case of context methods (such as position), the function
3460
+ # should return an array with a value for each child in the array.
3461
+ # (2) all method calls from XML will have "-" replaced with "_".
3462
+ # Therefore, in XML, "local-name()" is identical (and actually becomes)
3463
+ # "local_name()"
3464
+ #
3465
+ # source://rexml//lib/rexml/functions.rb#10
3466
+ module REXML::Functions
3467
+ class << self
3468
+ # source://rexml//lib/rexml/functions.rb#317
3469
+ def boolean(object = T.unsafe(nil)); end
3470
+
3471
+ # source://rexml//lib/rexml/functions.rb#417
3472
+ def ceiling(number); end
3473
+
3474
+ # source://rexml//lib/rexml/functions.rb#370
3475
+ def compare_language(lang1, lang2); end
3476
+
3477
+ # source://rexml//lib/rexml/functions.rb#190
3478
+ def concat(*objects); end
3479
+
3480
+ # Fixed by Mike Stok
3481
+ #
3482
+ # source://rexml//lib/rexml/functions.rb#204
3483
+ def contains(string, test); end
3484
+
3485
+ # source://rexml//lib/rexml/functions.rb#38
3486
+ def context=(value); end
3487
+
3488
+ # Returns the size of the given list of nodes.
3489
+ #
3490
+ # source://rexml//lib/rexml/functions.rb#60
3491
+ def count(node_set); end
3492
+
3493
+ # UNTESTED
3494
+ #
3495
+ # source://rexml//lib/rexml/functions.rb#347
3496
+ def false; end
3497
+
3498
+ # source://rexml//lib/rexml/functions.rb#413
3499
+ def floor(number); end
3500
+
3501
+ # Helper method.
3502
+ #
3503
+ # source://rexml//lib/rexml/functions.rb#87
3504
+ def get_namespace(node_set = T.unsafe(nil)); end
3505
+
3506
+ # Since REXML is non-validating, this method is not implemented as it
3507
+ # requires a DTD
3508
+ #
3509
+ # source://rexml//lib/rexml/functions.rb#66
3510
+ def id(object); end
3511
+
3512
+ # UNTESTED
3513
+ #
3514
+ # source://rexml//lib/rexml/functions.rb#352
3515
+ def lang(language); end
3516
+
3517
+ # Returns the last node of the given list of nodes.
3518
+ #
3519
+ # source://rexml//lib/rexml/functions.rb#51
3520
+ def last; end
3521
+
3522
+ # source://rexml//lib/rexml/functions.rb#69
3523
+ def local_name(node_set = T.unsafe(nil)); end
3524
+
3525
+ # source://rexml//lib/rexml/functions.rb#80
3526
+ def name(node_set = T.unsafe(nil)); end
3527
+
3528
+ # source://rexml//lib/rexml/functions.rb#35
3529
+ def namespace_context; end
3530
+
3531
+ # source://rexml//lib/rexml/functions.rb#33
3532
+ def namespace_context=(x); end
3533
+
3534
+ # source://rexml//lib/rexml/functions.rb#76
3535
+ def namespace_uri(node_set = T.unsafe(nil)); end
3536
+
3537
+ # source://rexml//lib/rexml/functions.rb#265
3538
+ def normalize_space(string = T.unsafe(nil)); end
3539
+
3540
+ # UNTESTED
3541
+ #
3542
+ # source://rexml//lib/rexml/functions.rb#337
3543
+ def not(object); end
3544
+
3545
+ # a string that consists of optional whitespace followed by an optional
3546
+ # minus sign followed by a Number followed by whitespace is converted to
3547
+ # the IEEE 754 number that is nearest (according to the IEEE 754
3548
+ # round-to-nearest rule) to the mathematical value represented by the
3549
+ # string; any other string is converted to NaN
3550
+ #
3551
+ # boolean true is converted to 1; boolean false is converted to 0
3552
+ #
3553
+ # a node-set is first converted to a string as if by a call to the string
3554
+ # function and then converted in the same way as a string argument
3555
+ #
3556
+ # an object of a type other than the four basic types is converted to a
3557
+ # number in a way that is dependent on that type
3558
+ #
3559
+ # source://rexml//lib/rexml/functions.rb#387
3560
+ def number(object = T.unsafe(nil)); end
3561
+
3562
+ # source://rexml//lib/rexml/functions.rb#55
3563
+ def position; end
3564
+
3565
+ # source://rexml//lib/rexml/functions.rb#432
3566
+ def processing_instruction(node); end
3567
+
3568
+ # source://rexml//lib/rexml/functions.rb#421
3569
+ def round(number); end
3570
+
3571
+ # source://rexml//lib/rexml/functions.rb#436
3572
+ def send(name, *args); end
3573
+
3574
+ # source://rexml//lib/rexml/functions.rb#26
3575
+ def singleton_method_added(name); end
3576
+
3577
+ # Fixed by Mike Stok
3578
+ #
3579
+ # source://rexml//lib/rexml/functions.rb#199
3580
+ def starts_with(string, test); end
3581
+
3582
+ # A node-set is converted to a string by returning the string-value of the
3583
+ # node in the node-set that is first in document order. If the node-set is
3584
+ # empty, an empty string is returned.
3585
+ #
3586
+ # A number is converted to a string as follows
3587
+ #
3588
+ # NaN is converted to the string NaN
3589
+ #
3590
+ # positive zero is converted to the string 0
3591
+ #
3592
+ # negative zero is converted to the string 0
3593
+ #
3594
+ # positive infinity is converted to the string Infinity
3595
+ #
3596
+ # negative infinity is converted to the string -Infinity
3597
+ #
3598
+ # if the number is an integer, the number is represented in decimal form
3599
+ # as a Number with no decimal point and no leading zeros, preceded by a
3600
+ # minus sign (-) if the number is negative
3601
+ #
3602
+ # otherwise, the number is represented in decimal form as a Number
3603
+ # including a decimal point with at least one digit before the decimal
3604
+ # point and at least one digit after the decimal point, preceded by a
3605
+ # minus sign (-) if the number is negative; there must be no leading zeros
3606
+ # before the decimal point apart possibly from the one required digit
3607
+ # immediately before the decimal point; beyond the one required digit
3608
+ # after the decimal point there must be as many, but only as many, more
3609
+ # digits as are needed to uniquely distinguish the number from all other
3610
+ # IEEE 754 numeric values.
3611
+ #
3612
+ # The boolean false value is converted to the string false. The boolean
3613
+ # true value is converted to the string true.
3614
+ #
3615
+ # An object of a type other than the four basic types is converted to a
3616
+ # string in a way that is dependent on that type.
3617
+ #
3618
+ # source://rexml//lib/rexml/functions.rb#138
3619
+ def string(object = T.unsafe(nil)); end
3620
+
3621
+ # UNTESTED
3622
+ #
3623
+ # source://rexml//lib/rexml/functions.rb#261
3624
+ def string_length(string); end
3625
+
3626
+ # A node-set is converted to a string by
3627
+ # returning the concatenation of the string-value
3628
+ # of each of the children of the node in the
3629
+ # node-set that is first in document order.
3630
+ # If the node-set is empty, an empty string is returned.
3631
+ #
3632
+ # source://rexml//lib/rexml/functions.rb#178
3633
+ def string_value(o); end
3634
+
3635
+ # Take equal portions of Mike Stok and Sean Russell; mix
3636
+ # vigorously, and pour into a tall, chilled glass. Serves 10,000.
3637
+ #
3638
+ # source://rexml//lib/rexml/functions.rb#228
3639
+ def substring(string, start, length = T.unsafe(nil)); end
3640
+
3641
+ # Kouhei fixed this too
3642
+ #
3643
+ # source://rexml//lib/rexml/functions.rb#220
3644
+ def substring_after(string, test); end
3645
+
3646
+ # Kouhei fixed this
3647
+ #
3648
+ # source://rexml//lib/rexml/functions.rb#209
3649
+ def substring_before(string, test); end
3650
+
3651
+ # source://rexml//lib/rexml/functions.rb#408
3652
+ def sum(nodes); end
3653
+
3654
+ # source://rexml//lib/rexml/functions.rb#40
3655
+ def text; end
3656
+
3657
+ # This is entirely Mike Stok's beast
3658
+ #
3659
+ # source://rexml//lib/rexml/functions.rb#275
3660
+ def translate(string, tr1, tr2); end
3661
+
3662
+ # UNTESTED
3663
+ #
3664
+ # source://rexml//lib/rexml/functions.rb#342
3665
+ def true; end
3666
+
3667
+ # source://rexml//lib/rexml/functions.rb#36
3668
+ def variables; end
3669
+
3670
+ # source://rexml//lib/rexml/functions.rb#34
3671
+ def variables=(x); end
3672
+ end
3673
+ end
3674
+
3438
3675
  # A Source that wraps an IO. See the Source class for method
3439
3676
  # documentation
3440
3677
  #
3441
- # source://rexml//lib/rexml/source.rb#182
3678
+ # source://rexml//lib/rexml/source.rb#215
3442
3679
  class REXML::IOSource < ::REXML::Source
3443
3680
  # block_size has been deprecated
3444
3681
  #
3445
3682
  # @return [IOSource] a new instance of IOSource
3446
3683
  #
3447
- # source://rexml//lib/rexml/source.rb#186
3684
+ # source://rexml//lib/rexml/source.rb#219
3448
3685
  def initialize(arg, block_size = T.unsafe(nil), encoding = T.unsafe(nil)); end
3449
3686
 
3450
3687
  # @return the current line in the source
3451
3688
  #
3452
- # source://rexml//lib/rexml/source.rb#274
3689
+ # source://rexml//lib/rexml/source.rb#324
3453
3690
  def current_line; end
3454
3691
 
3455
3692
  # @return [Boolean]
3456
3693
  #
3457
- # source://rexml//lib/rexml/source.rb#269
3694
+ # source://rexml//lib/rexml/source.rb#319
3458
3695
  def empty?; end
3459
3696
 
3460
- # source://rexml//lib/rexml/source.rb#246
3697
+ # source://rexml//lib/rexml/source.rb#279
3461
3698
  def ensure_buffer; end
3462
3699
 
3463
- # source://rexml//lib/rexml/source.rb#250
3700
+ # source://rexml//lib/rexml/source.rb#283
3464
3701
  def match(pattern, cons = T.unsafe(nil)); end
3465
3702
 
3466
- # source://rexml//lib/rexml/source.rb#207
3703
+ # @return [Boolean]
3704
+ #
3705
+ # source://rexml//lib/rexml/source.rb#302
3706
+ def match?(pattern, cons = T.unsafe(nil)); end
3707
+
3708
+ # source://rexml//lib/rexml/source.rb#240
3467
3709
  def read(term = T.unsafe(nil), min_bytes = T.unsafe(nil)); end
3468
3710
 
3469
- # source://rexml//lib/rexml/source.rb#228
3711
+ # source://rexml//lib/rexml/source.rb#261
3470
3712
  def read_until(term); end
3471
3713
 
3472
3714
  private
3473
3715
 
3474
- # source://rexml//lib/rexml/source.rb#316
3716
+ # source://rexml//lib/rexml/source.rb#371
3475
3717
  def encoding_updated; end
3476
3718
 
3477
- # source://rexml//lib/rexml/source.rb#296
3719
+ # source://rexml//lib/rexml/source.rb#346
3478
3720
  def readline(term = T.unsafe(nil)); end
3479
3721
  end
3480
3722
 
@@ -3698,6 +3940,54 @@ end
3698
3940
  # source://rexml//lib/rexml/namespace.rb#13
3699
3941
  REXML::Namespace::NAME_WITHOUT_NAMESPACE = T.let(T.unsafe(nil), Regexp)
3700
3942
 
3943
+ # Represents a node in the tree. Nodes are never encountered except as
3944
+ # superclasses of other objects. Nodes have siblings.
3945
+ #
3946
+ # source://rexml//lib/rexml/node.rb#9
3947
+ module REXML::Node
3948
+ # Visit all subnodes of +self+ recursively
3949
+ #
3950
+ # source://rexml//lib/rexml/node.rb#54
3951
+ def each_recursive(&block); end
3952
+
3953
+ # Find (and return) first subnode (recursively) for which the block
3954
+ # evaluates to true. Returns +nil+ if none was found.
3955
+ #
3956
+ # source://rexml//lib/rexml/node.rb#67
3957
+ def find_first_recursive(&block); end
3958
+
3959
+ # source://rexml//lib/rexml/node.rb#39
3960
+ def indent(to, ind); end
3961
+
3962
+ # Returns the position that +self+ holds in its parent's array, indexed
3963
+ # from 1.
3964
+ #
3965
+ # source://rexml//lib/rexml/node.rb#76
3966
+ def index_in_parent; end
3967
+
3968
+ # @return the next sibling (nil if unset)
3969
+ #
3970
+ # source://rexml//lib/rexml/node.rb#11
3971
+ def next_sibling_node; end
3972
+
3973
+ # @return [Boolean]
3974
+ #
3975
+ # source://rexml//lib/rexml/node.rb#48
3976
+ def parent?; end
3977
+
3978
+ # @return the previous sibling (nil if unset)
3979
+ #
3980
+ # source://rexml//lib/rexml/node.rb#17
3981
+ def previous_sibling_node; end
3982
+
3983
+ # indent::
3984
+ # *DEPRECATED* This parameter is now ignored. See the formatters in the
3985
+ # REXML::Formatters package for changing the output style.
3986
+ #
3987
+ # source://rexml//lib/rexml/node.rb#27
3988
+ def to_s(indent = T.unsafe(nil)); end
3989
+ end
3990
+
3701
3991
  # source://rexml//lib/rexml/doctype.rb#280
3702
3992
  class REXML::NotationDecl < ::REXML::Child
3703
3993
  # @return [NotationDecl] a new instance of NotationDecl
@@ -3977,37 +4267,51 @@ end
3977
4267
  class REXML::Parsers::BaseParser
3978
4268
  # @return [BaseParser] a new instance of BaseParser
3979
4269
  #
3980
- # source://rexml//lib/rexml/parsers/baseparser.rb#162
4270
+ # source://rexml//lib/rexml/parsers/baseparser.rb#163
3981
4271
  def initialize(source); end
3982
4272
 
3983
- # source://rexml//lib/rexml/parsers/baseparser.rb#169
4273
+ # source://rexml//lib/rexml/parsers/baseparser.rb#173
3984
4274
  def add_listener(listener); end
3985
4275
 
3986
4276
  # Returns true if there are no more events
3987
4277
  #
3988
4278
  # @return [Boolean]
3989
4279
  #
3990
- # source://rexml//lib/rexml/parsers/baseparser.rb#198
4280
+ # source://rexml//lib/rexml/parsers/baseparser.rb#208
3991
4281
  def empty?; end
3992
4282
 
3993
- # source://rexml//lib/rexml/parsers/baseparser.rb#530
4283
+ # source://rexml//lib/rexml/parsers/baseparser.rb#543
3994
4284
  def entity(reference, entities); end
3995
4285
 
3996
4286
  # Returns the value of attribute entity_expansion_count.
3997
4287
  #
3998
- # source://rexml//lib/rexml/parsers/baseparser.rb#174
4288
+ # source://rexml//lib/rexml/parsers/baseparser.rb#178
3999
4289
  def entity_expansion_count; end
4000
4290
 
4291
+ # Sets the attribute entity_expansion_limit
4292
+ #
4293
+ # @param value the value to set the attribute entity_expansion_limit to.
4294
+ #
4295
+ # source://rexml//lib/rexml/parsers/baseparser.rb#179
4296
+ def entity_expansion_limit=(_arg0); end
4297
+
4298
+ # Sets the attribute entity_expansion_text_limit
4299
+ #
4300
+ # @param value the value to set the attribute entity_expansion_text_limit to.
4301
+ #
4302
+ # source://rexml//lib/rexml/parsers/baseparser.rb#180
4303
+ def entity_expansion_text_limit=(_arg0); end
4304
+
4001
4305
  # Returns true if there are more events. Synonymous with !empty?
4002
4306
  #
4003
4307
  # @return [Boolean]
4004
4308
  #
4005
- # source://rexml//lib/rexml/parsers/baseparser.rb#203
4309
+ # source://rexml//lib/rexml/parsers/baseparser.rb#213
4006
4310
  def has_next?; end
4007
4311
 
4008
4312
  # Escapes all possible entities
4009
4313
  #
4010
- # source://rexml//lib/rexml/parsers/baseparser.rb#541
4314
+ # source://rexml//lib/rexml/parsers/baseparser.rb#554
4011
4315
  def normalize(input, entities = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
4012
4316
 
4013
4317
  # Peek at the +depth+ event in the stack. The first element on the stack
@@ -4017,72 +4321,78 @@ class REXML::Parsers::BaseParser
4017
4321
  # event, so you can effectively pre-parse the entire document (pull the
4018
4322
  # entire thing into memory) using this method.
4019
4323
  #
4020
- # source://rexml//lib/rexml/parsers/baseparser.rb#219
4324
+ # source://rexml//lib/rexml/parsers/baseparser.rb#229
4021
4325
  def peek(depth = T.unsafe(nil)); end
4022
4326
 
4023
- # source://rexml//lib/rexml/parsers/baseparser.rb#188
4327
+ # source://rexml//lib/rexml/parsers/baseparser.rb#198
4024
4328
  def position; end
4025
4329
 
4026
4330
  # Returns the next event. This is a +PullEvent+ object.
4027
4331
  #
4028
- # source://rexml//lib/rexml/parsers/baseparser.rb#234
4332
+ # source://rexml//lib/rexml/parsers/baseparser.rb#244
4029
4333
  def pull; end
4030
4334
 
4335
+ # source://rexml//lib/rexml/parsers/baseparser.rb#187
4336
+ def reset; end
4337
+
4031
4338
  # Returns the value of attribute source.
4032
4339
  #
4033
- # source://rexml//lib/rexml/parsers/baseparser.rb#173
4340
+ # source://rexml//lib/rexml/parsers/baseparser.rb#177
4034
4341
  def source; end
4035
4342
 
4036
- # source://rexml//lib/rexml/parsers/baseparser.rb#176
4343
+ # source://rexml//lib/rexml/parsers/baseparser.rb#182
4037
4344
  def stream=(source); end
4038
4345
 
4039
4346
  # Unescapes all possible entities
4040
4347
  #
4041
- # source://rexml//lib/rexml/parsers/baseparser.rb#557
4348
+ # source://rexml//lib/rexml/parsers/baseparser.rb#570
4042
4349
  def unnormalize(string, entities = T.unsafe(nil), filter = T.unsafe(nil)); end
4043
4350
 
4044
4351
  # Push an event back on the head of the stream. This method
4045
4352
  # has (theoretically) infinite depth.
4046
4353
  #
4047
- # source://rexml//lib/rexml/parsers/baseparser.rb#209
4354
+ # source://rexml//lib/rexml/parsers/baseparser.rb#219
4048
4355
  def unshift(token); end
4049
4356
 
4050
4357
  private
4051
4358
 
4052
- # source://rexml//lib/rexml/parsers/baseparser.rb#602
4359
+ # source://rexml//lib/rexml/parsers/baseparser.rb#619
4053
4360
  def add_namespace(prefix, uri); end
4054
4361
 
4055
4362
  # @return [Boolean]
4056
4363
  #
4057
- # source://rexml//lib/rexml/parsers/baseparser.rb#635
4364
+ # source://rexml//lib/rexml/parsers/baseparser.rb#652
4058
4365
  def need_source_encoding_update?(xml_declaration_encoding); end
4059
4366
 
4060
- # source://rexml//lib/rexml/parsers/baseparser.rb#755
4367
+ # source://rexml//lib/rexml/parsers/baseparser.rb#791
4061
4368
  def parse_attributes(prefixes); end
4062
4369
 
4063
- # source://rexml//lib/rexml/parsers/baseparser.rb#654
4370
+ # source://rexml//lib/rexml/parsers/baseparser.rb#671
4064
4371
  def parse_id(base_error_message, accept_external_id:, accept_public_id:); end
4065
4372
 
4066
- # source://rexml//lib/rexml/parsers/baseparser.rb#682
4373
+ # source://rexml//lib/rexml/parsers/baseparser.rb#699
4067
4374
  def parse_id_invalid_details(accept_external_id:, accept_public_id:); end
4068
4375
 
4069
- # source://rexml//lib/rexml/parsers/baseparser.rb#641
4376
+ # source://rexml//lib/rexml/parsers/baseparser.rb#658
4070
4377
  def parse_name(base_error_message); end
4071
4378
 
4072
- # source://rexml//lib/rexml/parsers/baseparser.rb#617
4379
+ # source://rexml//lib/rexml/parsers/baseparser.rb#634
4073
4380
  def pop_namespaces_restore; end
4074
4381
 
4075
- # source://rexml//lib/rexml/parsers/baseparser.rb#720
4382
+ # source://rexml//lib/rexml/parsers/baseparser.rb#737
4076
4383
  def process_instruction; end
4077
4384
 
4078
- # source://rexml//lib/rexml/parsers/baseparser.rb#244
4385
+ # source://rexml//lib/rexml/parsers/baseparser.rb#254
4079
4386
  def pull_event; end
4080
4387
 
4081
- # source://rexml//lib/rexml/parsers/baseparser.rb#611
4388
+ # source://rexml//lib/rexml/parsers/baseparser.rb#628
4082
4389
  def push_namespaces_restore; end
4083
4390
 
4084
- # source://rexml//lib/rexml/parsers/baseparser.rb#628
4391
+ # source://rexml//lib/rexml/parsers/baseparser.rb#645
4085
4392
  def record_entity_expansion(delta = T.unsafe(nil)); end
4393
+
4394
+ # source://rexml//lib/rexml/parsers/baseparser.rb#777
4395
+ def scan_quote; end
4086
4396
  end
4087
4397
 
4088
4398
  # source://rexml//lib/rexml/parsers/baseparser.rb#130
@@ -4130,6 +4440,9 @@ REXML::Parsers::BaseParser::Private::PEREFERENCE_PATTERN = T.let(T.unsafe(nil),
4130
4440
  # source://rexml//lib/rexml/parsers/baseparser.rb#145
4131
4441
  REXML::Parsers::BaseParser::Private::TAG_PATTERN = T.let(T.unsafe(nil), Regexp)
4132
4442
 
4443
+ # source://rexml//lib/rexml/parsers/baseparser.rb#159
4444
+ REXML::Parsers::BaseParser::Private::XML_PREFIXED_NAMESPACE = T.let(T.unsafe(nil), String)
4445
+
4133
4446
  # source://rexml//lib/rexml/parsers/baseparser.rb#66
4134
4447
  REXML::Parsers::BaseParser::QNAME = T.let(T.unsafe(nil), Regexp)
4135
4448
 
@@ -4150,6 +4463,12 @@ class REXML::Parsers::StreamParser
4150
4463
  def entity_expansion_count; end
4151
4464
 
4152
4465
  # source://rexml//lib/rexml/parsers/streamparser.rb#21
4466
+ def entity_expansion_limit=(limit); end
4467
+
4468
+ # source://rexml//lib/rexml/parsers/streamparser.rb#25
4469
+ def entity_expansion_text_limit=(limit); end
4470
+
4471
+ # source://rexml//lib/rexml/parsers/streamparser.rb#29
4153
4472
  def parse; end
4154
4473
  end
4155
4474
 
@@ -4328,10 +4647,35 @@ class REXML::ReferenceWriter
4328
4647
  def write(output); end
4329
4648
  end
4330
4649
 
4650
+ # source://rexml//lib/rexml/security.rb#3
4651
+ module REXML::Security
4652
+ class << self
4653
+ # Get the entity expansion limit. By default the limit is set to 10000.
4654
+ #
4655
+ # source://rexml//lib/rexml/security.rb#12
4656
+ def entity_expansion_limit; end
4657
+
4658
+ # Set the entity expansion limit. By default the limit is set to 10000.
4659
+ #
4660
+ # source://rexml//lib/rexml/security.rb#7
4661
+ def entity_expansion_limit=(val); end
4662
+
4663
+ # Get the entity expansion limit. By default the limit is set to 10240.
4664
+ #
4665
+ # source://rexml//lib/rexml/security.rb#24
4666
+ def entity_expansion_text_limit; end
4667
+
4668
+ # Set the entity expansion limit. By default the limit is set to 10240.
4669
+ #
4670
+ # source://rexml//lib/rexml/security.rb#19
4671
+ def entity_expansion_text_limit=(val); end
4672
+ end
4673
+ end
4674
+
4331
4675
  # A Source can be searched for patterns, and wraps buffers and other
4332
4676
  # objects and provides consumption of text
4333
4677
  #
4334
- # source://rexml//lib/rexml/source.rb#51
4678
+ # source://rexml//lib/rexml/source.rb#61
4335
4679
  class REXML::Source
4336
4680
  include ::REXML::Encoding
4337
4681
 
@@ -4342,82 +4686,108 @@ class REXML::Source
4342
4686
  # @param encoding if non-null, sets the encoding of the source to this
4343
4687
  # @return [Source] a new instance of Source
4344
4688
  #
4345
- # source://rexml//lib/rexml/source.rb#71
4689
+ # source://rexml//lib/rexml/source.rb#87
4346
4690
  def initialize(arg, encoding = T.unsafe(nil)); end
4347
4691
 
4348
4692
  # The current buffer (what we're going to read next)
4349
4693
  #
4350
- # source://rexml//lib/rexml/source.rb#83
4694
+ # source://rexml//lib/rexml/source.rb#100
4351
4695
  def buffer; end
4352
4696
 
4353
- # source://rexml//lib/rexml/source.rb#93
4697
+ # source://rexml//lib/rexml/source.rb#110
4354
4698
  def buffer_encoding=(encoding); end
4355
4699
 
4356
4700
  # @return the current line in the source
4357
4701
  #
4358
- # source://rexml//lib/rexml/source.rb#142
4702
+ # source://rexml//lib/rexml/source.rb#175
4359
4703
  def current_line; end
4360
4704
 
4361
- # source://rexml//lib/rexml/source.rb#87
4705
+ # source://rexml//lib/rexml/source.rb#104
4362
4706
  def drop_parsed_content; end
4363
4707
 
4364
4708
  # @return [Boolean] true if the Source is exhausted
4365
4709
  #
4366
- # source://rexml//lib/rexml/source.rb#137
4710
+ # source://rexml//lib/rexml/source.rb#170
4367
4711
  def empty?; end
4368
4712
 
4369
4713
  # Returns the value of attribute encoding.
4370
4714
  #
4371
- # source://rexml//lib/rexml/source.rb#55
4715
+ # source://rexml//lib/rexml/source.rb#65
4372
4716
  def encoding; end
4373
4717
 
4374
4718
  # Inherited from Encoding
4375
4719
  # Overridden to support optimized en/decoding
4376
4720
  #
4377
- # source://rexml//lib/rexml/source.rb#99
4721
+ # source://rexml//lib/rexml/source.rb#116
4378
4722
  def encoding=(enc); end
4379
4723
 
4380
- # source://rexml//lib/rexml/source.rb#117
4724
+ # source://rexml//lib/rexml/source.rb#134
4381
4725
  def ensure_buffer; end
4382
4726
 
4383
4727
  # The line number of the last consumed text
4384
4728
  #
4385
- # source://rexml//lib/rexml/source.rb#54
4729
+ # source://rexml//lib/rexml/source.rb#64
4386
4730
  def line; end
4387
4731
 
4388
- # source://rexml//lib/rexml/source.rb#120
4732
+ # source://rexml//lib/rexml/source.rb#137
4389
4733
  def match(pattern, cons = T.unsafe(nil)); end
4390
4734
 
4391
- # source://rexml//lib/rexml/source.rb#128
4735
+ # @return [Boolean]
4736
+ #
4737
+ # source://rexml//lib/rexml/source.rb#145
4738
+ def match?(pattern, cons = T.unsafe(nil)); end
4739
+
4740
+ # source://rexml//lib/rexml/source.rb#161
4741
+ def peek_byte; end
4742
+
4743
+ # source://rexml//lib/rexml/source.rb#153
4392
4744
  def position; end
4393
4745
 
4394
- # source://rexml//lib/rexml/source.rb#132
4746
+ # source://rexml//lib/rexml/source.rb#157
4395
4747
  def position=(pos); end
4396
4748
 
4397
- # source://rexml//lib/rexml/source.rb#104
4749
+ # source://rexml//lib/rexml/source.rb#121
4398
4750
  def read(term = T.unsafe(nil)); end
4399
4751
 
4400
- # source://rexml//lib/rexml/source.rb#107
4752
+ # source://rexml//lib/rexml/source.rb#124
4401
4753
  def read_until(term); end
4402
4754
 
4755
+ # source://rexml//lib/rexml/source.rb#165
4756
+ def scan_byte; end
4757
+
4403
4758
  private
4404
4759
 
4405
- # source://rexml//lib/rexml/source.rb#151
4760
+ # source://rexml//lib/rexml/source.rb#184
4406
4761
  def detect_encoding; end
4407
4762
 
4408
- # source://rexml//lib/rexml/source.rb#169
4763
+ # source://rexml//lib/rexml/source.rb#202
4409
4764
  def encoding_updated; end
4410
4765
  end
4411
4766
 
4412
- # source://rexml//lib/rexml/source.rb#57
4767
+ # source://rexml//lib/rexml/source.rb#67
4413
4768
  module REXML::Source::Private; end
4414
4769
 
4415
- # source://rexml//lib/rexml/source.rb#59
4770
+ # source://rexml//lib/rexml/source.rb#69
4416
4771
  REXML::Source::Private::PRE_DEFINED_TERM_PATTERNS = T.let(T.unsafe(nil), Hash)
4417
4772
 
4418
- # source://rexml//lib/rexml/source.rb#58
4773
+ # source://rexml//lib/rexml/source.rb#68
4419
4774
  REXML::Source::Private::SCANNER_RESET_SIZE = T.let(T.unsafe(nil), Integer)
4420
4775
 
4776
+ # Generates Source-s. USE THIS CLASS.
4777
+ #
4778
+ # source://rexml//lib/rexml/source.rb#38
4779
+ class REXML::SourceFactory
4780
+ class << self
4781
+ # Generates a Source object
4782
+ #
4783
+ # @param arg Either a String, or an IO
4784
+ # @return a Source, or nil if a bad argument was given
4785
+ #
4786
+ # source://rexml//lib/rexml/source.rb#42
4787
+ def create_from(arg); end
4788
+ end
4789
+ end
4790
+
4421
4791
  # Represents text nodes in an XML document
4422
4792
  #
4423
4793
  # source://rexml//lib/rexml/text.rb#11
@@ -4463,7 +4833,7 @@ class REXML::Text < ::REXML::Child
4463
4833
  #
4464
4834
  # @return [Text] a new instance of Text
4465
4835
  #
4466
- # source://rexml//lib/rexml/text.rb#94
4836
+ # source://rexml//lib/rexml/text.rb#79
4467
4837
  def initialize(arg, respect_whitespace = T.unsafe(nil), parent = T.unsafe(nil), raw = T.unsafe(nil), entity_filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
4468
4838
 
4469
4839
  # Appends text to this text node. The text is appended in the +raw+ mode
@@ -4472,36 +4842,36 @@ class REXML::Text < ::REXML::Child
4472
4842
  # +returns+ the text itself to enable method chain like
4473
4843
  # 'text << "XXX" << "YYY"'.
4474
4844
  #
4475
- # source://rexml//lib/rexml/text.rb#214
4845
+ # source://rexml//lib/rexml/text.rb#189
4476
4846
  def <<(to_append); end
4477
4847
 
4478
4848
  # +other+ a String or a Text
4479
4849
  # +returns+ the result of (to_s <=> arg.to_s)
4480
4850
  #
4481
- # source://rexml//lib/rexml/text.rb#223
4851
+ # source://rexml//lib/rexml/text.rb#198
4482
4852
  def <=>(other); end
4483
4853
 
4484
- # source://rexml//lib/rexml/text.rb#204
4854
+ # source://rexml//lib/rexml/text.rb#179
4485
4855
  def clone; end
4486
4856
 
4487
- # source://rexml//lib/rexml/text.rb#227
4857
+ # source://rexml//lib/rexml/text.rb#202
4488
4858
  def doctype; end
4489
4859
 
4490
4860
  # @return [Boolean]
4491
4861
  #
4492
- # source://rexml//lib/rexml/text.rb#199
4862
+ # source://rexml//lib/rexml/text.rb#174
4493
4863
  def empty?; end
4494
4864
 
4495
- # source://rexml//lib/rexml/text.rb#298
4865
+ # source://rexml//lib/rexml/text.rb#274
4496
4866
  def indent_text(string, level = T.unsafe(nil), style = T.unsafe(nil), indentfirstline = T.unsafe(nil)); end
4497
4867
 
4498
- # source://rexml//lib/rexml/text.rb#253
4868
+ # source://rexml//lib/rexml/text.rb#228
4499
4869
  def inspect; end
4500
4870
 
4501
- # source://rexml//lib/rexml/text.rb#195
4871
+ # source://rexml//lib/rexml/text.rb#170
4502
4872
  def node_type; end
4503
4873
 
4504
- # source://rexml//lib/rexml/text.rb#125
4874
+ # source://rexml//lib/rexml/text.rb#110
4505
4875
  def parent=(parent); end
4506
4876
 
4507
4877
  # If +raw+ is true, then REXML leaves the value alone
@@ -4528,7 +4898,7 @@ class REXML::Text < ::REXML::Child
4528
4898
  # u = Text.new( "sean russell", false, nil, true )
4529
4899
  # u.to_s #-> "sean russell"
4530
4900
  #
4531
- # source://rexml//lib/rexml/text.rb#248
4901
+ # source://rexml//lib/rexml/text.rb#223
4532
4902
  def to_s; end
4533
4903
 
4534
4904
  # Returns the string value of this text. This is the text without
@@ -4545,7 +4915,7 @@ class REXML::Text < ::REXML::Child
4545
4915
  # u = Text.new( "sean russell", false, nil, true )
4546
4916
  # u.value #-> "sean russell"
4547
4917
  #
4548
- # source://rexml//lib/rexml/text.rb#270
4918
+ # source://rexml//lib/rexml/text.rb#245
4549
4919
  def value; end
4550
4920
 
4551
4921
  # Sets the contents of this text node. This expects the text to be
@@ -4556,16 +4926,16 @@ class REXML::Text < ::REXML::Child
4556
4926
  # e[0].value = "bar" # <a>bar</a>
4557
4927
  # e[0].value = "<a>" # <a>&lt;a&gt;</a>
4558
4928
  #
4559
- # source://rexml//lib/rexml/text.rb#281
4929
+ # source://rexml//lib/rexml/text.rb#257
4560
4930
  def value=(val); end
4561
4931
 
4562
- # source://rexml//lib/rexml/text.rb#287
4932
+ # source://rexml//lib/rexml/text.rb#263
4563
4933
  def wrap(string, width, addnewline = T.unsafe(nil)); end
4564
4934
 
4565
4935
  # == DEPRECATED
4566
4936
  # See REXML::Formatters
4567
4937
  #
4568
- # source://rexml//lib/rexml/text.rb#313
4938
+ # source://rexml//lib/rexml/text.rb#289
4569
4939
  def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
4570
4940
 
4571
4941
  # Writes out text, substituting special characters beforehand.
@@ -4583,43 +4953,43 @@ class REXML::Text < ::REXML::Child
4583
4953
  # }
4584
4954
  # puts ascOut
4585
4955
  #
4586
- # source://rexml//lib/rexml/text.rb#345
4956
+ # source://rexml//lib/rexml/text.rb#321
4587
4957
  def write_with_substitution(out, input); end
4588
4958
 
4589
4959
  # FIXME
4590
4960
  # This probably won't work properly
4591
4961
  #
4592
- # source://rexml//lib/rexml/text.rb#325
4962
+ # source://rexml//lib/rexml/text.rb#301
4593
4963
  def xpath; end
4594
4964
 
4595
4965
  private
4596
4966
 
4597
- # source://rexml//lib/rexml/text.rb#358
4967
+ # source://rexml//lib/rexml/text.rb#334
4598
4968
  def clear_cache; end
4599
4969
 
4600
4970
  class << self
4601
4971
  # check for illegal characters
4602
4972
  #
4603
- # source://rexml//lib/rexml/text.rb#131
4973
+ # source://rexml//lib/rexml/text.rb#116
4604
4974
  def check(string, pattern, doctype); end
4605
4975
 
4606
- # source://rexml//lib/rexml/text.rb#427
4976
+ # source://rexml//lib/rexml/text.rb#404
4607
4977
  def expand(ref, doctype, filter); end
4608
4978
 
4609
4979
  # Escapes all possible entities
4610
4980
  #
4611
- # source://rexml//lib/rexml/text.rb#390
4981
+ # source://rexml//lib/rexml/text.rb#366
4612
4982
  def normalize(input, doctype = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
4613
4983
 
4614
4984
  # Reads text, substituting entities
4615
4985
  #
4616
- # source://rexml//lib/rexml/text.rb#364
4986
+ # source://rexml//lib/rexml/text.rb#340
4617
4987
  def read_with_substitution(input, illegal = T.unsafe(nil)); end
4618
4988
 
4619
4989
  # Unescapes all possible entities
4620
4990
  #
4621
- # source://rexml//lib/rexml/text.rb#414
4622
- def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
4991
+ # source://rexml//lib/rexml/text.rb#390
4992
+ def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil), entity_expansion_text_limit: T.unsafe(nil)); end
4623
4993
  end
4624
4994
  end
4625
4995
 
@@ -4743,6 +5113,63 @@ class REXML::XMLDecl < ::REXML::Child
4743
5113
  end
4744
5114
  end
4745
5115
 
5116
+ # Wrapper class. Use this class to access the XPath functions.
5117
+ #
5118
+ # source://rexml//lib/rexml/xpath.rb#7
5119
+ class REXML::XPath
5120
+ include ::REXML::Functions
5121
+
5122
+ class << self
5123
+ # Iterates over nodes that match the given path, calling the supplied
5124
+ # block with the match.
5125
+ # element::
5126
+ # The context element
5127
+ # path::
5128
+ # The xpath to search for. If not supplied or nil, defaults to '*'
5129
+ # namespaces::
5130
+ # If supplied, a Hash which defines a namespace mapping
5131
+ # variables::
5132
+ # If supplied, a Hash which maps $variables in the query
5133
+ # to values. This can be used to avoid XPath injection attacks
5134
+ # or to automatically handle escaping string values.
5135
+ #
5136
+ # XPath.each( node ) { |el| ... }
5137
+ # XPath.each( node, '/*[@attr='v']' ) { |el| ... }
5138
+ # XPath.each( node, 'ancestor::x' ) { |el| ... }
5139
+ # XPath.each( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"}) \
5140
+ # {|el| ... }
5141
+ #
5142
+ # source://rexml//lib/rexml/xpath.rb#60
5143
+ def each(element, path = T.unsafe(nil), namespaces = T.unsafe(nil), variables = T.unsafe(nil), options = T.unsafe(nil), &block); end
5144
+
5145
+ # Finds and returns the first node that matches the supplied xpath.
5146
+ # element::
5147
+ # The context element
5148
+ # path::
5149
+ # The xpath to search for. If not supplied or nil, returns the first
5150
+ # node matching '*'.
5151
+ # namespaces::
5152
+ # If supplied, a Hash which defines a namespace mapping.
5153
+ # variables::
5154
+ # If supplied, a Hash which maps $variables in the query
5155
+ # to values. This can be used to avoid XPath injection attacks
5156
+ # or to automatically handle escaping string values.
5157
+ #
5158
+ # XPath.first( node )
5159
+ # XPath.first( doc, "//b"} )
5160
+ # XPath.first( node, "a/x:b", { "x"=>"http://doofus" } )
5161
+ # XPath.first( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"})
5162
+ #
5163
+ # source://rexml//lib/rexml/xpath.rb#31
5164
+ def first(element, path = T.unsafe(nil), namespaces = T.unsafe(nil), variables = T.unsafe(nil), options = T.unsafe(nil)); end
5165
+
5166
+ # Returns an array of nodes matching a given XPath.
5167
+ #
5168
+ # source://rexml//lib/rexml/xpath.rb#72
5169
+ def match(element, path = T.unsafe(nil), namespaces = T.unsafe(nil), variables = T.unsafe(nil), options = T.unsafe(nil)); end
5170
+ end
5171
+ end
5172
+
4746
5173
  # @private
4747
5174
  #
4748
5175
  # source://rexml//lib/rexml/xpath_parser.rb#963