The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Gentoo::Overlay::Group - A collection of Gentoo::Overlay objects.

VERSION

version 1.000001

SYNOPSIS

This is a wrapper around Gentoo::Overlay that makes it easier to perform actions on a group of overlays.

my $group = Gentoo::Overlay::Group->new();
$group->add_overlay('/usr/portage');
$group->add_overlay('/usr/local/portage/');
$group->iterate( packages => sub {
  my ( $self, $context ) = @_;
  # Traverse-Order:
  # ::gentoo
  #   category_a
  #     package_a
  #     package_b
  #   category_b
  #     package_a
  #     package_b
  # ::hentoo
  #   category_a
  #     package_a
  #     package_b
  #   category_b
  #     package_a
  #     package_b
});

METHODS

add_overlay

$object->add_overlay( '/path/to/overlay' );
$object->add_overlay( Path::Tiny::path( '/path/to/overlay' ) );
$object->add_overlay( Gentoo::Overlay->new( path => '/path/to/overlay' ) );

iterate

$object->iterate( ebuilds => sub {


});

ATTRIBUTE ACCESSORS

overlay_names

my @names = $object->overlay_names

overlays

my @overlays = $object->overlays;

get_overlay

my $overlay = $object->get_overlay('gentoo');

PRIVATE ATTRIBUTES

_overlays

isa => HashRef[ Gentoo__Overlay_Overlay ], ro, lazy

PRIVATE ATTRIBUTE ACCESSORS

_has_overlay

if( $object->_has_overlay('gentoo') ){
  Carp::croak('waah');
}

_set_overlay

$object->_set_overlay( 'gentoo' => $overlay_object );

PRIVATE FUNCTIONS

_type_print

Lightweight flat dumper optimized for displaying user parameters in a format similar to a method signature.

printf '[%s]', join q{,} , map { _type_print } @array

PRIVATE METHODS

_iterate_ebuilds

$object->_iterate_ebuilds( ignored => sub { } );

_iterate_categories

$object->_iterate_categories( ignored => sub { } );

_iterate_packages

$object->_iterate_packages( ignored => sub { } );

_iterate_overlays

$object->_iterate_overlays( ignored => sub { } );

_add_overlay_object

$groupobject->_add_overlay_object( $object );

_add_overlay_gentoo_object

$groupobject->_add_overlay_gentoo_object( $gentoo_object );

_add_overlay_path_class

$groupobject->_add_overlay_path_class( $path_class_object );

_add_overlay_string_path

$groupobject->_add_overlay_string_path( $path_string );

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentnl@cpan.org>.

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