Hi,
I have a singleton class, as in one that does “include Singleton”. I
want to run a few methods when the instance is created. Usually one
would do that in initialize(), but obviously I can’t do that here. This
is what I’ve thought of but it raises an error which says “super: no
superclass method `instance’”
class SingletonClass < ParentClass
include Singleton
def self.instance
super
# initialization code here
end
end
What am I doing wrong?
Cheers
On 05/01/06, Jonathan L. [email protected] wrote:
I have a singleton class, as in one that does “include Singleton”. I
want to run a few methods when the instance is created. Usually one
would do that in initialize(), but obviously I can’t do that here. This
is what I’ve thought of but it raises an error which says “super: no
superclass method `instance’”
Right. Just use #initialize as normal, though.
-austin
On Jan 5, 2006, at 12:19 PM, Jonathan L. wrote:
Hi,
I have a singleton class, as in one that does “include Singleton”. I
want to run a few methods when the instance is created. Usually one
would do that in initialize(), but obviously I can’t do that here.
Why not? The object is still constructed:
require “singleton”
=> true
class JustOne
def initialize
puts “initialize() called”
end
include Singleton
end
=> JustOne
JustOne.instance
initialize() called
=> #JustOne:0x32321c
JustOne.instance
=> #JustOne:0x32321c
James Edward G. II
On Fri, 2006-01-06 at 03:47 +0900, James Edward G. II wrote:
require “singleton”
=> #JustOne:0x32321c
JustOne.instance
=> #JustOne:0x32321c
Okay thanks, I’ve got it sorted now. I had tried using initialize()
previously but I guess I got put off as what I was doing raised an
exception – so I assumed you weren’t supposed to use initialize()
without thinking about it any harder.
Cheers