git.shiar.nl
/
sheet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7affe2d
)
browser: order browser columns by usage
author
Mischa POSLAWSKY
<perl@shiar.org>
Fri, 17 Dec 2010 20:17:08 +0000
(21:17 +0100)
committer
Mischa POSLAWSKY
<perl@shiar.org>
Fri, 17 Dec 2010 20:24:33 +0000
(21:24 +0100)
browser.plp
patch
|
blob
|
history
diff --git
a/browser.plp
b/browser.plp
index 8c6b5eddb2ca73a04d2492410317e108000a63b1..9f8adf7085e709fcc34024ca7bc470bdc610364c 100644
(file)
--- a/
browser.plp
+++ b/
browser.plp
@@
-68,8
+68,7
@@
if (my ($somerow) = values %{ $caniuse->{data} }) {
$versions{$browser} = [ sort { paddedver($a) cmp paddedver($b) } keys %$row ];
}
}
$versions{$browser} = [ sort { paddedver($a) cmp paddedver($b) } keys %$row ];
}
}
-my @browsers = grep { $versions{$_} }
- qw(trident ie gecko firefox webkit_saf safari ios_saf webkit_chr chrome android presto opera op_mob op_mini);
+my @browsers = keys %versions;
print <<'';
<p id="intro">Alternate rendition of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page
print <<'';
<p id="intro">Alternate rendition of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page
@@
-94,11
+93,14
@@
given ($get{usage} // 'wm') {
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
}
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
}
-if ($usage) {
- # first() does not work inside given >:(
+if ($usage) { # first() does not work inside given >:(
+ # adapt version usage to actual support data
+ my %engineuse; # prefix => usage sum
while (my ($browser, $row) = each %$canihas) {
my $verlist = $versions{$browser} or next;
my %supported = map { $_ => 1 } @$verlist;
while (my ($browser, $row) = each %$canihas) {
my $verlist = $versions{$browser} or next;
my %supported = map { $_ => 1 } @$verlist;
+
+ # cascade unknown versions
$row->{$_} //= undef for @$verlist; # ensure stable keys during iteration
while (my ($version, $usage) = each %$row) {
next if defined $supported{$version};
$row->{$_} //= undef for @$verlist; # ensure stable keys during iteration
while (my ($version, $usage) = each %$row) {
next if defined $supported{$version};
@@
-107,7
+109,19
@@
if ($usage) {
$row->{$next} += $usage;
$row->{$version} = 0; # balance browser total
}
$row->{$next} += $usage;
$row->{$version} = 0; # balance browser total
}
+
+ # reusable aggregates (grouped by prefix (engine) and browser)
+ $engineuse{ $caniuse->{agents}->{$browser}->{prefix} } +=
+ $row->{-total} = sum(values %$row);
}
}
+
+ # order browser columns by usage grouped by engine
+ @browsers = sort {
+ $engineuse{ $caniuse->{agents}->{$b}->{prefix} } <=>
+ $engineuse{ $caniuse->{agents}->{$a}->{prefix} }
+ ||
+ $canihas->{$b}->{-total} <=> $canihas->{$a}->{-total}
+ } @browsers;
}
:>.
</p>
}
:>.
</p>
@@
-151,7
+165,7
@@
my $header = join('',
$_, @{ $caniuse->{agents}->{$_} }{'prefix', 'type'},
),
join(' ',
$_, @{ $caniuse->{agents}->{$_} }{'prefix', 'type'},
),
join(' ',
- sprintf('%.1f%%',
sum(values %{ $canihas->{$_} })
* $usagepct),
+ sprintf('%.1f%%',
$canihas->{$_}->{-total}
* $usagepct),
$name,
),
do {
$name,
),
do {