MooX-Async-Console

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

         "requires" : {
            "ExtUtils::MakeMaker" : "0"
         }
      },
      "runtime" : {
         "requires" : {
            "Future" : "0.33",
            "IO::Async" : "0.71",
            "Import::Into" : "1.002",
            "List::Util" : "1.29",
            "Modern::Perl" : "1.2017",
            "Module::Runtime" : "0.016",
            "Moo" : "2",
            "MooX::Role::Logger" : "0.005",
            "Syntax::Keyword::Try" : "0.09",
            "curry" : "1",
            "namespace::clean" : "0.27",
            "perl" : "5.024",
            "strictures" : "2"
         }
      }

META.yml  view on Meta::CPAN

name: MooX-Async-Console
no_index:
  directory:
    - t
    - inc
requires:
  Future: '0.33'
  IO::Async: '0.71'
  Import::Into: '1.002'
  List::Util: '1.29'
  Modern::Perl: '1.2017'
  Module::Runtime: '0.016'
  Moo: '2'
  MooX::Role::Logger: '0.005'
  Syntax::Keyword::Try: '0.09'
  curry: '1'
  namespace::clean: '0.27'
  perl: '5.024'
  strictures: '2'
version: '0.105'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

Makefile.PL  view on Meta::CPAN

  test => { TESTS => join ' ', find_tests },
  VERSION_FROM    => 'lib/MooX/Async/Console.pm',

  PREREQ_PM       => {
    'perl'                 => '5.024', # 5.016 for S:K:T
    'curry'                => '1',
    'IO::Async'            => '0.71',
    'Import::Into'         => '1.002',
    'List::Util'           => '1.29',
    'Future'               => '0.33',
    'Modern::Perl'         => '1.2017',
    'Moo'                  => '2',
    'Module::Runtime'      => '0.016',
    'MooX::Role::Logger'   => '0.005',
    'namespace::clean'     => '0.27',
    'strictures'           => '2',
    'Syntax::Keyword::Try' => '0.09',
  },
);

docs/Three.pm  view on Meta::CPAN

package Three;

use Modern::Perl '2017';
use strictures 2;

use Moo;
use Exporter ();
use Guard qw(scope_guard);
use IO::Async::Loop;
use MooX::Async;
use Object::Tap;
use Proc::Daemon;
use namespace::clean;

docs/three.pl  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2017';
use strictures 2;

use Three;
use Log::Any::Adapter 'Stderr',
  log_level => 'inform';

$| = 1;

if (1) { # getop daemonise
  exit 0+! daemonise ();

lib/MooX/Async.pm  view on Meta::CPAN

Allows a L<Moo> class to extend a L<IO::Async::Notifier> subclass with
the L<MooX::Async> role and the magic necessary to make
L<IO::Async::Notifier> work as a L<Moo> object.

=head1 BUGS

Certainly.

=cut

use Modern::Perl '2017';
use strictures 2;
use Moo (); # For _install_tracked
use Moo::Role; # For me
use Module::Runtime qw(compose_module_name module_notional_filename);
use namespace::clean;

sub import {
  my $pkg = caller;
  my $has = $pkg->can('has') or return;
  Moo::_install_tracked $pkg, event => sub {

lib/MooX/Async/Console.pm  view on Meta::CPAN

and implements a L</ping> and L</quit> command. Another module such as
L<MooX::Async::Console::TCP> is responsible for managing the socket
and the framing protocol.

=head1 BUGS

Certainly.

=cut

use Modern::Perl '2017';
use strictures 2;

use Moo::Role;
use Future;
use Module::Runtime qw(compose_module_name use_module);
use MooX::Async;
use Scalar::Util    qw(blessed weaken);
use Syntax::Keyword::Try;
use namespace::clean;

lib/MooX/Async/Console/TCP.pm  view on Meta::CPAN

connection is created as a L<MooX::Async::Console::TCPClient> module
which interpets the byte stream and invokes L</on_command> when a
command is ready to be executed.

=head1 BUGS

Certainly.

=cut

use Modern::Perl '2017';
use strictures 2;

use Moo;
use Future;
use MooX::Async;
use MooX::Async::Console::TCPClient;
use Scalar::Util  qw(blessed);
use namespace::clean;

extends MooXAsync('Listener');

lib/MooX/Async/Console/TCPClient.pm  view on Meta::CPAN


A L<IO::Async::Stream> subclass which waits for a complete line of
text and invokes L</on_line>.

=head1 BUGS

Certainly.

=cut

use Modern::Perl '2017';
use strictures 2;

use Moo;
use MooX::Async;
use namespace::clean;

extends MooXAsync('Stream');

with 'MooX::Role::Logger';



( run in 0.629 second using v1.01-cache-2.11-cpan-a5abf4f5562 )