summaryrefslogtreecommitdiffstats
path: root/lib/delegate.rb
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-04 05:01:00 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-04 05:01:00 +0000
commit0478a8e2d62a3671712b4c806c9c8c8e78699a0e (patch)
tree919ecb181fa2aa4ad694909d55d14d0b191326f0 /lib/delegate.rb
parente4d3458273f022bf3bfa75e42177145104df8fb8 (diff)
downloadruby-0478a8e2d62a3671712b4c806c9c8c8e78699a0e.tar.gz
ruby-0478a8e2d62a3671712b4c806c9c8c8e78699a0e.tar.xz
ruby-0478a8e2d62a3671712b4c806c9c8c8e78699a0e.zip
* lib/delegate.rb (Delegator.preserved, DelegateClass.methods): extend
shouldn't be delegated. [ruby-dev:32987], etc. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/delegate.rb')
-rw-r--r--lib/delegate.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/delegate.rb b/lib/delegate.rb
index f4068f1b3..970bb9d34 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -115,9 +115,10 @@
# implementation, see SimpleDelegator.
#
class Delegator
- preserved = [:__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
- :instance_eval, :instance_exec,
- ]
+ preserved = [
+ :__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
+ :instance_eval, :instance_exec, :extend,
+ ]
instance_methods.each do |m|
next if preserved.include?(m)
undef_method m
@@ -267,6 +268,7 @@ def DelegateClass(superclass)
:__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
:==, :equal?, :initialize, :method_missing, :__getobj__, :__setobj__,
:clone, :dup, :marshal_dump, :marshal_load, :instance_eval, :instance_exec,
+ :extend,
]
klass.module_eval {
include Delegator::MethodDelegation