App-CPANCoverBadge

 view release on metacpan or  search on metacpan

lib/App/CPANCoverBadge.pm  view on Meta::CPAN

    my $color  = $rating eq 'unknown' ?
        '#cccccc' :                       # gray
            $rating < 75 ?
            '#ff9999' :                   # red
                $rating < 90 ?
                '#ffcc99' :               # orange
                    $rating < 100 ?
                    '#ffff99' :           # yellow
                    '#99ff99';            # green

    my $default_font = Mojo::File->new( $INC{"Badge/Simple.pm"} )
        ->sibling('Simple', 'DejaVuSans.ttf')->to_string;

    my $font = $ENV{BADGE_FONT};
    $font    = $default_font if !$font;

    my $svg = Badge::Simple::badge(
        left  => 'CPANCover',
        right => $rating,
        color => $color,
        font  => $font,
    )->toString;

    $db->insert('badges', { dist => $dist, badge => $svg } );

    return $svg;
}

sub _get_cpancover_rating ($self, $dist) {
    my $url = sprintf "http://cpancover.com/latest/%s/index.html", $dist;
    my $tx  = $self->ua->get( $url );

t/badge_with_ENV.t  view on Meta::CPAN

use File::Basename;
use File::Spec;
use Test::More;

use lib dirname(__FILE__);
use MyTestUA;

use App::CPANCoverBadge;
use Badge::Simple;

my $font = File::Spec->catfile( 
    dirname( $INC{"Badge/Simple.pm"} ),
    'Simple',
    'DejaVuSans.ttf'
);

$ENV{BADGE_FONT} = $font;

my $badger = App::CPANCoverBadge->new(
    ua      => MyTestUA->new,
    db_file => dirname(__FILE__) . '/cpancover-' . $$ . '.db',
);

isa_ok $badger, 'App::CPANCoverBadge';

$badger->sql->db->insert( 'badges', { dist => 'red', badge => <<'SVG' });
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="114"><linearGradient x2="0" id="smooth" y2="100%"><stop stop-color="#bbb" offset="0" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="round"><rect fill="#...
SVG

my %tests = (
    'invalid' => {
        content_like => qr/unknown<\/text>/,
    },
    'types-reneeb' => {
        content_like => qr/100.0<\/text>/,
    },
    'does-not-exist' => {

t/badge_with_db.t  view on Meta::CPAN


my $badger = App::CPANCoverBadge->new(
    ua      => MyTestUA->new,
    db_file => dirname(__FILE__) . '/cpancover-' . $$ . '.db',
);

isa_ok $badger, 'App::CPANCoverBadge';

$badger->sql->db->insert( 'badges', { dist => 'red', badge => <<'SVG' });
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="114"><linearGradient x2="0" id="smooth" y2="100%"><stop stop-color="#bbb" offset="0" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="round"><rect fill="#...
SVG

my %tests = (
    'invalid' => {
        content_like => qr/unknown<\/text>/,
    },
    'types-reneeb' => {
        content_like => qr/100.0<\/text>/,
    },
    'does-not-exist' => {



( run in 0.803 second using v1.01-cache-2.11-cpan-5735350b133 )