AnyEvent-Filesys-Notify

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

    requires => {
        'perl'                         => '5.006',
        'Moo'                          => '1.003001',
        'MooX::late'                   => '0.014',
        'MooX::Types::MooseLike::Base' => '0.25',
        'AnyEvent'                     => '7.05',
        'Path::Iterator::Rule'         => '1.005',
        'Cwd'                          => '3.40',
        'Carp'                         => '1.20',
        'Try::Tiny'                    => '0.18',
        'namespace::autoclean'         => '0.24',
        ( $^O eq 'linux'  ? ( 'Linux::Inotify2' => '1.22' ) : () ),
        ( $^O eq 'darwin' ? ( 'Mac::FSEvents'   => '0.10' ) : () ),
        ( $^O =~ /bsd/    ? ( 'IO::KQueue'      => '0.34' ) : () ),
    },

    build_requires => {
        'Test::More'            => 0.87,
        'Test::Exception'       => 0,
        'Test::Without::Module' => 0,
        'File::Find'            => 0,

Changes  view on Meta::CPAN

      The use of local functions (rather than methods) makes subclassing
      more difficult. This change converts all utility functions in Notify.pm
      to methods. Thanks to Dave Hayes for submitting RT#104714.
    - Any users attempting to subclass should consider upgrading.

1.18 - Wed May 20 20:27:58 EDT 2015
    - Adds version to some files which were missing it
    - No change in functionality. No need to upgrade.

1.17 - Wed May 20 08:07:04 EDT 2015
    - Switches from namespace::sweep to namespace::autoclean (RT#104554).
      autoclean no longer depends on Class::MOP (a heavy prereq).
      Thanks to Karen Etheridge (ether++) for report.
    - No change in functionality. No need to upgrade.

1.16 - Fri Feb 27 13:38:46 EST 2015
    - Rewrites the test functions to accommodate optional events
      Parsing events from Inotify2 (instead of re-scanning) results in
      extraneous modifications in some situations. Tests shouldn't fail if
      these optional events are triggered.

1.15 - Fri Aug 15 20:14:38 EDT 2014

Changes  view on Meta::CPAN


0.23_10 - Mon Sep 30 20:06:50 EDT 2013
    EXPERIMENTAL DEVELOPERS RELEASE

    - Attempts to convert from Moose to Moo for our OO infrastructure. We
      don't need much of Moose's power, so let's take advantage of Moo's speed.
    - Adds version requirements to the prereqs. Earlier version of some of
      the prereq seemed to produce an unstable result. Current versions seem
      fine.
    - Fixes Changes file to adhere to CPAN::Changes spec
    - Replaces namespace::autoclean with namespace::sweep as
      namespace::autoclean relies on Class::MOP

0.22 - Tue Mar  5 14:15:44 EST 2013
    - This is an important release for KQueue users. Prior versions had several
      bugs in the KQueue backend. As a result, KQueue was effectively polling
      the filesystem with no delay. KQueue has a serious limitation which makes
      it impractical for monitoring medium to large sets of files (namely, you
      need an open filehandle for each directory AND file that you are
      monitoring). The use of the KQueue backend is discouraged.

    - Fixes KQueue backend bug which causes CPU usage to peg at 100%
      (thank to gdxhsw++ for the bug report and patch)
    - Updates the documentation and issue warnings for KQueue filehandles
    - Fixes errors in documentation
    - Adds namespace::autoclean to the Event object

0.21 - Mon Feb  4 15:52:47 EST 2013
    - Converts from File::Find::Rule to Path::Interator::Rule
      - Should speed things up marginally.
      - Adds benchmark and profiling tools
    - Marks tests as TODO if we are on gnufreebsd or gnukfreebsd
      - Based on diag output, tests appear to work, but we get failures from
        cpantesters. I don't have access to this platform to investigate
        further.

Changes  view on Meta::CPAN


0.05 - Mon Feb  8 18:47:45 2010
    - Fixed bug in AFN::Event, where is_dir was incorrectly typed.

0.04 - Fri Jan 29 16:13:39 2010
    - Updated documentation to reflect ability to watch multiple
      directories.
    - Other minor cleanup.

0.03 - Fri Dec 11 08:55:30 2009
    - Added namespace::autoclean and switched to apply_all_roles. This gives us
      true per-instance application of backends (Inotify/FSEvents/Fallback).

0.02 - Thu Dec 10 11:53:37 2009
    - Initial release on CPAN

META.json  view on Meta::CPAN

         "requires" : {
            "AnyEvent" : "7.05",
            "Carp" : "1.20",
            "Cwd" : "3.40",
            "Mac::FSEvents" : "0.10",
            "Moo" : "1.003001",
            "MooX::Types::MooseLike::Base" : "0.25",
            "MooX::late" : "0.014",
            "Path::Iterator::Rule" : "1.005",
            "Try::Tiny" : "0.18",
            "namespace::autoclean" : "0.24",
            "perl" : "5.006"
         }
      }
   },
   "provides" : {
      "AnyEvent::Filesys::Notify" : {
         "file" : "lib/AnyEvent/Filesys/Notify.pm",
         "version" : "1.23"
      },
      "AnyEvent::Filesys::Notify::Event" : {

META.yml  view on Meta::CPAN

requires:
  AnyEvent: '7.05'
  Carp: '1.20'
  Cwd: '3.40'
  Mac::FSEvents: '0.10'
  Moo: '1.003001'
  MooX::Types::MooseLike::Base: '0.25'
  MooX::late: '0.014'
  Path::Iterator::Rule: '1.005'
  Try::Tiny: '0.18'
  namespace::autoclean: '0.24'
  perl: '5.006'
resources:
  bugtracker: http://github.com/mvgrimes/AnyEvent-Filesys-Notify/issues
  license: http://dev.perl.org/licenses/
  repository: http://github.com/mvgrimes/AnyEvent-Filesys-Notify
version: '1.23'
x_contributors:
  - 'Gasol Wu E<lt>gasol.wu@gmail.comE<gt> who contributed the BSD support for IO::KQueue'
  - 'Dave Hayes E<lt>dave@jetcafe.orgE<gt>'
  - 'Carsten Wolff E<lt>carsten@wolffcarsten.deE<gt>'

lib/AnyEvent/Filesys/Notify.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify;

# ABSTRACT: An AnyEvent compatible module to monitor files/directories for changes

use Moo;
use Moo::Role ();
use MooX::late;
use namespace::autoclean;
use AnyEvent;
use Path::Iterator::Rule;
use Cwd qw/abs_path/;
use AnyEvent::Filesys::Notify::Event;
use Carp;
use Try::Tiny;

our $VERSION = '1.23';
my $AEFN = 'AnyEvent::Filesys::Notify';

lib/AnyEvent/Filesys/Notify/Event.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify::Event;

# ABSTRACT: Object to report changes in the monitored filesystem

use Moo;
use MooX::late;
use namespace::autoclean;

our $VERSION = '1.23';

has path => ( is => 'ro', isa => 'Str', required => 1 );
has type => ( is => 'ro', isa => 'Str', required => 1 );
has is_dir => ( is => 'ro', isa => 'Bool', default => 0 );

sub is_created {
    return shift->type eq 'created';
}

lib/AnyEvent/Filesys/Notify/Role/FSEvents.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify::Role::FSEvents;

# ABSTRACT: Use Mac::FSEvents to watch for changed files

use Moo::Role;
use MooX::late;
use namespace::autoclean;
use AnyEvent;
use Mac::FSEvents;
use Carp;

our $VERSION = '1.23';

sub _init {
    my $self = shift;

    # Created a new Mac::FSEvents fs_monitor for each dir to watch

lib/AnyEvent/Filesys/Notify/Role/Fallback.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify::Role::Fallback;

# ABSTRACT: Fallback method of file watching (check in regular intervals)

use Moo::Role;
use MooX::late;
use namespace::autoclean;
use AnyEvent;
use Carp;

our $VERSION = '1.23';

sub _init {
    my $self = shift;

    $self->_watcher(
        AnyEvent->timer(

lib/AnyEvent/Filesys/Notify/Role/Inotify2.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify::Role::Inotify2;

# ABSTRACT: Use Linux::Inotify2 to watch for changed files

use Moo::Role;
use MooX::late;
use namespace::autoclean;
use AnyEvent;
use Linux::Inotify2;
use Carp;
use Path::Iterator::Rule;

our $VERSION = '1.23';

# use Scalar::Util qw(weaken);  # Attempt to address RT#57104, but alas...

sub _init {

lib/AnyEvent/Filesys/Notify/Role/KQueue.pm  view on Meta::CPAN

package AnyEvent::Filesys::Notify::Role::KQueue;

# ABSTRACT: Use IO::KQueue to watch for changed files

use Moo::Role;
use MooX::late;
use namespace::autoclean;
use AnyEvent;
use IO::KQueue;
use Carp;

our $VERSION = '1.23';

# Arbitrary limit on open filehandles before issuing a warning
our $WARN_FILEHANDLE_LIMIT = 50;

sub _init {



( run in 0.320 second using v1.01-cache-2.11-cpan-4d50c553e7e )