summaryrefslogtreecommitdiff
path: root/lib/delegate.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-02 04:49:13 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-02 04:49:13 +0000
commitde0e5e35ae39a03879d8a954dd6b75654c173cd7 (patch)
tree6f936b0ed7666e5b4c7009c039775bed1a4e9f32 /lib/delegate.rb
parent3293a425afd07c4b004e06e14f1735ca841c1411 (diff)
__FILE__,__LINE__
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@62 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/delegate.rb')
-rw-r--r--lib/delegate.rb18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/delegate.rb b/lib/delegate.rb
index cb3c730787..571bf87510 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -7,16 +7,16 @@
#
# Usage:
# foo = Object.new
-# foo = SimpleDelegater.new(foo)
+# foo = SimpleDelegator.new(foo)
# foo.type # => Object
-class Delegater
+class Delegator
def initialize(obj)
preserved = ["id", "equal?", "__getobj__"]
for t in self.type.ancestors
preserved |= t.instance_methods
- break if t == Delegater
+ break if t == Delegator
end
for method in obj.methods
next if preserved.include? method
@@ -30,7 +30,7 @@ class Delegater
end
-class SimpleDelegater<Delegater
+class SimpleDelegator<Delegator
def initialize(obj)
super
@@ -45,3 +45,13 @@ class SimpleDelegater<Delegater
@obj = obj
end
end
+
+# backword compatibility ^_^;;;
+Delegater = Delegator
+SimpleDelegater = SimpleDelegator
+
+if __FILE__ == $0
+ foo = Object.new
+ foo = SimpleDelegator.new(foo)
+ p foo.type # => Object
+end