Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Config::MVP::AssemblerUsertContributed PConfig::MVP::Assembler::WithBundles(3)

NAME
       Config::MVP::Assembler::WithBundles - a role to make assemblers expand
       bundles

VERSION
       version 2.200011

DESCRIPTION
       Config::MVP::Assembler::WithBundles is a	role to	be composed into a
       Config::MVP::Assembler subclass.	 It allows some	sections of
       configuration to	be treated as bundles.	When any section is ended, if
       that section represented	a bundle, its bundle contents will be unrolled
       and will	replace	it in the sequence.

       A package is considered a bundle	if "package_bundle_method" returns a
       defined value (which is the name	of a method that will be called	on
       that package to retrieve	its bundle config).

	 my $method = $assembler->package_bundle_method($package);

       The default implementation looks	for a method called
       "mvp_bundle_config", but	"package_bundle_method"	can be replaced	with
       one that	returns	the name of a different	bundle-identifying method-
       name.

       Bundles are expanded by a call to the assembler's
       "replace_bundle_with_contents" method, like this:

	 $assembler->replace_bundle_with_contents($section, $method);

   replace_bundle_with_contents
       The default "replace_bundle_with_contents" method deletes the section
       from the	sequence.  It then gets	a description of the new sections to
       introduce, like this:

	 my @new_config	= $bundle_section->package->$method({
	   name	   => $bundle_section->name,
	   package => $bundle_section->package,
	   payload => $bundle_section->payload,
	 });

       (We pass	a hashref rather than a	section	so that	bundles	can be
       expanded	synthetically without having to	laboriously create a new
       Section.)

       The returned @new_config	is a list of arrayrefs,	each of	which has
       three entries:

	 [ $name, $package, $payload ]

       Each arrayref is	converted into a section in the	sequence.  The
       $payload	should be an arrayref of name/value pairs to be	added to the
       created section.

AUTHOR
       Ricardo Signes <rjbs@cpan.org>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2018 by Ricardo Signes.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.0			  2018-0Config::MVP::Assembler::WithBundles(3)

NAME | VERSION | DESCRIPTION | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Config::MVP::Assembler::WithBundles&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help