browser: usage source option
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 5 Dec 2010 20:05:46 +0000 (21:05 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 6 Dec 2010 00:04:46 +0000 (01:04 +0100)
browser.plp

index e4e0b28..c340160 100644 (file)
@@ -16,18 +16,27 @@ Html({
 :>
 <h1>Browser compatibility</h1>
 
-<p>Alternate view of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page
-<:
-my $canihas = do 'browser-usage.inc.pl'
-       or printf "<p>Browser usage data not found: <em>%s</em>.</p>\n", $! || $@;
-
-print "with $_ browser usage statistics." for map {
-       my $ref = $_->{-source} || 'unknown';
-       $ref = sprintf '<a href="%s">%s</a>', $_, $ref for $_->{-url} || ();
-       $ref .= " $_" for $_->{-date} || ();
-       $ref
-} $canihas || ();
-:>
+<p>Alternate view of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page<:
+my ($canihas, $usage);
+given ($get{usage} // 'wm') {
+       when (!$_) {
+               # none
+       }
+       when (!/^\w+$/) {
+               printf "<p>Invalid browser usage data request: <em>%s</em>",
+                       'identifier must be alphanumeric name or <q>0</q>';
+       }
+       $canihas = do "browser-usage-$_.inc.pl" or do {
+               printf "<p>Browser usage data not found: <em>%s</em>", $! || $@;
+               break;
+       };
+       $usage = $_;
+       my $ref = $canihas->{-source} || 'unknown';
+       $ref = sprintf '<a href="%s">%s</a>', $_, $ref for $canihas->{-url} || ();
+       $ref .= " $_" for $canihas->{-date} || ();
+       print "\nwith $ref browser usage statistics";
+}
+:>.
 </p>
 
 <div id="browser">
@@ -257,6 +266,8 @@ sub showversions {
                <ul class="legend legend-set">
                <li>default <strong>style</strong> is
                        <:= defined $get{style} && 'set to ' :><em><:= $style :></em>
+               <li><strong>usage</strong> source is
+                       <:= !defined $get{usage} && 'default ' :><:= defined $usage ? "<em>$usage</em>" : 'not included (<em>0</em>)' :>
                </ul>
        </div>
 </div>