X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/88048e2c00e3e9a9c172e788722354017cd401ec..3cea0c12d3af9e81ce4999ecb1334221cb6d38fe:/common.inc.plp?ds=inline diff --git a/common.inc.plp b/common.inc.plp index 71c5c13..a1eb3e5 100644 --- a/common.inc.plp +++ b/common.inc.plp @@ -99,6 +99,24 @@ sub checkmodified { $header{'Last-Modified'} = time2str($lastmod); } +sub Data { + my ($filename) = @_; + my @data = eval { + open my $cache, '<:raw', "data/$filename.json" + or return do "./$filename.inc.pl"; # silent fallback to original code + require JSON; + local $/; # slurp + return JSON::decode_json(readline $cache); + }; + if ($! or $@ or !@data or !$data[0]) { + die ['Table data not found', $@ || $!]; + } + if (@data == 1 and ref $data[0] eq 'HASH' and not %{$data[0]}) { + die ['Table data missing']; + } + return wantarray ? @data : $data[0]; # list compatibility like do does +} + sub Html { my ($meta) = @_;