load storable dump
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 27 May 2010 15:43:40 +0000 (17:43 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 27 May 2010 15:43:40 +0000 (17:43 +0200)
lib/MojoFacets/Data.pm

index 41134cb..d37910b 100644 (file)
@@ -45,15 +45,18 @@ sub index {
        );
 }
 
-sub _save {
-       my ( $self, $path ) = @_;
-
-       my $name = $path;
+sub _dump_path {
+       my ( $self, $name ) = @_;
        my $dir = $self->app->home->rel_dir('data');
        $name =~ s/^$dir//;
        $name =~ s/\/+/_/g;
-       my $dump_path = '/tmp/mojo_facets.' . $name . '.storable';
+       return '/tmp/mojo_facets.' . $name . '.storable';
+}
 
+sub _save {
+       my ( $self, $path ) = @_;
+
+       my $dump_path = $self->_dump_path( $path );
        warn "save loaded to $dump_path";
        my $info = $loaded->{$path};
        store $info, $dump_path;
@@ -78,6 +81,14 @@ sub _load_path {
                warn "reload $full_path, modified ", time() - $mtime, " seconds ago\n";
        }
 
+       my $dump_path = $self->_dump_path( $path );
+       if ( -e $dump_path ) {
+               warn "dump_path $dump_path ", -s $dump_path, " bytes loading...\n";
+               my $info = retrieve $dump_path;
+               $loaded->{ $path } = $info;
+               return;
+       }
+
        # we could use Mojo::JSON here, but it's too slow
 #      $data = from_json read_file $path;
        my $data = read_file $full_path;