From: Mischa POSLAWSKY Date: Wed, 4 Feb 2015 08:14:08 +0000 (+0100) Subject: browser: hide browser agents below threshold X-Git-Tag: v1.6~13 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/e6123313e3d9fe59ae9334aa4324b42d62f6a0d8?hp=3beb5afe2b512a6210caeb8744bc3f91e29c4e66 browser: hide browser agents below threshold Browser agents were threated differently from versions to force a complete overview of all known browsers, regardless of usage (so one could see cutting edge features in rare browsers for example, but also because not all user agents were distinguished in usage data). With the increasing amount of Webkit forks though, there isn't enough space so apply the same threshold as versions. --- diff --git a/browser.plp b/browser.plp index 2ba6e01..bd6d8ab 100644 --- a/browser.plp +++ b/browser.plp @@ -76,12 +76,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 +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 @@ -120,7 +126,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 +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 @@ -157,7 +163,7 @@ else { $caniuse->{agents}->{$a}->{prefix} || $a cmp $b - } @browsers; + } keys %versions; } :>.