diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-02 04:49:13 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-02 04:49:13 +0000 |
commit | de0e5e35ae39a03879d8a954dd6b75654c173cd7 (patch) | |
tree | 6f936b0ed7666e5b4c7009c039775bed1a4e9f32 /lib/delegate.rb | |
parent | 3293a425afd07c4b004e06e14f1735ca841c1411 (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.rb | 18 |
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 |