X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FSingleton%2FRole%2FMeta%2FInstance.pm;h=cddc776af16ecc56304c83de5c3f9652e0abb2f2;hb=a9166396900848c9dc24d4bad3646015aa297324;hp=770de0e0fd296c869bc61d921302c81001aa3d26;hpb=2cb90d536c9fe23d25b545966ce509e7da73fa68;p=gitmo%2FMooseX-Singleton.git diff --git a/lib/MooseX/Singleton/Role/Meta/Instance.pm b/lib/MooseX/Singleton/Role/Meta/Instance.pm index 770de0e..cddc776 100644 --- a/lib/MooseX/Singleton/Role/Meta/Instance.pm +++ b/lib/MooseX/Singleton/Role/Meta/Instance.pm @@ -2,8 +2,11 @@ package MooseX::Singleton::Role::Meta::Instance; use Moose::Role; use Scalar::Util 'weaken'; +our $VERSION = '0.23'; +$VERSION = eval $VERSION; + sub get_singleton_instance { - my ($self, $instance) = @_; + my ( $self, $instance ) = @_; return $instance if blessed $instance; @@ -18,39 +21,42 @@ sub get_singleton_instance { return $instance->meta->name->new; } -override clone_instance => sub { - my ($self, $instance) = @_; +override clone_instance => sub { + my ( $self, $instance ) = @_; $self->get_singleton_instance($instance); }; -override get_slot_value => sub { - my ($self, $instance, $slot_name) = @_; - $self->is_slot_initialized($instance, $slot_name) ? $self->get_singleton_instance($instance)->{$slot_name} : undef; +override get_slot_value => sub { + my ( $self, $instance, $slot_name ) = @_; + $self->is_slot_initialized( $instance, $slot_name ) + ? $self->get_singleton_instance($instance)->{$slot_name} + : undef; }; -override set_slot_value => sub { - my ($self, $instance, $slot_name, $value) = @_; +override set_slot_value => sub { + my ( $self, $instance, $slot_name, $value ) = @_; $self->get_singleton_instance($instance)->{$slot_name} = $value; }; -override deinitialize_slot => sub { +override deinitialize_slot => sub { my ( $self, $instance, $slot_name ) = @_; delete $self->get_singleton_instance($instance)->{$slot_name}; }; -override is_slot_initialized => sub { - my ($self, $instance, $slot_name, $value) = @_; +override is_slot_initialized => sub { + my ( $self, $instance, $slot_name, $value ) = @_; exists $self->get_singleton_instance($instance)->{$slot_name} ? 1 : 0; }; -override weaken_slot_value => sub { - my ($self, $instance, $slot_name) = @_; +override weaken_slot_value => sub { + my ( $self, $instance, $slot_name ) = @_; weaken $self->get_singleton_instance($instance)->{$slot_name}; }; -override inline_slot_access => sub { - my ($self, $instance, $slot_name) = @_; - sprintf "%s->meta->instance_metaclass->get_singleton_instance(%s)->{%s}", $instance, $instance, $slot_name; +override inline_slot_access => sub { + my ( $self, $instance, $slot_name ) = @_; + sprintf "%s->meta->instance_metaclass->get_singleton_instance(%s)->{%s}", + $instance, $instance, $slot_name; }; no Moose::Role;