X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FMojoFacets%2FData.pm;h=2385d1ffcfeb2fd69795685994c7bc27b4f9e96b;hb=b8c53d26d66327cd970dfcfe8fb479fa7b158581;hp=74e4821f890ced3a6c5a2df5db6ed6295120e6f2;hpb=a0ccfed69c4dd8009ecf948716976f12b34204ab;p=MojoFacets.git diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 74e4821..2385d1f 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -11,6 +11,7 @@ use JSON; use Encode; use locale; use File::Find; +use Storable; our $loaded; our $filters; @@ -44,6 +45,26 @@ sub index { ); } +sub _save { + my ( $self, $path ) = @_; + + my $name = $path; + my $dir = $self->app->home->rel_dir('data'); + $name =~ s/^$dir//; + $name =~ s/\/+/_/g; + my $dump_path = '/tmp/mojo_facets.' . $path . '.storable'; + + warn "save loaded to $dump_path"; + my $info = $loaded->{$path}; + store $info, $dump_path; + + # sync timestamp + my $mtime = $loaded->{$path}->{mtime}; + utime $mtime, $mtime, $dump_path; + + warn $dump_path, ' ', -s $dump_path, " bytes\n"; +} + sub _load_path { my ( $self, $path ) = @_; @@ -150,7 +171,7 @@ sub _load_path { warn dump($stats); - $loaded->{ $path } = { + my $info = { header => [ @header ], stats => $stats, full_path => $full_path, @@ -159,6 +180,9 @@ sub _load_path { data => $data, }; + $loaded->{ $path } = $info; + $self->_save( $path ); + }