initialize method
[gitmo/MooseX-Singleton.git] / lib / MooseX / Singleton / Object.pm
CommitLineData
109b110b 1#!/usr/bin/env perl
2package MooseX::Singleton::Object;
3use Moose;
4use metaclass 'MooseX::Singleton::Meta::Class';
5
6extends 'Moose::Object';
7
109b110b 8sub instance { shift->new }
9
d928ce3a 10sub initialize {
11 my ($class, @args) = @_;
12
13 my $existing = $class->meta->existing_singleton;
14 confess "Singleton is already initialized" if $existing;
15
16 return $class->SUPER::new(@args);
17}
18
1de95613 19sub new {
20 my ($class, @args) = @_;
21
22 my $existing = $class->meta->existing_singleton;
23 confess "Singleton is already initialized" if $existing and @args;
24
25 return $class->SUPER::new(@args);
26}
27
109b110b 281;
29
b375b147 30__END__
31
32=pod
33
34=head1 NAME
35
36MooseX::Singleton::Object - base class for MooseX::Singleton
37
38=head1 DESCRIPTION
39
40This just adds C<instance> as a shortcut for C<new>.
41
42=cut
43