NAME

Catalyst::Engine::HTTP::Restarter::Watcher - Watch for changed application files

SYNOPSIS

my $watcher = Catalyst::Engine::HTTP::Restarter::Watcher->new(
    directory => '/path/to/MyApp',
    regex     => '\.yml$|\.yaml$|\.conf|\.pm$',
    delay     => 1,
);

while (1) {
    my @changed_files = $watcher->watch();
}

DESCRIPTION

This class monitors a directory of files for changes made to any file matching a regular expression. It correctly handles new files added to the application as well as files that are deleted.

METHODS

new ( directory => $path [, regex => $regex, delay => $delay ] )

Creates a new Watcher object.

watch

Returns a list of files that have been added, deleted, or changed since the last time watch was called.

DETECT_PACKAGE_COMPILATION

Returns true if B::Hooks::OP::Check::StashChange is installed and can be used to detect when files are compiled. This is used internally to make the Moose metaclass of any class being reloaded immutable.

If B::Hooks::OP::Check::StashChange is not installed, then the restarter makes all application components immutable. This covers the simple case, but is less useful if you're using Moose in components outside Catalyst's namespaces, but inside your application directory.

SEE ALSO

Catalyst, Catalyst::Engine::HTTP::Restarter, File::Modified

AUTHORS

Catalyst Contributors, see Catalyst.pm

THANKS

Many parts are ripped out of HTTP::Server::Simple by Jesse Vincent.

COPYRIGHT

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.