X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/cf587c2b629d47729fca9fbcdd4e3d10327699ca..2ce75f053f97e81228960b6323b6b7bb230799df:/browser.plp?ds=sidebyside diff --git a/browser.plp b/browser.plp index a53f045..8ff9886 100644 --- a/browser.plp +++ b/browser.plp @@ -196,13 +196,14 @@ $canihas ||= { } } @browsers }; # fallback hash based on release semantics -my $usagemax = (max(map { ref $_ eq 'HASH' && sum(values %$_) } values %$canihas) // 1) / 100; my $usagepct = 1; # score multiplier for 0..100 result # normalise usage percentage to only include shown browsers $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 ''; print ''; # should match first thead row @@ -242,8 +243,8 @@ for my $browser (@browsers) { printf(''; 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 '', $id; @@ -458,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); }
%s', join(' ', sprintf('%.1f%%', sum(@{ $canihas->{$browser} }{@$_}) * $usagepct), - $future ? 'development' : (), - 'version ' . join(', ', @{$_}), + 'version ' . showversions(@{$_}, undef), + $future ? '(development)' : (), ), $future && ' class="ex"', showversions($lastver), @@ -415,11 +416,10 @@ sub saybrowsercols { sprintf('p%01d', $usage * ($usagepct - .0001) / 10), sprintf('p%02d', $usage * ($usagepct - .0001)), ), - sprintf('pp%02d', $usage / $usagemax), ), scalar @span, $title, - showversions($span[0]->[0], @span > 1 ? ($span[-1]->[-1]) : ()), + showversions($span[0]->[0], @span > 1 ? $span[-1]->[-1] : ()), ); undef $prev; @span = (); @@ -431,13 +431,12 @@ sub saybrowsercols { sub sayusagecol { my ($id) = @_; - print '', int featurescore($caniuse->{data}->{$id}->{stats}) * $usagepct; + print '', int $caniuse->{data}->{$id}->{usage}; } say '