From 0478a8e2d62a3671712b4c806c9c8c8e78699a0e Mon Sep 17 00:00:00 2001 From: usa Date: Mon, 4 Feb 2008 05:01:00 +0000 Subject: * 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 --- lib/delegate.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib') 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 -- cgit