openfeature-sdk-sorbet 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.ruby-version +1 -1
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +12 -3
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +55 -49
  8. data/README.md +23 -6
  9. data/lib/open_feature/client.rb +90 -32
  10. data/lib/open_feature/client_metadata.rb +1 -0
  11. data/lib/open_feature/evaluation_context.rb +2 -2
  12. data/lib/open_feature/evaluation_details.rb +2 -2
  13. data/lib/open_feature/hook.rb +41 -1
  14. data/lib/open_feature/hook_context.rb +30 -0
  15. data/lib/open_feature/hooks.rb +22 -0
  16. data/lib/open_feature/multiple_source_provider.rb +28 -12
  17. data/lib/open_feature/no_op_provider.rb +2 -3
  18. data/lib/open_feature/provider.rb +16 -2
  19. data/lib/open_feature/provider_status.rb +13 -0
  20. data/lib/open_feature.rb +9 -2
  21. data/sorbet/rbi/gems/.gitattributes +1 -0
  22. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  24. data/sorbet/rbi/gems/{minitest@5.18.0.rbi → minitest@5.21.2.rbi} +299 -258
  25. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  26. data/sorbet/rbi/gems/{parser@3.2.2.1.rbi → parser@3.3.0.5.rbi} +438 -2219
  27. data/sorbet/rbi/gems/prism@0.19.0.rbi +25199 -0
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  30. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  31. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.6.rbi} +628 -755
  32. data/sorbet/rbi/gems/{regexp_parser@2.8.0.rbi → regexp_parser@2.9.0.rbi} +203 -180
  33. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  34. data/sorbet/rbi/gems/{rubocop-ast@1.28.1.rbi → rubocop-ast@1.30.0.rbi} +178 -84
  35. data/sorbet/rbi/gems/{rubocop-minitest@0.31.0.rbi → rubocop-minitest@0.34.5.rbi} +280 -232
  36. data/sorbet/rbi/gems/{rubocop-performance@1.17.1.rbi → rubocop-performance@1.20.2.rbi} +397 -172
  37. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.0.rbi → rubocop-sorbet@0.7.6.rbi} +728 -261
  38. data/sorbet/rbi/gems/{rubocop@1.51.0.rbi → rubocop@1.60.2.rbi} +4006 -1936
  39. data/sorbet/rbi/gems/spoom@1.2.1.rbi +17 -56
  40. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  41. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.11.17.rbi} +778 -576
  42. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  43. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  44. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  45. data/sorbet/rbi/gems/{zeitwerk@2.6.8.rbi → zeitwerk@2.6.12.rbi} +78 -67
  46. data/sorbet/tapioca/config.yml +2 -2
  47. data/sorbet/tapioca/require.rb +3 -1
  48. metadata +36 -31
  49. data/openfeature-sdk-sorbet.gemspec +0 -35
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.6.4.rbi +0 -342
  52. data/sorbet/rbi/gems/unparser@0.6.7.rbi +0 -4524
  53. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  54. /data/sorbet/rbi/gems/{reline@0.3.3.rbi → reline@0.4.2.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -101,18 +101,18 @@ class REXML::Attribute
101
101
  #
102
102
  # @return [Attribute] a new instance of Attribute
103
103
  #
104
- # source://rexml//lib/rexml/attribute.rb#45
104
+ # source://rexml//lib/rexml/attribute.rb#42
105
105
  def initialize(first, second = T.unsafe(nil), parent = T.unsafe(nil)); end
106
106
 
107
107
  # Returns true if other is an Attribute and has the same name and value,
108
108
  # false otherwise.
109
109
  #
110
- # source://rexml//lib/rexml/attribute.rb#109
110
+ # source://rexml//lib/rexml/attribute.rb#106
111
111
  def ==(other); end
112
112
 
113
113
  # Returns a copy of this attribute
114
114
  #
115
- # source://rexml//lib/rexml/attribute.rb#158
115
+ # source://rexml//lib/rexml/attribute.rb#163
116
116
  def clone; end
117
117
 
118
118
  # source://rexml//lib/rexml/attribute.rb#132
@@ -128,15 +128,15 @@ class REXML::Attribute
128
128
  #
129
129
  # Returns this attribute
130
130
  #
131
- # source://rexml//lib/rexml/attribute.rb#166
131
+ # source://rexml//lib/rexml/attribute.rb#171
132
132
  def element=(element); end
133
133
 
134
134
  # Creates (and returns) a hash from both the name and value
135
135
  #
136
- # source://rexml//lib/rexml/attribute.rb#114
136
+ # source://rexml//lib/rexml/attribute.rb#111
137
137
  def hash; end
138
138
 
139
- # source://rexml//lib/rexml/attribute.rb#192
139
+ # source://rexml//lib/rexml/attribute.rb#197
140
140
  def inspect; end
141
141
 
142
142
  # Returns the namespace URL, if defined, or nil otherwise
@@ -161,17 +161,17 @@ class REXML::Attribute
161
161
  # e.add_attribute("a", "b")
162
162
  # e.attribute("a").namespace # => ""
163
163
  #
164
- # source://rexml//lib/rexml/attribute.rb#98
164
+ # source://rexml//lib/rexml/attribute.rb#95
165
165
  def namespace(arg = T.unsafe(nil)); end
166
166
 
167
- # source://rexml//lib/rexml/attribute.rb#188
167
+ # source://rexml//lib/rexml/attribute.rb#193
168
168
  def node_type; end
169
169
 
170
170
  # The normalized value of this attribute. That is, the attribute with
171
171
  # entities intact.
172
172
  #
173
- # source://rexml//lib/rexml/attribute.rb#18
174
- def normalized=(_arg0); end
173
+ # source://rexml//lib/rexml/attribute.rb#157
174
+ def normalized=(new_normalized); end
175
175
 
176
176
  # Returns the namespace of the attribute.
177
177
  #
@@ -183,14 +183,14 @@ class REXML::Attribute
183
183
  # a = Attribute.new( "x", "y" )
184
184
  # a.prefix # -> ""
185
185
  #
186
- # source://rexml//lib/rexml/attribute.rb#73
186
+ # source://rexml//lib/rexml/attribute.rb#70
187
187
  def prefix; end
188
188
 
189
189
  # Removes this Attribute from the tree, and returns true if successful
190
190
  #
191
191
  # This method is usually not called directly.
192
192
  #
193
- # source://rexml//lib/rexml/attribute.rb#179
193
+ # source://rexml//lib/rexml/attribute.rb#184
194
194
  def remove; end
195
195
 
196
196
  # Returns the attribute value, with entities replaced
@@ -205,21 +205,21 @@ class REXML::Attribute
205
205
  # b = Attribute.new( "ns:x", "y" )
206
206
  # b.to_string # -> "ns:x='y'"
207
207
  #
208
- # source://rexml//lib/rexml/attribute.rb#124
208
+ # source://rexml//lib/rexml/attribute.rb#121
209
209
  def to_string; end
210
210
 
211
211
  # Returns the UNNORMALIZED value of this attribute. That is, entities
212
212
  # have been expanded to their values
213
213
  #
214
- # source://rexml//lib/rexml/attribute.rb#150
214
+ # source://rexml//lib/rexml/attribute.rb#149
215
215
  def value; end
216
216
 
217
217
  # Writes this attribute (EG, puts 'key="value"' to the output)
218
218
  #
219
- # source://rexml//lib/rexml/attribute.rb#184
219
+ # source://rexml//lib/rexml/attribute.rb#189
220
220
  def write(output, indent = T.unsafe(nil)); end
221
221
 
222
- # source://rexml//lib/rexml/attribute.rb#198
222
+ # source://rexml//lib/rexml/attribute.rb#203
223
223
  def xpath; end
224
224
  end
225
225
 
@@ -978,7 +978,7 @@ class REXML::Document < ::REXML::Element
978
978
  # d.to_s # => "<root><foo>Foo</foo><bar>Bar</bar></root>"
979
979
  #
980
980
  # When argument +document+ is given, it must be an existing
981
- # document object, whose context and attributes (but not chidren)
981
+ # document object, whose context and attributes (but not children)
982
982
  # are cloned into the new document:
983
983
  #
984
984
  # d = REXML::Document.new(xml_string)
@@ -2225,7 +2225,7 @@ class REXML::Element < ::REXML::Parent
2225
2225
  # :call-seq:
2226
2226
  # has_text? -> true or false
2227
2227
  #
2228
- # Returns +true if the element has one or more text noded,
2228
+ # Returns +true+ if the element has one or more text noded,
2229
2229
  # +false+ otherwise:
2230
2230
  #
2231
2231
  # d = REXML::Document.new '<a><b/>text<c/></a>'
@@ -2473,7 +2473,7 @@ class REXML::Element < ::REXML::Parent
2473
2473
  # text(xpath = nil) -> text_string or nil
2474
2474
  #
2475
2475
  # Returns the text string from the first text node child
2476
- # in a specified element, if it exists, # +nil+ otherwise.
2476
+ # in a specified element, if it exists, +nil+ otherwise.
2477
2477
  #
2478
2478
  # With no argument, returns the text from the first text node in +self+:
2479
2479
  #
@@ -2481,7 +2481,7 @@ class REXML::Element < ::REXML::Parent
2481
2481
  # d.root.text.class # => String
2482
2482
  # d.root.text # => "some text "
2483
2483
  #
2484
- # With argument +xpath+, returns text from the the first text node
2484
+ # With argument +xpath+, returns text from the first text node
2485
2485
  # in the element that matches +xpath+:
2486
2486
  #
2487
2487
  # d.root.text(1) # => "this is bold!"
@@ -3252,6 +3252,9 @@ class REXML::Entity < ::REXML::Child
3252
3252
  # source://rexml//lib/rexml/entity.rb#85
3253
3253
  def normalized; end
3254
3254
 
3255
+ # source://rexml//lib/rexml/entity.rb#138
3256
+ def parent=(other); end
3257
+
3255
3258
  # Returns the value of attribute pubid.
3256
3259
  #
3257
3260
  # source://rexml//lib/rexml/entity.rb#22
@@ -3298,6 +3301,11 @@ class REXML::Entity < ::REXML::Child
3298
3301
  # source://rexml//lib/rexml/entity.rb#97
3299
3302
  def write(out, indent = T.unsafe(nil)); end
3300
3303
 
3304
+ private
3305
+
3306
+ # source://rexml//lib/rexml/entity.rb#144
3307
+ def resolve_value; end
3308
+
3301
3309
  class << self
3302
3310
  # Evaluates whether the given string matches an entity definition,
3303
3311
  # returning true if so, and false otherwise.
@@ -3554,6 +3562,54 @@ class REXML::Instruction < ::REXML::Child
3554
3562
  def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
3555
3563
  end
3556
3564
 
3565
+ # Adds named attributes to an object.
3566
+ #
3567
+ # source://rexml//lib/rexml/namespace.rb#7
3568
+ module REXML::Namespace
3569
+ include ::REXML::XMLTokens
3570
+
3571
+ # The name of the object, valid if set
3572
+ #
3573
+ # source://rexml//lib/rexml/namespace.rb#9
3574
+ def expanded_name; end
3575
+
3576
+ # Fully expand the name, even if the prefix wasn't specified in the
3577
+ # source file.
3578
+ #
3579
+ # source://rexml//lib/rexml/namespace.rb#57
3580
+ def fully_expanded_name; end
3581
+
3582
+ # Compares names optionally WITH namespaces
3583
+ #
3584
+ # @return [Boolean]
3585
+ #
3586
+ # source://rexml//lib/rexml/namespace.rb#43
3587
+ def has_name?(other, ns = T.unsafe(nil)); end
3588
+
3589
+ # The name of the object, valid if set
3590
+ #
3591
+ # source://rexml//lib/rexml/namespace.rb#9
3592
+ def name; end
3593
+
3594
+ # Sets the name and the expanded name
3595
+ #
3596
+ # source://rexml//lib/rexml/namespace.rb#17
3597
+ def name=(name); end
3598
+
3599
+ # The expanded name of the object, valid if name is set
3600
+ #
3601
+ # source://rexml//lib/rexml/namespace.rb#11
3602
+ def prefix; end
3603
+
3604
+ # The expanded name of the object, valid if name is set
3605
+ #
3606
+ # source://rexml//lib/rexml/namespace.rb#11
3607
+ def prefix=(_arg0); end
3608
+ end
3609
+
3610
+ # source://rexml//lib/rexml/namespace.rb#13
3611
+ REXML::Namespace::NAME_WITHOUT_NAMESPACE = T.let(T.unsafe(nil), Regexp)
3612
+
3557
3613
  # source://rexml//lib/rexml/doctype.rb#280
3558
3614
  class REXML::NotationDecl < ::REXML::Child
3559
3615
  # @return [NotationDecl] a new instance of NotationDecl
@@ -3972,57 +4028,62 @@ end
3972
4028
  # There is strange, dark magic at work in this code. Beware. Go back! Go
3973
4029
  # back while you still can!
3974
4030
  #
3975
- # source://rexml//lib/rexml/parsers/xpathparser.rb#11
4031
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#12
3976
4032
  class REXML::Parsers::XPathParser
3977
4033
  include ::REXML::XMLTokens
3978
4034
 
3979
- # source://rexml//lib/rexml/parsers/xpathparser.rb#41
3980
- def abbreviate(path); end
4035
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#42
4036
+ def abbreviate(path_or_parsed); end
3981
4037
 
3982
- # source://rexml//lib/rexml/parsers/xpathparser.rb#99
3983
- def expand(path); end
4038
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#132
4039
+ def expand(path_or_parsed); end
3984
4040
 
3985
- # source://rexml//lib/rexml/parsers/xpathparser.rb#15
4041
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#16
3986
4042
  def namespaces=(namespaces); end
3987
4043
 
3988
- # source://rexml//lib/rexml/parsers/xpathparser.rb#20
4044
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#21
3989
4045
  def parse(path); end
3990
4046
 
3991
- # source://rexml//lib/rexml/parsers/xpathparser.rb#35
4047
+ # For backward compatibility
4048
+ #
4049
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#174
4050
+ def preciate_to_string(parsed, &block); end
4051
+
4052
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#36
3992
4053
  def predicate(path); end
3993
4054
 
3994
- # source://rexml//lib/rexml/parsers/xpathparser.rb#138
3995
- def predicate_to_string(path, &block); end
4055
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#174
4056
+ def predicate_to_path(parsed, &block); end
3996
4057
 
3997
4058
  private
3998
4059
 
3999
4060
  # | AdditiveExpr ('+' | '-') MultiplicativeExpr
4000
4061
  # | MultiplicativeExpr
4001
4062
  #
4002
- # source://rexml//lib/rexml/parsers/xpathparser.rb#455
4063
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#505
4003
4064
  def AdditiveExpr(path, parsed); end
4004
4065
 
4005
4066
  # | AndExpr S 'and' S EqualityExpr
4006
4067
  # | EqualityExpr
4007
4068
  #
4008
- # source://rexml//lib/rexml/parsers/xpathparser.rb#388
4069
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#438
4009
4070
  def AndExpr(path, parsed); end
4010
4071
 
4011
4072
  # | EqualityExpr ('=' | '!=') RelationalExpr
4012
4073
  # | RelationalExpr
4013
4074
  #
4014
- # source://rexml//lib/rexml/parsers/xpathparser.rb#407
4075
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#457
4015
4076
  def EqualityExpr(path, parsed); end
4016
4077
 
4017
4078
  # | FilterExpr Predicate
4018
4079
  # | PrimaryExpr
4019
4080
  #
4020
- # source://rexml//lib/rexml/parsers/xpathparser.rb#558
4081
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#608
4021
4082
  def FilterExpr(path, parsed); end
4022
4083
 
4023
4084
  # | FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
4024
4085
  #
4025
- # source://rexml//lib/rexml/parsers/xpathparser.rb#613
4086
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#663
4026
4087
  def FunctionCall(rest, parsed); end
4027
4088
 
4028
4089
  # LocationPath
@@ -4030,69 +4091,72 @@ class REXML::Parsers::XPathParser
4030
4091
  # | '/' RelativeLocationPath?
4031
4092
  # | '//' RelativeLocationPath
4032
4093
  #
4033
- # source://rexml//lib/rexml/parsers/xpathparser.rb#193
4094
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#243
4034
4095
  def LocationPath(path, parsed); end
4035
4096
 
4036
4097
  # | MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
4037
4098
  # | UnaryExpr
4038
4099
  #
4039
- # source://rexml//lib/rexml/parsers/xpathparser.rb#478
4100
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#528
4040
4101
  def MultiplicativeExpr(path, parsed); end
4041
4102
 
4042
- # source://rexml//lib/rexml/parsers/xpathparser.rb#293
4103
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#343
4043
4104
  def NodeTest(path, parsed); end
4044
4105
 
4045
4106
  # | OrExpr S 'or' S AndExpr
4046
4107
  # | AndExpr
4047
4108
  #
4048
- # source://rexml//lib/rexml/parsers/xpathparser.rb#369
4109
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#419
4049
4110
  def OrExpr(path, parsed); end
4050
4111
 
4051
4112
  # | LocationPath
4052
4113
  # | FilterExpr ('/' | '//') RelativeLocationPath
4053
4114
  #
4054
- # source://rexml//lib/rexml/parsers/xpathparser.rb#540
4115
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#590
4055
4116
  def PathExpr(path, parsed); end
4056
4117
 
4057
4118
  # Filters the supplied nodeset on the predicate(s)
4058
4119
  #
4059
- # source://rexml//lib/rexml/parsers/xpathparser.rb#345
4120
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#395
4060
4121
  def Predicate(path, parsed); end
4061
4122
 
4062
- # source://rexml//lib/rexml/parsers/xpathparser.rb#576
4123
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#626
4063
4124
  def PrimaryExpr(path, parsed); end
4064
4125
 
4065
4126
  # | RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
4066
4127
  # | AdditiveExpr
4067
4128
  #
4068
- # source://rexml//lib/rexml/parsers/xpathparser.rb#430
4129
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#480
4069
4130
  def RelationalExpr(path, parsed); end
4070
4131
 
4071
- # source://rexml//lib/rexml/parsers/xpathparser.rb#217
4132
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#267
4072
4133
  def RelativeLocationPath(path, parsed); end
4073
4134
 
4074
4135
  # | '-' UnaryExpr
4075
4136
  # | UnionExpr
4076
4137
  #
4077
- # source://rexml//lib/rexml/parsers/xpathparser.rb#503
4138
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#553
4078
4139
  def UnaryExpr(path, parsed); end
4079
4140
 
4080
4141
  # | UnionExpr '|' PathExpr
4081
4142
  # | PathExpr
4082
4143
  #
4083
- # source://rexml//lib/rexml/parsers/xpathparser.rb#521
4144
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#571
4084
4145
  def UnionExpr(path, parsed); end
4085
4146
 
4086
4147
  # get_group( '[foo]bar' ) -> ['bar', '[foo]']
4087
4148
  #
4088
- # source://rexml//lib/rexml/parsers/xpathparser.rb#626
4149
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#676
4089
4150
  def get_group(string); end
4090
4151
 
4091
- # source://rexml//lib/rexml/parsers/xpathparser.rb#644
4152
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#694
4092
4153
  def parse_args(string); end
4154
+
4155
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#224
4156
+ def quote_literal(literal); end
4093
4157
  end
4094
4158
 
4095
- # source://rexml//lib/rexml/parsers/xpathparser.rb#289
4159
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#339
4096
4160
  REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp)
