On Sat, 8 Feb 2003 10:36:10 +0900
dblack / candle.superlink.net wrote:

<snip>
> 
>   class Name < String
>     def initial
>       scan(/[A-Z]/)[0]
>     end
>   end
> 
>   n = Name.new("David")
>   i = n.initial          # String in 1.6.8, Name in 1.8.0
> 
> Here, it doesn't seem logical (to me) for an initial to be a Name
> object.  (Yes, I could have done self[0].chr, but I need to illustrate
> this :-)
<snip> 

Waitaminute there.  It doesn't make sense for another reason.  A Name
shouldn't be a String, because it's not.

    class Name
       def initialize(first, last, middle='', title=nil, number=nil)
          :
       end
    
       def to_s
          :
       end
    end
    
A name is a rather complex thing.  It _has_ strings, but it doesn't
_only_ have strings, and the strings it has should be separate.  This
of course is only a tiny demo class, too... someone could have
multiple titles, aliases, four or more names, etc.

-- 
Ryan Pavlik <rpav / users.sf.net>

"Are there no depths that you won't sink to?
 - We won't know 'till we get there!" - 8BT