[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01632] Re: Ruby: constructors, new and initialise

From: Dave Thomas <Dave@...>
Date: 2000-02-28 15:48:00 UTC
List: ruby-talk #1632
The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.

matz@netlab.co.jp (Yukihiro Matsumoto) writes:

> |If I hadn't read this thread, I'd expect that MyArray.new(3) would
> |call MyArray.initialize(6).
> 
> Yes, but you have to stick with size.
> 
> For example, if you want to create initialized SortedArray
> by specifying elements like
> 
>   ary = SortedArray(1,5,4,3,7,3)
> 
> you just can't.  I feel this as restriction.

That's true. But in what way is that different to any class where the
constructor takes different parameters to it's subclass?

     class Bert
       def initialize(a)
         puts "Bert.initialize(#{a})"
       end
     end

     class Ernie < Bert
       def Ernie.new(a, b)
         super(a)
       end
       def initialize(a, b)
       end
     end

Now I know it is bad to override .new like this, but it does happen
with other factory methods as well.

> Yes.  The point is the argument to `new' is shared by both methods.  
> I think they should belong to `initialize' as much as possible, to
> enhance future extensibility.

It seems to me that there is little lost by invoking Array.initialize
with the two arguments passed to Array.new, and it is more orthogonal
to do so. However, I don't feel very strongly about it!

> p.s.
> I'm getting tired of cross-posting to the list and comp.lang.misc.

It's a pain, isn't it. However, it seems that we are getting some
attention in news.groups, and there are only 10 days left in the RFD.


Regards


Dave

In This Thread