NAME
Skilletor::Bundles - Bundle files (spec §15), their expansion, and name patterns
VERSION
version 0.001
SYNOPSIS
use Skilletor::Bundles qw( parse_bundle expand_bundle matches_pattern );
my $def = parse_bundle($yaml);
# { description, items => [ { type, entry } ], foreign => [...], bundles => [...], vars => {...} }
my $x = expand_bundle( $catalog, 'perl' );
# { items => [ { type, name, chains => [ { path, vars, setters } ] } ], foreign => [...], warnings => [...] }
matches_pattern( 'perl-*', 'perl-moo' ); # 1
DESCRIPTION
The reference's bundles.ts. A bundle is bundles/<name>.yaml|.yml in a source: a named set of that source's items (names or * patterns per type), other bundles of the source included recursively, entries of other sources by address (spec §15.6), and var defaults for the items it yields. Every error is a Skilletor::Error::Bundle worded as the reference words it; the YAML is read by Skilletor::Frontmatter.
parse_bundle
Parse and validate one bundle file (spec §15.1).
expand_bundle
expand_bundle( $catalog, $name );
Expand a bundle of a Skilletor::Catalog scan (spec §15.2): each item with every chain of bundles it is reached through and that chain's vars (the outer bundle winning, spec §15.3), the entries of other sources with their chain, and a warning per entry that names nothing. A missing or broken bundle and a cycle throw.
match_entry
match_entry( $catalog, $type, $name_or_pattern ); # [ items ]
entry_miss
entry_miss( $type, $entry, $count ); # the warning, or undef
matches_pattern
* matches any run of characters; everything else is literal.
is_pattern
same_identity
Two git/url identities are the same modulo a trailing /, .git and the case of scheme and host.
PATTERN_CHAR
*.
SUPPORT
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.