dc04e2f5fb09111564032439588fd44301fc5ac3
[gitmo/MooseX-Singleton.git] / lib / MooseX / Singleton / Object.pm
1 #!/usr/bin/env perl
2 package MooseX::Singleton::Object;
3 use Moose;
4 use metaclass 'MooseX::Singleton::Meta::Class';
5
6 extends 'Moose::Object';
7
8 no strict 'refs';
9
10 override new => sub {
11     my $class = shift;
12
13     # create exactly one instance
14     if (!defined ${"$class\::singleton"}) {
15         ${"$class\::singleton"} = super;
16     }
17
18     return ${"$class\::singleton"};
19 };
20
21 sub instance { shift->new }
22
23 1;
24