browser: abbreviate multiple releases in versions row titles
[sheet.git] / browser.plp
index 202f252d1d7d0c532698428374e74079f8c64ea2..8ff9886f483331f52054a8ff4e325c7b03df3180 100644 (file)
@@ -202,6 +202,8 @@ my $usagepct = 1;  # score multiplier for 0..100 result
 $usagepct = 100.01 / featurescore({  # yes for every possible version
        map { $_ => { map {$_ => 'y'} map { @{$_} } @{$versions{$_}} } } keys %versions
 });
+$_->{usage} = featurescore($_->{stats}) * $usagepct
+       for values %{ $caniuse->{data} };
 
 print '<table class="mapped">';
 print '<col span="3">';  # should match first thead row
@@ -241,8 +243,8 @@ for my $browser (@browsers) {
                printf('<td title="%s"%s>%s',
                        join(' ',
                                sprintf('%.1f%%', sum(@{ $canihas->{$browser} }{@$_}) * $usagepct),
-                               $future ? 'development' : (),
-                               'version ' . join(', ', @{$_}),
+                               'version ' . showversions(@{$_}, undef),
+                               $future ? '(development)' : (),
                        ),
                        $future && ' class="ex"',
                        showversions($lastver),
@@ -417,7 +419,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 = ();
@@ -429,13 +431,12 @@ sub saybrowsercols {
 
 sub sayusagecol {
        my ($id) = @_;
-       print '<td>', int featurescore($caniuse->{data}->{$id}->{stats}) * $usagepct;
+       print '<td>', int $caniuse->{data}->{$id}->{usage};
 }
 
 say '<tbody>';
 for my $id (sort {
-           featurescore($caniuse->{data}->{$b}->{stats})
-       <=> featurescore($caniuse->{data}->{$a}->{stats})
+       $caniuse->{data}->{$b}->{usage} <=> $caniuse->{data}->{$a}->{usage}
 } keys %{ $caniuse->{data} }) {
        $caniuse->{data}->{$id}->{stats} or next;  # skip metadata [summary]
        printf '<tr id="%s">', $id;
@@ -456,13 +457,14 @@ sub paddedver {
 }
 
 sub showversions {
-       my @span = ($_[0], @_>1 ? $_[-1] : ());
-       s/-.*// for $span[0];
+       # title to describe minumum version and optional maximum for multiple cells
+       my @span = (map { split /-/ } grep { defined } @_);
        for (@span) {
                s/^\./0./;
                s/x$/.*/;
-               s/.*-//;
        }
+       return $span[0] if @_ <= 1;
+       splice @span, 1, -1;
        return join('‒', @span);
 }