Clean up memoize calls
[app-musicexpo.git] / lib / App / MusicExpo.pm
index 242e0df0cd19d66cba78cc883ad27b3c965edfb6..e9c0b9579e5556e2839a860ce2aa727ec46bf549 100644 (file)
@@ -3,7 +3,7 @@ use v5.14;
 use strict;
 use warnings;
 
-our $VERSION = '0.003002';
+our $VERSION = '0.003003';
 
 use Audio::FLAC::Header qw//;
 use HTML::Template::Compiled qw//;
@@ -15,7 +15,7 @@ use DB_File qw//;
 use File::Basename qw/fileparse/;
 use Fcntl qw/O_RDWR O_CREAT/;
 use Getopt::Long;
-use JSON;
+use JSON::MaybeXS;
 use Storable qw/thaw freeze/;
 
 ##################################################
@@ -98,10 +98,10 @@ sub normalizer{
 }
 
 sub run {
-       tie my %cache, 'DB_File', $cache, O_RDWR|O_CREAT, 0644 unless $cache eq '';
-       memoize 'flacinfo', NORMALIZER => \&normalizer, LIST_CACHE => 'MERGE', SCALAR_CACHE => [HASH => \%cache] unless $cache eq '';
-       memoize 'mp3info' , NORMALIZER => \&normalizer, LIST_CACHE => 'MERGE', SCALAR_CACHE => [HASH => \%cache] unless $cache eq '';
-       memoize 'vorbisinfo' , NORMALIZER => \&normalizer, LIST_CACHE => 'MERGE', SCALAR_CACHE => [HASH => \%cache] unless $cache eq '';
+       if ($cache) {
+               tie my %cache, 'DB_File', $cache, O_RDWR|O_CREAT, 0644;
+               memoize $_, NORMALIZER => \&normalizer, LIST_CACHE => 'MERGE', SCALAR_CACHE => [HASH => \%cache] for qw/flacinfo mp3info vorbisinfo/;
+       }
 
        my %files;
        for my $file (@ARGV) {
@@ -129,7 +129,7 @@ sub run {
                push @files, \%entry
        }
 
-       my $json = JSON->new->utf8->canonical->encode({files => \@files, prefix => $prefix});
+       my $json = JSON::MaybeXS->new(canonical => 1)->encode({files => \@files, prefix => $prefix});
        $json =~ s/</&lt;/g;
        $json =~ s/>/&gt;/g;
        $ht->param(files=>[sort { $a->{title} cmp $b->{title} } @files], prefix => $prefix, json => $json);
This page took 0.010151 seconds and 4 git commands to generate.