CPAN Ratingsで5つ星のモジュールを表示する

Perlで良いモジュールを選ぶ方法の一つにCPAN Ratingsを使うという方法があります。http://cpanratings.perl.org/

今まではCPAN RatingsのRSSを購読していたんですが、全部を読む必要はあまりなさそうです。rateが5のものだけ読めば良さそうですね。

ということで。

#!/usr/bin/env perl
use strict;
use warnings;
use WWW::CPANRatings::RSS;

main();

sub main {
    my $five_star_modules = fetch_five_star_modules();
    report_all_modules($five_star_modules);
}

sub fetch_five_star_modules {
    my $rate = WWW::CPANRatings::RSS->new;
    $rate->fetch or die $rate->error;
    my @five_star_modules = grep { $_->{rating} eq "5" } @{ $rate->ratings };
    \@five_star_modules;
}

sub report_all_modules {
    my $modules = shift;
    foreach my $module ( @{$modules} ) { 
        report_module($module);
    }   
}

sub report_module {
    my $module = shift;
    printf "%s - %s stars - by %s\n", @$module{qw/dist rating creator/};
}

__END__

実行結果

Moose - 5 stars - by Thomas R. Helsel
Tkx - 5 stars - by Thomas R. Helsel
File-Slurp - 5 stars - by Robbie Bow
CPAN-Mini-Webserver - 5 stars - by Pedro Figueiredo
Config-IniFiles - 5 stars - by Michael R. Davis
XML-Atom-SimpleFeed - 5 stars - by Darren Kulp
Data-Rx - 5 stars - by David Garamond
GRID-Machine - 5 stars - by Alex White
Perl-Critic - 5 stars - by Adrian Howard
TAP-Formatter-HTML - 5 stars - by Pedro Melo
Term-ShellUI - 5 stars - by Flavio Poletti
Expect - 5 stars - by Shlomi Fish

5starのものだけ投げるbot作っといて暇なときにみるのは良さそうなので、今度はそれ作ることに。