browser: recognise unsupported (array) rows v1.4
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 15 Dec 2010 23:44:09 +0000 (00:44 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 15 Dec 2010 23:44:33 +0000 (00:44 +0100)
According to Alexis, missing version data indicates "features that people
may have heard of but currently have no implementation at all" and should be
assumed unsupported in all released versions.

browser.plp

index 7eaa669..2776a5b 100644 (file)
@@ -265,12 +265,19 @@ sub saystatuscol {
 sub saybrowsercols {
        my ($id, $browser) = @_;
        my $data = $caniuse->{data}->{$id}->{stats}->{$browser};
+       if (ref $data eq 'ARRAY') {
+               # special case for unsupported
+               my $release = $caniuse->{agents}->{$browser}->{verrelease};
+               $data = {
+                       map { $_ => defined $release->{$_} ? 'u' : 'n' } keys %$release
+               };
+       }
 
        my ($prev, @span);
        for my $ver (@{ $versions{$browser} }, undef) {
                my $compare = (
                        !defined $ver ? undef :      # last column if nameless
-                       ref $data ne 'HASH' ? 'u' :  # unsupported if no support hash
+                       ref $data ne 'HASH' ? '' :   # unclassified if no support hash
                        $data->{$ver} // $prev       # known or inherit from predecessor
                        // (grep { defined } @{$data}{ @{ $versions{$browser} } })[0]
                           ~~ 'n' && 'n'             # first known version is unsupported