package App::FileSummoner::Register::Rules;
BEGIN {
  $App::FileSummoner::Register::Rules::VERSION = '0.002';
}

use strict;
use warnings;
use File::Spec;
use File::Basename qw(basename dirname);

use Exporter 'import';
our @EXPORT = qw(
    HasExt
    InsideDirectory
    BelowDirectory
);

sub InsideDirectory {
    my ($dir) = @_;
    return sub {
        my ($fileName) = @_;
        return $dir eq basename(dirname($fileName));
    };
}

sub BelowDirectory {
    my ($dir) = @_;
    return sub {
        my ($fileName) = @_;
        my @dirs = File::Spec->splitdir($fileName);
        return $dir ~~ @dirs;
    };
}

sub HasExt {
    my ($ext) = @_;
    return sub {
        shift =~ qr/\.$ext$/;
    };
}

1;