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

Test::Against::Dev::ProcessPSV - Process monthly and master PSV files

SYNOPSIS

    use Test::Against::Dev::ProcessPSV;

    my $ppsv = Test::Against::Dev::ProcessPSV( {
        verbose =>1,
    } );

    my $columns_seen = $ppsv->read_one_psv( {
        psvfile => '/path/to/psvfile',
    } );

    my $master_columns_ref = [
      "dist",
      "perl-5.29.0.author",
      "perl-5.29.0.distname",
      "perl-5.29.0.distversion",
      "perl-5.29.0.grade",
      "perl-5.29.1.author",
      "perl-5.29.1.distname",
      "perl-5.29.1.distversion",
      "perl-5.29.1.grade",
      ...
    ];

    my $rv = $ppsv->write_master_psv( {
        master_columns  => $master_columns_ref,
        master_psvfile  => '/path/to/master_psvfile',
    );

DESCRIPTION

This module provides methods for processing data stored in PSV (.psv) files generated by the Test::Against::Dev and Test::Against::Commit packages included in this CPAN distribution.

METHODS

new()

  • Purpose

    Test::Against::Dev::ProcessPSV constructor.

  • Arguments

        my $ppsv = Test::Against::Dev::ProcessPSV( { verbose =>1 } );

    Hash reference. Currently optional, as only element currently possible in that hash is verbose, which is off by default.

  • Return Value

    Test::Against::Dev::ProcessPSV object.

read_one_psv()

  • Purpose

    Create or augment a data structure holding the results of one or more test-against-dev processes.

  • Arguments

        my $columns_seen = $ppsv->read_one_psv( {
            psvfile => '/path/to/psvfile',
        } );

    Hash reference. Element psvfile is required; must be absolute path to a PSV file generated by a test-against-dev process. The columns in that file must look like this:

          "dist",
          "perl-5.29.0.author",
          "perl-5.29.0.distname",
          "perl-5.29.0.distversion",
          "perl-5.29.0.grade",
          "perl-5.29.1.author",
          "perl-5.29.1.distname",
          "perl-5.29.1.distversion",
          "perl-5.29.1.grade",
          ...

    The entries in the dist column will be the names of CPAN distributions being tested in the test-against-dev process.

        dist|perl-5.29.0.author|perl-5.29.0.distname|perl-5.29.0.distversion|perl-5.29.0.grade
        AAAA-Crypt-DH|BINGOS|AAAA-Crypt-DH-0.06|0.06|PASS
        ARGV-Struct|JLMARTIN|ARGV-Struct-0.03|0.03|PASS
        AWS-Signature4|LDS|AWS-Signature4-1.02|1.02|PASS
        Acme-Damn|IBB|Acme-Damn-0.08|0.08|PASS
        ...
  • Return Value

    Array reference holding a list of the columns detected within the PSV file. The number of columns must be at least 5.

  • Comment

    The method reads data from the PSV file and stores it within the object.

write_master_psv()

  • Purpose

  • Arguments

        my $master_columns_ref = [
          "dist",
          "perl-5.29.0.author",
          "perl-5.29.0.distname",
          "perl-5.29.0.distversion",
          "perl-5.29.0.grade",
          "perl-5.29.1.author",
          "perl-5.29.1.distname",
          "perl-5.29.1.distversion",
          "perl-5.29.1.grade",
          ...
        ];
        my $rv = $ppsv->write_master_psv( {
            master_columns  => $master_columns_ref,
            master_psvfile  => '/path/to/master_psvfile',
        );

    Hash reference, currently with 2 possible elements:

    • master_columns

      Array reference holding list of column names to be written to master PSV file.

    • 3 master_psvfile

      String holding absolute path to the new master PSV file to be populated with data in object.

  • Return Value

    Returns Perl-true value; dies otherwise.

  • Comment

    Writes the pipe-separated-values file specified in the third argument.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 204:

Expected '=item *'