Why do you need to strictly enforce instantiation of your objects? Are 
you not in a position to implement dependency injection, and let the 
container manage instantiation? If not...

R. Mark Volkmann wrote:

>I'm confused.  How can I create a few objects within the class and then prevent
>other classes from creating additional instances?
>  
>
class Moo
 def initialize
   #initialize is an instance method that gets called right after 
construction
   #by the actual constructor, a predefined class method called 'new'
   puts 'created!'
 end
end

a = Moo.new
created!
=> #<Moo:0x2acc368>

def make_singleton(aClass)
 #use this to define class methods (like new)
 class << aClass
   def inst
     @inst ||= new  #method calls don't need parens
   end
   #meh, i decided I want the existing 'new' method to be private
   private :new
 end
end

make_singleton(Moo)

b = Moo.new
NoMethodError: private method `new' called for Moo:Class
      from (irb):21

b = Moo.inst
created!
=> #<Moo:0x2ab4020>

c = Moo.inst
=> #<Moo:0x2ab4020>