X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FSingleton%2FObject.pm;fp=lib%2FMooseX%2FSingleton%2FObject.pm;h=dc04e2f5fb09111564032439588fd44301fc5ac3;hb=109b110b1d5969c8ae2ec7a5e5d86066f895d828;hp=0000000000000000000000000000000000000000;hpb=1467693305140ae67c90d332344ef89d02d91fa4;p=gitmo%2FMooseX-Singleton.git diff --git a/lib/MooseX/Singleton/Object.pm b/lib/MooseX/Singleton/Object.pm new file mode 100644 index 0000000..dc04e2f --- /dev/null +++ b/lib/MooseX/Singleton/Object.pm @@ -0,0 +1,24 @@ +#!/usr/bin/env perl +package MooseX::Singleton::Object; +use Moose; +use metaclass 'MooseX::Singleton::Meta::Class'; + +extends 'Moose::Object'; + +no strict 'refs'; + +override new => sub { + my $class = shift; + + # create exactly one instance + if (!defined ${"$class\::singleton"}) { + ${"$class\::singleton"} = super; + } + + return ${"$class\::singleton"}; +}; + +sub instance { shift->new } + +1; +