From: Yuri Leikind Date: 2002-10-11T19:56:27+09:00 Subject: Re: possible patch for singleton.rb "Dave Thomas" wrote in message news:m265wao0b1.fsf@zip.local.thomases.com... > leikind@mova.org (Yuri Leikind) writes: > > > What is peculiar is that you cannot pass any arguments > > to the constructor when creating the object, that is, you > > cannot do > > > > a = SomeClass.instance(1,2,3) > > > > But it is trivial to enable it, here is the diff of singleton.rb: > > Except... > > How can a singleton have arguments to 'instance' when the underlying > object is constructed only once? You get a kind of 'first one in wins' > situation: > > > a = SomeClass.instance(1, 2, 3) > > # .... > > b = SomeClass.instance('a, 'b', 'c') > > # ... Much confusion and gnashing of teeth > > > Perhaps a better approach might be to have a call that sets the > parameters to be used when the object is created: > > SomeClass.set_init_args(1, 2, 3) > > a = SomeClass.instance -- will do new(1, 2, 3) > > b = SomeClass.instance -- will reuse existing object > > It would be a runtime error to call set_init_args more than once or > call it after the object has been created. This approach is perhaps wiser than mine. The only thing is that we are complicating Singleton by adding a class method Best regards, Yuri Leikind