X-Git-Url: http://git.rot13.org/?p=MojoFacets.git;a=blobdiff_plain;f=lib%2FMojoFacets%2FData.pm;h=8587d9f1a017076e4ee43a8a67c2f41b830ac0e6;hp=a5ae43f7b795da05c3e170f3360373067a2cb58a;hb=4444a4503d8f0475e55f8b66ff593f70a72e1ffc;hpb=2e343e39c123fbcc6cb21c944c962d587a11c63f diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index a5ae43f..8587d9f 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -47,11 +47,15 @@ sub index { sub _load_path { my ( $self, $path ) = @_; - return if defined $loaded->{$path}->{data}; - my $full_path = $self->app->home->rel_file( 'data/' . $path ); die "$full_path $!" unless -r $full_path; + if ( defined $loaded->{$path}->{data} ) { + my $mtime = (stat($full_path))[9]; + return if $loaded->{$path}->{mtime} == $mtime; + warn "reload $full_path, modified ", time() - $mtime, " seconds ago\n"; + } + # we could use Mojo::JSON here, but it's too slow # $data = from_json read_file $path; my $data = read_file $full_path; @@ -149,6 +153,7 @@ sub _load_path { stats => $stats, full_path => $full_path, size => -s $full_path, + mtime => (stat($full_path))[9], data => $data, };