X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/9cc2512f2fbaf5ee2f423104edd65937a01d8fce..a0cb024ea50865030512b67ad0a3cfaefc29b7f6:/browser.plp?ds=sidebyside diff --git a/browser.plp b/browser.plp index 518dee5..bd6d8ab 100644 --- a/browser.plp +++ b/browser.plp @@ -23,12 +23,19 @@ say "
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 @@ -93,12 +101,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 @@ -112,7 +126,7 @@ if ($usage) { # first() does not work inside given >:( } # build row list for each version - if ($minusage = $get{threshold} // .2) { + if ($minusage) { my @vershown; # $verlist replacement my ($rowusage, @verrow) = (0); # replacement row tracking for (@$verlist) { @@ -140,7 +154,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 @@ -149,7 +163,7 @@ else { $caniuse->{agents}->{$a}->{prefix} || $a cmp $b - } @browsers; + } keys %versions; } :>.
@@ -307,7 +321,8 @@ sub saystatuscol { sub saybrowsercols { my ($id, $browser) = @_; - my $data = $caniuse->{data}->{$id}->{stats}->{$browser}; + my $feature = $caniuse->{data}->{$id}; + my $data = $feature->{stats}->{$browser}; if (ref $data eq 'ARRAY') { # special case for unsupported my $release = $caniuse->{agents}->{$browser}->{verrelease}; @@ -328,7 +343,22 @@ sub saybrowsercols { ); unless (!defined $prev or $prev ~~ $compare) { my $usage = sum(@{ $canihas->{$browser} }{ map { @{$_} } @span }); - printf 'supported | partial - | external (js/plugin) + | optional | missing | unknown | prefixed |