X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/ad62c67c43729557c307f10ebef230b9e294c69c..1c575b2b48f7b4769d1ce38d81dc200a4b999ef6:/tools/mkcaniuse diff --git a/tools/mkcaniuse b/tools/mkcaniuse index 074fea7..b162c2f 100755 --- a/tools/mkcaniuse +++ b/tools/mkcaniuse @@ -6,8 +6,9 @@ use Data::Dump 'pp'; use JSON::PP; use File::stat; use Time::Piece; +use List::Util 'uniq'; -our $VERSION = '1.03'; +our $VERSION = '1.04'; my %BROWSERJOIN = ( edge => 'ie', @@ -30,6 +31,10 @@ for (values %{ $data->{data} }) { } for (values %{ $data->{agents} }) { delete $_->{usage_global}; + for (@{ $_->{version_list} }) { + delete $_->{era}; + delete $_->{prefix} unless $_->{prefix}; + } } while (my ($browser, $target) = each %BROWSERJOIN) { @@ -45,8 +50,30 @@ while (my ($browser, $target) = each %BROWSERJOIN) { } } -for (values %{ $data->{agents} }) { - $_->{versions} = [ map { $_->{version} } @{ $_->{version_list} } ]; +for my $feature (values %{ $data->{data} }) { + while (my ($attr, $row) = each %{$feature}) { + delete $feature->{$attr} if ref $row eq '' and $row eq ''; + } +} + +while (my ($agent, $row) = each %{ $data->{agents} }) { + $row->{versions} = [ uniq map { $_->{version} } @{ $row->{version_list} } ]; + + # omit identical values from subsequent versions + for my $feature (values %{ $data->{data} }) { + my $cmp; # same value to be omitted + my $verstats = $feature->{stats}->{$agent}; + for my $version (@{ $row->{versions} }) { + defined $verstats->{$version} + or warn "missing feature $feature->{title} for $agent $version"; + if (defined $cmp and $verstats->{$version} eq $cmp) { + delete $verstats->{$version}; + } + else { + $cmp = $verstats->{$version}; + } + } + } } say "# automatically generated by $0";