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