File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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#
@@ -418,11 +416,11 @@ def __setobj__(obj) # :nodoc:
418416 @delegate_dc_obj = obj
419417 end
420418 protected_instance_methods . each do |method |
421- define_method ( method , Delegator . delegating_block ( method ) )
419+ module_eval ( * Delegator . delegating_code ( method ) )
422420 protected method
423421 end
424422 public_instance_methods . each do |method |
425- define_method ( method , Delegator . delegating_block ( method ) )
423+ module_eval ( * Delegator . delegating_code ( method ) )
426424 end
427425 end
428426 klass . define_singleton_method :public_instance_methods do |all = true |
You can’t perform that action at this time.
0 commit comments