Initialization using the Singleton design pattern

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs