browser: update caniuse support classes
[sheet.git] / browser.plp
index a101d741e4fb2071e0499b9cd65b9c85601cae90..44c2b221736f4e70dc7100911dd5ad04ea63c28c 100644 (file)
@@ -39,17 +39,13 @@ my %CSTATS = (
        'y x' => 'l5 ex',
        'a'   => 'l3',
        'a x' => 'l3 ex',
-       'p j' => 'l2',
-       'j'   => 'l2',
        'p'   => 'l2',
-       'p p' => 'l2',
        'u'   => 'l0',
 );
 my %DSTATS = (
        u => 'unknown',
        n => 'unsupported',
        p => 'plugin required',
-       j => 'javascript required',
        a => 'partial',
        y => 'supported',
        d => 'disabled by default',
@@ -64,10 +60,10 @@ my %DSTATS = (
 );
 my %PSTATS = (  # score percentage
        y => 1,  'y x' => .9,
-       a => .5, 'a x' => .5, 'a d' => .1,
-       j => .2, 'p j' => .2, 'n d' => .2, 'n x d' => .2,
-       p => .2, 'p p' => .2, 'p d' => .1,
-       n => 0,   u => 0,
+       a => .5, 'a x' => .5, 'a d' => .2,
+       p => .2, 'p d' => .1,
+       n => 0,  'n d' => .2, 'n x d' => .2,
+       u => 0,
 );
 my %CSTATUS = (
        unoff => 'l1', # unofficial
@@ -237,16 +233,16 @@ print '<thead>', $header;
 print "\n<tr>";
 for my $browser (@browsers) {
        for (@{ $versions{$browser} }) {
-               my $lastver = $_->[-1];
-               my $release = $caniuse->{agents}->{$browser}->{verrelease}->{$lastver};
-               my $future = defined $release;
+               my $lastver = first {
+                       !defined $caniuse->{agents}->{$browser}->{verrelease}->{$_} # stable
+               } reverse @{$_};
                printf('<td title="%s"%s>%s',
                        join(' ',
                                sprintf('%.1f%%', sum(@{ $canihas->{$browser} }{@$_}) * $usagepct),
-                               $future ? 'development' : (),
-                               'version ' . join(', ', @{$_}),
+                               'version ' . showversions(@{$_}, undef),
+                               $_->[-1] eq $lastver ? () : '(development)',
                        ),
-                       $future && ' class="ex"',
+                       !defined $lastver && ' class="ex"',
                        showversions($lastver),
                );
        }
@@ -419,7 +415,7 @@ sub saybrowsercols {
                                ),
                                scalar @span,
                                $title,
-                               showversions($span[0]->[0], @span > 1 ? ($span[-1]->[-1]) : ()),
+                               showversions($span[0]->[0], @span > 1 ? $span[-1]->[-1] : ()),
                        );
                        undef $prev;
                        @span = ();
@@ -457,13 +453,10 @@ sub paddedver {
 }
 
 sub showversions {
-       my @span = ($_[0], @_>1 ? $_[-1] : ());
-       s/-.*// for $span[0];
-       for (@span) {
-               s/^\./0./;
-               s/x$/.*/;
-               s/.*-//;
-       }
+       # title to describe minumum version and optional maximum for multiple cells
+       my @span = (map { split /-/ } grep { defined } @_);
+       return $span[0] =~ s/\.0\z//r if @_ <= 1;
+       splice @span, 1, -1;
        return join('‒', @span);
 }