Acme-CPANAuthors-InMemoriam

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Acme-CPANAuthors-InMemoriam
================================================

1.09	2025-11-29
        - added several authors who have passed away over the last 6 years
        - thanks to BOOK, ETHER and LNATION for making me aware of these losses
          to CPAN and our communities.

1.08	2019-08-17
        - added Gary Howland (https://iang.org/rants/gary_howland.html)
        - added Kip Hampton (https://twitter.com/tamarou/status/839255057627508736)

1.07	2017-05-23
        - added Jon Portnoy (AVENJ) (notified by Kent Fredric, CPAN RT#117177,
          patched by Adriano Ferreira))

MANIFEST  view on Meta::CPAN

Changes
examples/author_info
examples/count
lib/Acme/CPANAuthors/InMemoriam.pm
LICENSE
Makefile.PL
MANIFEST
META.json
META.yml
README
t/00load.t
t/10inmemoriam.t

META.json  view on Meta::CPAN

{
    "name": "Acme-CPANAuthors-InMemoriam",
    "version": "1.08",
    "abstract": "In honour of our deceased CPAN Authors.",
    "author": [
        "Barbie (BARBIE) <barbie@cpan.org>"
    ],

    "license": [ "artistic_2" ],
    "dynamic_config" : 0,
    "release_status" : "stable",
    "meta-spec": {
        "version": "2",
        "url": "http://search.cpan.org/dist/CPAN-Meta/lib/CPAN/Meta/Spec.pm"
    },
    "generated_by": "Hand 1.0",
    "keywords" : [
        "acme",
        "cpan",
        "authors"
    ],

    "prereqs" : {
        "runtime" : {
            "requires" : {
                "perl": "5.006",
                "Acme::CPANAuthors": "0.04"
            }
        },
        "test" : {

META.yml  view on Meta::CPAN

--- #YAML:1.0
name:                     Acme-CPANAuthors-InMemoriam
version:                  1.08
abstract:                 In honour of our deceased CPAN Authors.
author:
  - Barbie <barbie@cpan.org>

license:                  artistic_2
distribution_type:        module
installdirs:              site

requires:
  perl:                   5.006
  Acme::CPANAuthors:      0.04
recommends:

examples/author_info  view on Meta::CPAN

#!/usr/bin/perl
use warnings;
use strict;
use Acme::CPANAuthors;

die "usage: $0 PAUSE_ID [PAUSE_ID ...]\n" unless @ARGV;

my $authors  = Acme::CPANAuthors->new("InMemoriam");

for my $id (@ARGV) {
    $id = uc $id;
    my $name     = $authors->name($id) || $id;
    my @dists    = $authors->distributions($id);
    my $kwalitee = $authors->kwalitee($id);

    print "$name has published ", ~~@dists," distributions:\n";

    @dists = sort { lc($a->dist) cmp lc($b->dist) } @dists;

    for my $dist (@dists) {
        printf " - %s v%s, kwalitee %s\n", 
            $dist->dist, $dist->version, 
            $kwalitee->{distributions}{ $dist->dist }{kwalitee},
    }

examples/count  view on Meta::CPAN

#!/usr/bin/perl
use warnings;
use strict;
use Acme::CPANAuthors;

my $authors  = Acme::CPANAuthors->new("InMemoriam");
my $number   = $authors->count;

print "$number CPAN authors are known to have left us\n";

lib/Acme/CPANAuthors/InMemoriam.pm  view on Meta::CPAN

__END__

=encoding UTF-8

=head1 NAME

Acme::CPANAuthors::InMemoriam - Remembering our fallen heroes

=head1 DESCRIPTION

This class provides a hash of CPAN authors' PAUSE ID and name to be 
used with the C<Acme::CPANAuthors> module.

This module was created to remember those CPAN Authors who are no longer with
us, who have given us their inspiration in the form of code, to continue and
celebrate their time with us.

=head1 OUR HEROES

  ABELTJE       Abe Timmerman       d.2024
  AMORETTE      Hojung Yoon         d.2013

lib/Acme/CPANAuthors/InMemoriam.pm  view on Meta::CPAN

  SCHOP         Ariel Brosh         d.2003
  SPIDB         Raun Boardman       d.2021
  SPOON         Iain Truskett       d.2003
  SUGMAK        Makoto Sugiyama     d.2010
  TADMC         Tad McClellan       d.2012
  VSARKISS      Vahe Sarkissian     d.2008
  ZEFRAM        Andrew Main         d.2025

=head1 MAINTENANCE

If you are aware of any CPAN author that we have sadly lost, and who is not 
listed here, please send me their ID/name via email or RT, and I will update 
the module. If there are any mistakes, please contact me as soon as possible,
and I'll amend the entry right away.

=head1 SEE ALSO

L<Acme::CPANAuthors> - Main class to manipulate this one

=head1 SUPPORT

Bugs, patches and feature requests can be reported at:

=over 4

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Acme-CPANAuthors-InMemoriam>

=item * GitHub

L<http://github.com/barbie/acme-cpanauthors-inmemoriam>

=back

There are no known bugs at the time of this release. However, if you spot a
bug or are experiencing difficulties that are not explained within the POD
documentation, please send an email to barbie@cpan.org or submit a bug to 
the RT queue. However, it would help greatly if you are able to pinpoint 
problems or even supply a patch. 

Fixes are dependent upon their severity and my availability. Should a fix 

t/10inmemoriam.t  view on Meta::CPAN

#!perl
use strict;
use warnings;
use Test::More;

plan skip_all => "can't load Acme::CPANAuthors"
    unless eval "use Acme::CPANAuthors; 1";
plan tests => 9;

my $authors  = eval { Acme::CPANAuthors->new("InMemoriam") };
is( $@, "", "creating a new Acme::CPANAuthors object with InMemoriam authors" );
isa_ok( $authors, "Acme::CPANAuthors" );

my $number = 29;
is( $authors->count, $number, " .. \$authors->count matches current count" );

my @ids = $authors->id;
cmp_ok( ~~@ids, ">", 0, " .. \$authors->id gives a non-empty list" );
is( ~~@ids, $number, " .. \$authors->id equals \$authors->count" );

SKIP: {
    my $file;
    eval { $file = Acme::CPANAuthors::Utils::_cpan_authors_file() };
    skip "CPAN configuration not available", 4 if($@ || !$file);

    $file = undef;
    eval { $file = Acme::CPANAuthors::Utils::_cpan_packages_file() };
    skip "CPAN configuration not available", 4 if($@ || !$file);

    my @distros  = $authors->distributions('IVORW');
    cmp_ok( ~~@distros, ">", 0, " .. \$authors->distributions('IVORW') gives a non-empty list" );

    @distros = $authors->distributions('XXXXXX');
    cmp_ok( ~~@distros, "==", 0, " .. \$authors->distributions('XXXXXX') gives an empty list" );

    my $name = $authors->name('IVORW');
    is($name, "Ivor Williams", " .. \$authors->name('IVORW') returns Ivor Williams" );

#    SKIP: {
#        skip "en.gravatar.com is not available", 2
#            if(pingtest('en.gravatar.com'));
#
#        my $url;
#        eval { $url = $authors->avatar_url('IVORW') };
#        skip "en.gravatar.com is not available", 1 if($@);
#        $url ||= '';
#        is($url, 'http://www.gravatar.com/avatar/2459f554c069e44527716e3f35e1d0d1', ".. \$authors->avatar_url('IVORW') returns a URL" );
#
#        eval { $url = $authors->avatar_url('BARBIE') };
#        skip "en.gravatar.com is not available", 1 if($@);
#        $url ||= '';
#        cmp_ok( length($url), ">", 0, " .. \$authors->avatar_url('BINGOS') gives a non-empty string" );
#    }

    SKIP: {
        skip "api.cpanauthors.org is not available", 1
            if(pingtest('api.cpanauthors.org'));

        my $kwalitee;
        eval { $kwalitee = $authors->kwalitee('IVORW') };
        skip "api.cpanauthors.org is not available", 1 if($@);
        isa_ok( $kwalitee, "HASH", " .. \$authors->kwalitee('IVORW')" );
    }
}

sub pingtest {
    my $domain = shift or return 1;
    my $cmd =   $^O =~ /solaris/i                           ? "ping -s $domain 56 1" :
                $^O =~ /dos|os2|mswin32|netware|cygwin/i    ? "ping -n 1 $domain "
                                                            : "ping -c 1 $domain >/dev/null 2>&1";

    eval { system($cmd) }; 



( run in 1.654 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )