File tree Expand file tree Collapse file tree 1 file changed +8
-10
lines changed
Expand file tree Collapse file tree 1 file changed +8
-10
lines changed Original file line number Diff line number Diff line change @@ -344,17 +344,15 @@ def __setobj__(obj)
344344 end
345345end
346346
347- def Delegator . delegating_block ( mid ) # :nodoc:
348- prok = lambda do |*args , &block |
347+ def Delegator . delegating_code ( mid ) # :nodoc:
348+ line = __LINE__ +2
349+ src = <<~RUBY
350+ ruby2_keywords def #{ mid } (*args, &block)
349351 target = self.__getobj__
350- target . __send__ ( mid , *args , &block )
351- end
352- prok . ruby2_keywords
353- if defined? ( Ractor . shareable_proc )
354- Ractor . shareable_proc ( &prok )
355- else
356- prok
352+ target.__send__(:'#{ mid } ', *args, &block)
357353 end
354+ RUBY
355+ [ src , __FILE__ , line ]
358356end
359357
360358#
@@ -433,7 +431,7 @@ def __setobj__(obj) # :nodoc:
433431 class_eval ( source . join ( ";" ) , __FILE__ , __LINE__ )
434432
435433 special . each do |method |
436- define_method ( method , Delegator . delegating_block ( method ) )
434+ module_eval ( * Delegator . delegating_code ( method ) )
437435 end
438436
439437 protected ( *protected_instance_methods )
You can’t perform that action at this time.
0 commit comments