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 1.416 second using v1.01-cache-2.11-cpan-ceb78f64989 )