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