2 package MooseX::Singleton::Role::Object;
5 sub instance { shift->new }
8 my ($class, @args) = @_;
10 my $existing = $class->meta->existing_singleton;
11 confess "Singleton is already initialized" if $existing;
13 return $class->SUPER::new(@args);
17 my ($class, @args) = @_;
19 my $existing = $class->meta->existing_singleton;
20 confess "Singleton is already initialized" if $existing and @args;
22 # Otherwise BUILD will be called repeatedly on the existing instance.
24 return $existing if $existing and ! @args;
31 $class->meta->clear_singleton;
44 MooseX::Singleton::Object - Object class role for MooseX::Singleton
48 This just adds C<instance> as a shortcut for C<new>.