Actions
Bug #2207
closedlib/delegate: #method doesn't delegate to its object
    Bug #2207:
    lib/delegate: #method doesn't delegate to its object
  
Description
=begin
require 'delegate'
d = SimpleDelegator.new("hello")
d.method(:upcase)  # ==> NameError: undefined method upcase' for class SimpleDelegator'
Note that in Ruby 1.8, this does not create an error.
This is fixed by defining respond_to_missing? instead of respond_to?
diff --git a/lib/delegate.rb b/lib/delegate.rb
index 57c479c..6b9f91a 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -143,12 +143,11 @@ class Delegator
end
#
- 
Checks for a method provided by this the delegate object by fowarding the¶
- 
Checks for a method provided by this the delegate object by forwarding the¶call through __getobj__.¶
- def respond_to?(m, include_private = false)
- return true if super
- return self.getobj.respond_to?(m, include_private)
- def respond_to_missing?(m, include_private = false)
- 
getobj.respond_to?(m, include_private)
 end
#
Only caveat is that after a change of object of different class, the method can produce a NoMethodError when called. (same as Ruby 1.8)
Any objection?
=end
        
           Updated by marcandre (Marc-Andre Lafortune) about 16 years ago
          Updated by marcandre (Marc-Andre Lafortune) about 16 years ago
          
          
        
        
      
      - Status changed from Open to Closed
=begin
=end
Actions