Bump version and add changes for 0.09_02 (just a dependency fix)
[gitmo/MooseX-Singleton.git] / lib / MooseX / Singleton / Object.pm
index c35c1e8..8e38472 100644 (file)
@@ -7,6 +7,30 @@ extends 'Moose::Object';
 
 sub instance { shift->new }
 
+sub initialize {
+  my ($class, @args) = @_;
+
+  my $existing = $class->meta->existing_singleton;
+  confess "Singleton is already initialized" if $existing;
+
+  return $class->SUPER::new(@args);
+}
+
+sub new {
+  my ($class, @args) = @_;
+
+  my $existing = $class->meta->existing_singleton;
+  confess "Singleton is already initialized" if $existing and @args;
+
+  # Otherwise BUILD will be called repeatedly on the existing instance.
+  # -- rjbs, 2008-02-03
+  return $existing if $existing and ! @args;
+
+  return $class->SUPER::new(@args);
+}
+
+no Moose;
+
 1;
 
 __END__