/usr/share/perl5/MooseX/POE/Aliased.pm is in libmoosex-poe-perl 0.214-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | package MooseX::POE::Aliased;
BEGIN {
$MooseX::POE::Aliased::VERSION = '0.214';
}
# ABSTRACT: A sane alias attribute for your MooseX::POE objects.
use MooseX::POE::Role;
use overload ();
use POE;
has alias => (
isa => "Maybe[Str]",
is => "rw",
builder => "_build_alias",
clearer => "clear_alias",
predicate => "has_alias",
trigger => sub {
my ( $self, $alias ) = @_;
$self->call( _update_alias => $alias );
}
);
sub BUILD {
my ($self) = @_;
$self->call( _update_alias => $self->alias )
if $self->has_alias;
}
sub _build_alias {
my $self = shift;
overload::StrVal($self);
}
event _update_alias => sub {
my ( $kernel, $self, $alias ) = @_[KERNEL, OBJECT, ARG0];
# we need to remove the prev alias like this because we don't know the
# previous value.
$kernel->alarm_remove_all();
$kernel->alias_set($alias) if defined $alias;
};
__PACKAGE__;
=pod
=head1 NAME
MooseX::POE::Aliased - A sane alias attribute for your MooseX::POE objects.
=head1 VERSION
version 0.214
=head1 SYNOPSIS
use MooseX::POE;
with qw(MooseX::POE::Aliased);
my $obj = Foo->new( alias => "blah" );
$obj->alias("arf"); # previous one is removed, new one is set
$obj->alias(undef); # no alias set
=head1 DESCRIPTION
This role provides an C<alias> attribute for your L<MooseX::POE> objects.
The attribute can be set, causing the current alias to be cleared and the new
value to be set.
=head1 METHODS
=head2 alias
The alias to set for the session.
Defaults to the C<overload::StrVal> of the object.
If the value is set at runtime the alias will be updated in the L<POE::Kernel>.
A value of C<undef> inhibits aliasing.
=head1 ATTRIBUTES
=head1 AUTHORS
=over 4
=item *
Chris Prather <chris@prather.org>
=item *
Ash Berlin <ash@cpan.org>
=item *
Chris Williams <chris@bingosnet.co.uk>
=item *
Yuval (nothingmuch) Kogman
=item *
Torsten Raudssus <torsten@raudssus.de> L<http://www.raudssus.de/>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Chris Prather, Ash Berlin, Chris Williams, Yuval Kogman, Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
|