AnyMQ-Pg
view release on metacpan or search on metacpan
lib/AnyMQ/Trait/Pg.pm view on Meta::CPAN
package AnyMQ::Trait::Pg;
# use 5.010;
use Any::Moose 'Role';
use AnyEvent::Pg 0.04;
use JSON;
use Try::Tiny;
has 'debug' => (
is => 'rw',
isa => 'Bool',
default => 0,
);
has 'dsn' => (
is => 'ro',
isa => 'Str',
default => '',
);
has '_client' => (
is => 'ro',
isa => 'AnyEvent::Pg',
lazy => 1, # need to construct client after all param attributes have been created
builder => '_build_client',
predicate => '_client_exists',
);
has 'on_connect' => (
is => 'ro',
isa => 'Maybe[CodeRef]',
);
has 'on_error' => (
is => 'ro',
isa => 'Maybe[CodeRef]',
);
has 'channels' => (
is => 'ro',
isa => 'ArrayRef',
default => sub { [] },
traits => [ 'Array' ],
handles => {
'add_channel' => 'push',
'all_channels' => 'elements',
},
);
has 'publish_queue' => (
is => 'ro',
isa => 'ArrayRef',
default => sub { [] },
traits => [ 'Array' ],
handles => {
'publish_queue_push' => 'push',
'publish_queue_unshift' => 'unshift',
},
);
has 'is_connected' => (
is => 'rw',
isa => 'Bool',
);
has '_json' => ( is => 'rw', lazy_build => 1, isa => 'JSON' );
( run in 2.430 seconds using v1.01-cache-2.11-cpan-d8267643d1d )