NAME

POE::Component::SmokeBox::Backend::Base - Base class for Backend smokers.

VERSION

version 0.58

SYNOPSIS

  package POE::Component::SmokeBox::Backend::Example;

  use strict;
  use warnings;
  use base qw(POE::Component::SmokeBox::Backend::Base);

  sub _data {
    my $self = shift;
    $self->{_data} =
    {
	    check  => [ '-MSome::Funky::Module', '-e', '1' ],
	    index  => [ '-MSome::Funky::Module', '-e', 'reload_indices();' ],
	    smoke  => [ '-MSome::Funky::Module', '-e', 'my $module = shift; test($module);' ],
      digest => qr/Some pattern to match/,
    };
    return;
  }

DESCRIPTION

POE::Component::SmokeBox::Backend::Base is a base class for POE::Component::SmokeBox::Backend smoker definitions. The idea is to inherit this base class and overload the definition for the _data method to define the applicable command line arguments for check, index and smoke commands that POE::Component::SmokeBox::Backend uses.

CONSTRUCTOR

new

Creates a new POE::Component::SmokeBox::Backend::* object.

METHODS

check

Returns an arrayref of command line options that get passed to perl to check that a particular module is installed.

[ '-MSome::Funky::Module', '-e', '1' ]
index

Returns an arrayref of command line options that get passed to perl to perform a reindex of the module database that a smoker uses.

[ '-MSome::Funky::Module', '-e', 'reload_indices();' ]
smoke

Returns an arrayref of command line options that get passed to perl to actually test a distribution in a smoker. The distribution to smoke will be passed as $ARGV[0].

[ '-MSome::Funky::Module', '-e', 'my $module = shift; test($module);' ]
digest

Returns a regular expression pattern that is used to match against smoker output. If the pattern is matched then the digests for detecting looping output are reset.

_data

An internal method that gets called from new() to initialise the internal data of the object. Overload this method to set your data in sub-classes.

SEE ALSO

POE::Component::SmokeBox::Backend

POE::Component::SmokeBox::Backend::CPAN::YACSmoke

POE::Component::SmokeBox::Backend::CPAN::Reporter

POE::Component::SmokeBox::Backend::CPANPLUS::YACSmoke

AUTHOR

Chris Williams <chris@bingosnet.co.uk>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Chris Williams.

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