ETOOBUSY 🚀 minimal blogging for the impatient
Unmatched is not Excluded - Pull Request is out
TL;DR
Where I tell you about the pull request to distinguish between two different false values in Text::Gitignore.
Previous post Unmatched is not Excluded contains a few suggestions for
extending Text::Gitignore so that false values returned by the
matcher functions (as generated by build_gitignore_matcher
) also convey
the additional information that:
-
the input path failed to match every non-negated pattern, i.e. it is ignored by the current rules. In this case,
undef
is returned, to signify that nothing was hit for this item, OR -
the input path was excluded because of a negated pattern. In this case, a false but defined value is returned.
The following examples should help better framing the explanation above:
my $matcher = build_gitignore_matcher(['f*', '!foo*', 'foobar']);
my $matched = $matcher->('foobar'); # $matched set to true
my $ignored = $matcher->('bar'); # $ignored set to undef
my $excluded = $matcher->('foolish'); # $excluded set to false but defined (e.g. 0)
This ended up in the Pull Request… fingers crossed!