From c0a80890440ff24e8dbd704204856d62feb3142c Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 26 Jul 2006 09:40:05 +0000 Subject: * eval.c (Init_eval): rename #invoke_method and #invoke_functional_method to __send and __send! respectively. * eval.c (remove_method): prohibit removing __send and __send!. * eval.c (rb_undef): prohibit undef'ing __send and __send!. * eval.c (rb_eval): prohibit redefining __send and __send!. * lib/delegate.rb (Delegator): preserve __send. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/delegate.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/delegate.rb') diff --git a/lib/delegate.rb b/lib/delegate.rb index e8a731ae00..165e54a727 100644 --- a/lib/delegate.rb +++ b/lib/delegate.rb @@ -115,7 +115,7 @@ # implementation, see SimpleDelegator. # class Delegator - preserved = ["__id__", "object_id", "__send__", "respond_to?", "send", "funcall"] + preserved = ["__id__", "object_id", "__send__", "__send", "__send!", "respond_to?", "send", "funcall"] instance_methods.each do |m| next if preserved.include?(m) undef_method m @@ -137,7 +137,7 @@ class Delegator unless target.respond_to?(m) super(m, *args, &block) else - target.__send__(m, *args, &block) + target.__send(m, *args, &block) end rescue Exception $@.delete_if{|s| /^#{__FILE__}:\d+:in `method_missing'$/ =~ s} #` @@ -262,7 +262,7 @@ def DelegateClass(superclass) klass = Class.new methods = superclass.public_instance_methods(true) methods -= [ - "__id__", "object_id", "__send__", "respond_to?", "send", "funcall", + "__id__", "object_id", "__send__", "__send", "__send!", "respond_to?", "send", "funcall", "==", "equal?", "initialize", "method_missing", "__getobj__", "__setobj__", "clone", "dup", "marshal_dump", "marshal_load", ] @@ -281,7 +281,7 @@ def DelegateClass(superclass) klass.module_eval <<-EOS, __FILE__, __LINE__+1 def #{method}(*args, &block) begin - @_dc_obj.__send__(:#{method}, *args, &block) + @_dc_obj.__send(:#{method}, *args, &block) rescue $@[0,2] = nil raise -- cgit v1.2.3