@@ -192,9 +192,7 @@ def def_instance_delegator(accessor, method, ali = method)
192192
193193 # If it's not a class or module, it's an instance
194194 mod = Module === self ? self : singleton_class
195- ret = mod . module_eval ( &gen )
196- mod . __send__ ( :ruby2_keywords , ali ) if RUBY_VERSION >= '2.7'
197- ret
195+ mod . module_eval ( &gen )
198196 end
199197
200198 alias delegate instance_delegate
@@ -211,7 +209,8 @@ def self._delegator_method(obj, accessor, method, ali)
211209 accessor = "#{ accessor } ()"
212210 end
213211
214- method_call = ".__send__(:#{ method } , *args, &block)"
212+ args = RUBY_VERSION >= '2.7' ? '...' : '*args, &block'
213+ method_call = ".__send__(:#{ method } , #{ args } )"
215214 if _valid_method? ( method )
216215 loc , = caller_locations ( 2 , 1 )
217216 pre = "_ ="
@@ -222,15 +221,15 @@ def self._delegator_method(obj, accessor, method, ali)
222221 ::Kernel.warn #{ mesg . dump } "\# {_.class}"'##{ method } ', uplevel: 1
223222 _#{ method_call }
224223 else
225- _.#{ method } (* args, &block )
224+ _.#{ method } (#{ args } )
226225 end
227226 end;
228227 end
229228
230229 _compile_method ( "#{ <<-"begin;" } \n #{ <<-"end;" } " , __FILE__ , __LINE__ +1 )
231230 begin;
232231 proc do
233- def #{ ali } (* args, &block )
232+ def #{ ali } (#{ args } )
234233 #{ pre }
235234 begin
236235 #{ accessor }
@@ -312,9 +311,7 @@ def def_single_delegators(accessor, *methods)
312311 def def_single_delegator ( accessor , method , ali = method )
313312 gen = Forwardable . _delegator_method ( self , accessor , method , ali )
314313
315- ret = instance_eval ( &gen )
316- singleton_class . __send__ ( :ruby2_keywords , ali ) if RUBY_VERSION >= '2.7'
317- ret
314+ instance_eval ( &gen )
318315 end
319316
320317 alias delegate single_delegate
0 commit comments