4097
4161
 
4098
4162
  # Returns a 1-1 map of the nodeset
@@ -4106,7 +4170,7 @@ REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp)
4106
4170
  # | PI '(' LITERAL ')' PI
4107
4171
  # | '[' expr ']' Predicate
4108
4172
  #
4109
- # source://rexml//lib/rexml/parsers/xpathparser.rb#288
4173
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#338
4110
4174
  REXML::Parsers::XPathParser::PREFIX_WILDCARD = T.let(T.unsafe(nil), Regexp)
4111
4175
 
4112
4176
  # source://rexml//lib/rexml/doctype.rb#10
@@ -4401,7 +4465,7 @@ class REXML::Text < ::REXML::Child
4401
4465
  # source://rexml//lib/rexml/text.rb#131
4402
4466
  def check(string, pattern, doctype); end
4403
4467
 
4404
- # source://rexml//lib/rexml/text.rb#405
4468
+ # source://rexml//lib/rexml/text.rb#407
4405
4469
  def expand(ref, doctype, filter); end
4406
4470
 
4407
4471
  # Escapes all possible entities
@@ -4416,7 +4480,7 @@ class REXML::Text < ::REXML::Child
4416
4480
 
4417
4481
  # Unescapes all possible entities
4418
4482
  #
4419
- # source://rexml//lib/rexml/text.rb#392
4483
+ # source://rexml//lib/rexml/text.rb#394
4420
4484
  def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
4421
4485
  end
4422
4486
  end