summaryrefslogtreecommitdiff
path: root/lib/delegate.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-12-22 09:01:55 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-12-22 09:01:55 +0000
commit6d583574ab87c7cd18b66382c6892b545167bff6 (patch)
tree515b7c169ce2cd30fe085c5d861f5fad59aa76f7 /lib/delegate.rb
parente299d511db939232c628d6880e61c32e83937d66 (diff)
1.1d1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1dev@357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/delegate.rb')
-rw-r--r--lib/delegate.rb28
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/delegate.rb b/lib/delegate.rb
index 594c500cab..749f2e62ad 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -30,9 +30,9 @@ class Delegator
for method in obj.methods
next if preserved.include? method
eval <<-EOS
- def self.#{method}(*args, &block)
+ def self.#{method}(*args, &block)
begin
- __getobj__.__send__(:#{method}, *args, &block)
+ __getobj__.__send__(:{method}, *args, &block)
rescue Exception
c = -caller(0).size
if /:in `__getobj__'$/ =~ $@[c-1] #`
@@ -44,8 +44,8 @@ class Delegator
$@[c,n] = nil
raise
end
- end
- EOS
+ end
+ EOS
end
end
@@ -88,18 +88,18 @@ def DelegateClass(superclass)
EOS
for method in methods
klass.module_eval <<-EOS
- def #{method}(*args, &block)
- begin
- @obj.__send__(:#{method}, *args, &block)
- rescue
- $@[0,2] = nil
- raise
+ def #{method}(*args, &block)
+ begin
+ @obj.__send__(:{method}, *args, &block)
+ rescue
+ $@[0,2] = nil
+ raise
+ end
+ end
+ EOS
end
- end
- EOS
+ return klass;
end
- return klass;
-end
if __FILE__ == $0
class ExtArray<DelegateClass(Array)