@@ -112,34 +112,9 @@ def matching_encoding(string)
112
112
string = remove_invalid_bytes ( string )
113
113
string . encode ( @encoding )
114
114
rescue Encoding ::UndefinedConversionError , Encoding ::InvalidByteSequenceError
115
- encode_unconvertable_bytes ( string )
115
+ string . encode ( @encoding , ENCODE_UNCONVERTABLE_BYTES )
116
116
rescue Encoding ::ConverterNotFoundError
117
- encode_no_converter ( string . dup . force_encoding ( @encoding ) )
118
- end
119
-
120
- # On Ruby 2.7.0 keyword arguments mixed with conventional cause a warning to
121
- # be issued requiring us to be explicit by using a ** to pass the hash as
122
- # keyword arguments. Any keyword argument supporting Ruby supports this.
123
- if RubyFeatures . kw_args_supported?
124
- # Note on non keyword supporting Ruby ** causes a syntax error hence
125
- # we must use eval. To be removed in RSpec 4.
126
- binding . eval ( <<-CODE , __FILE__ , __LINE__ )
127
- def encode_unconvertable_bytes(string)
128
- string.encode(@encoding, **ENCODE_UNCONVERTABLE_BYTES)
129
- end
130
-
131
- def encode_no_converter(string)
132
- string.encode(**ENCODE_NO_CONVERTER)
133
- end
134
- CODE
135
- else
136
- def encode_unconvertable_bytes ( string )
137
- string . encode ( @encoding , ENCODE_UNCONVERTABLE_BYTES )
138
- end
139
-
140
- def encode_no_converter ( string )
141
- string . encode ( ENCODE_NO_CONVERTER )
142
- end
117
+ string . dup . force_encoding ( @encoding ) . encode ( ENCODE_NO_CONVERTER )
143
118
end
144
119
145
120
# Prevents raising ArgumentError
0 commit comments