From: Ryan Pavlik Date: 2003-02-08T11:00:50+09:00 Subject: Re: class of $1, $2 in 1.8.0 On Sat, 8 Feb 2003 10:36:10 +0900 dblack@candle.superlink.net wrote: > > 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 :-) 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 "Are there no depths that you won't sink to? - We won't know 'till we get there!" - 8BT