summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-04 16:51:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-04 16:51:16 +0000
commit373d43f61e0a51938a578f2f20372427ce0f08a4 (patch)
tree481e4670e92c31fda67c2f480913913117e08b1a /lib
parentb65d6208fea61d75777622b60d0739695eccf503 (diff)
* eval.c (Init_eval): move instance_eval and instance_exec to
BasicObject. [ruby-core:14747] * lib/delegate.rb: should preserve new methods in BasicObject. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/delegate.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/delegate.rb b/lib/delegate.rb
index 8501ed1064..f4068f1b32 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -115,7 +115,9 @@
# implementation, see SimpleDelegator.
#
class Delegator
- preserved = [:__id__, :object_id, :__send__, :public_send, :respond_to?, :send]
+ preserved = [:__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
+ :instance_eval, :instance_exec,
+ ]
instance_methods.each do |m|
next if preserved.include?(m)
undef_method m
@@ -264,7 +266,7 @@ def DelegateClass(superclass)
methods -= [
:__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
:==, :equal?, :initialize, :method_missing, :__getobj__, :__setobj__,
- :clone, :dup, :marshal_dump, :marshal_load,
+ :clone, :dup, :marshal_dump, :marshal_load, :instance_eval, :instance_exec,
]
klass.module_eval {
include Delegator::MethodDelegation