Adam

 view release on metacpan or  search on metacpan

ex/ncbot.pl  view on Meta::CPAN

    has tcp_server => (
        isa        => 'Int',
        is         => 'ro',
        lazy_build => 1
    );

    method _build_tcp_server {
        TCPServer->new(
            Port            => $self->listen,
            ClientConnected => sub {
                $self->debug("client connected from $_[HEAP]{remote_ip}");
            },
            ClientInput => sub {
                $self->handle_nc_command( $_[ARG0] );
                $_[HEAP]{client}->put('ok');
                $_[KERNEL]->yield("shutdown");
                return;
            },
        );
    }

lib/Adam.pm  view on Meta::CPAN


has plugin_manager => (
    isa        => 'POE::Component::IRC::Plugin::PlugMan',
    is         => 'ro',
    lazy_build => 1,
);

sub _build_plugin_manager {
    POE::Component::IRC::Plugin::PlugMan->new(
        botowner => $_[0]->get_owner,
        debug    => 1
    );
}

before 'START' => sub {
    my ($self) = @_;
    $self->plugin_add( 'PlugMan' => $self->plugin_manager );
};

has poco_irc_args => (
    isa      => 'HashRef',

lib/Adam.pm  view on Meta::CPAN


sub load_plugin {
    my ( $self, $name, $plugin ) = @_;
    $self->plugin_manager->load( $name => $plugin, bot => $self );
}

event irc_plugin_add => sub {
    my ( $self, $desc, $plugin ) = @_[ OBJECT, ARG0, ARG1 ];
    $self->info("loaded plugin: $desc");
    if ( $desc eq 'PlugMan' ) {
        $self->debug("loading other plugins");
        for my $name ( sort $self->plugin_names ) {
            $self->debug("loading $name");
            $plugin = $self->get_plugin($name);
            $self->load_plugin( $name => $plugin );
        }
    }
};

event irc_connected => sub {
    my ( $self, $sender ) = @_[ OBJECT, SENDER ];
    $self->info( "connected to " . $self->get_server . ':' . $self->get_port );
    return;
};

# We registered for all events, this will produce some debug info.
sub DEFAULT {
    my ( $self, $event, $args ) = @_[ OBJECT, ARG0 .. $#_ ];
    my @output = ("$event: ");

    foreach my $arg (@$args) {
        if ( ref($arg) eq ' ARRAY ' ) {
            push( @output, "[" . join( " ,", @$arg ) . "]" );
        }
        else {
            push( @output, "'$arg' " );
        }
    }
    $self->debug( join ' ', @output );
    return 0;
}

sub run {
    $_[0]->new_with_options unless blessed $_[0];
    POE::Kernel->run;
}

1;    # Magic true value required at end of module

lib/Adam/Logger/API.pm  view on Meta::CPAN

BEGIN {
  $Adam::Logger::API::VERSION = '0.91';
}
# ABSTRACT: API Role for the Adam logger
# Dist::Zilla: +PodWeaver
use Moose::Role;
use namespace::autoclean;

requires qw(
  log
  debug
  info
  notice
  warning
  error
  critical
  alert
  emergency
);

1;



( run in 1.011 second using v1.01-cache-2.11-cpan-49f99fa48dc )