Parse-Distname

 view release on metacpan or  search on metacpan

t/basic.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Differences;
use Parse::Distname qw/parse_distname/;

my $path = "CPAN/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.01.tar.gz";
my $info = parse_distname($path);

unified_diff;

eq_or_diff $info => +{
  arg              => $path,
  cpan_path        => "I/IS/ISHIGAKI/Parse-Distname-0.01.tar.gz",
  pause_id         => "ISHIGAKI",
  name             => "Parse-Distname",
  name_and_version => "Parse-Distname-0.01",
  version          => "0.01",
  version_number   => "0.01",
  extension        => ".tar.gz",
  is_dev           => undef,
}, "parse_distname";

# distname_info

eq_or_diff [Parse::Distname::distname_info($path)] => [
  "Parse-Distname",
  "0.01",
  undef,
], "distname_info";

# accessors

   $info = Parse::Distname->new($path);
is $info->dist => "Parse-Distname", "dist";
is $info->version => "0.01", "version";
is $info->maturity => "released", "maturity";
is $info->filename => "Parse-Distname-0.01.tar.gz", "filename";
is $info->cpanid => "ISHIGAKI", "cpanid";
is $info->distvname => "Parse-Distname-0.01", "distvname";
is $info->extension => "tar.gz", "extension";
is $info->pathname => $path, "pathname";

ok !$info->is_perl6, "is_perl6";
is $info->version_number => "0.01", "version_number";

# unrelated files
ok !parse_distname("authors/id/A/AU/AUTHOR/CHECKSUMS");
ok !parse_distname("RECENT-6h.json");
ok !parse_distname("authors/00whois.xml");

my $p6path = 'CPAN/authors/id/S/SK/SKAJI/Perl6/App-Mi6-0.0.2.tar.gz';
my $p6info = parse_distname($p6path);

eq_or_diff $p6info => +{
  arg              => $p6path,
  cpan_path        => "S/SK/SKAJI/Perl6/App-Mi6-0.0.2.tar.gz",
  pause_id         => "SKAJI",
  name             => "App-Mi6",
  name_and_version => "App-Mi6-0.0.2",
  version          => "0.0.2",
  version_number   => "0.0.2",
  extension        => ".tar.gz",
  is_dev           => undef,



( run in 1.343 second using v1.01-cache-2.11-cpan-39bf76dae61 )