X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/3beb5afe2b512a6210caeb8744bc3f91e29c4e66..a12fd2846834c96aaf034aca4c749f9e217af1a9:/browser.plp diff --git a/browser.plp b/browser.plp index 2ba6e01..e65395e 100644 --- a/browser.plp +++ b/browser.plp @@ -63,12 +63,13 @@ my %DSTATS = ( ); my %CSTATUS = ( unoff => 'l1', # unofficial - wd => 'l3', # draft - cr => 'l4', # candidate - pr => 'l4', # proposed + wd => 'l2', # draft + cr => 'l3', # candidate + pr => 'l3', # proposed rec => 'l5', # recommendation - other => 'l2', # non-w3 - ietf => 'l5', # standard + ls => 'l4', # whatwg + ietf => 'l0', # standard + other => 'l0', # non-w3 ); my %versions; if (my ($somerow) = values %{ $caniuse->{data} }) { @@ -76,12 +77,12 @@ if (my ($somerow) = values %{ $caniuse->{data} }) { $versions{$browser} = [ sort { paddedver($a) cmp paddedver($b) } keys %$row ]; } } -my @browsers = keys %versions; print <<'';

Alternate rendition of Fyrd's when can I use... page -my ($canihas, $usage, $minusage); +my ($canihas, $usage); +my $minusage = $get{threshold} // .5; given ($get{usage} // 'wm') { when (!$_) { # none @@ -101,12 +102,18 @@ given ($get{usage} // 'wm') { $ref .= " $_" for $canihas->{-date} || (); print "\nwith $ref browser usage statistics"; } + +my @browsers; if ($usage) { # first() does not work inside given >:( # adapt version usage to actual support data my %engineuse; # prefix => usage sum for my $browser (keys %versions) { my $row = $canihas->{$browser} // {}; my $verlist = $versions{$browser} or next; + if ($minusage and sum(values %$row) < $minusage) { + delete $versions{$browser}; + next; + } my %supported = map { $_ => 1 } @$verlist; # cascade unknown versions @@ -120,7 +127,7 @@ if ($usage) { # first() does not work inside given >:( } # build row list for each version - if ($minusage = $get{threshold} // .5) { + if ($minusage) { my @vershown; # $verlist replacement my ($rowusage, @verrow) = (0); # replacement row tracking for (@$verlist) { @@ -148,7 +155,7 @@ if ($usage) { # first() does not work inside given >:( $engineuse{ $caniuse->{agents}->{$a}->{prefix} } || $canihas->{$b}->{-total} <=> $canihas->{$a}->{-total} - } @browsers; + } keys %versions; } else { # order browser columns by name grouped by engine @@ -157,7 +164,7 @@ else { $caniuse->{agents}->{$a}->{prefix} || $a cmp $b - } @browsers; + } keys %versions; } :>.

@@ -234,7 +241,22 @@ for my $browser (@browsers) { } print '' x 1; say ''; -say '', $header, ''; +say '', $header; +{ + # prefix indicates browser family; count adjacent families + my (@families, %familycount); + for my $browser (@browsers) { + my $family = $caniuse->{agents}->{$browser}->{prefix}; + push @families, $family unless $familycount{$family}; + $familycount{$family} += @{ $versions{$browser} }; + } + + print "\n", ''; + print '' x 3; + printf '%s', $familycount{$_}, $_ for @families; + print ''; +} +say ''; sub featurescore { # relative amount of support for given feature