On Aug 6, 2006, at 7:55 AM, Daniel Schierbeck wrote: > Yochen Gutmann wrote: >> Hi, >> I was just wondering: how do I react on a method-invocation with a >> nil-object instead of eg. String? How do I test it? And how can I >> assure that it is the right kind of object? >> class AClass >> def a_method aString >> puts aString+aString >> puts aString.reverse >> end >> end >> an_object = AClass.new >> an_object.a_method "hello" # works >> an_object.a_method 3#-> undefined method >> an_object.a_method nil #-> undefined method > > I'd do it like this: > > class SomeClass > def foo(obj) > str = obj.to_str Don't call to_str, call to_s. > puts str + str # or `str * 2' > puts str.reverse > end > end > > Though I know some very smart people on this list disagree with me. Only because you call to_str. This is not the reason it exists. -- Eric Hodel - drbrain / segment7.net - http://blog.segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com