projects
/
MojoFacets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
track mtime of data files
[MojoFacets.git]
/
lib
/
MojoFacets
/
Data.pm
diff --git
a/lib/MojoFacets/Data.pm
b/lib/MojoFacets/Data.pm
index
5d40d8e
..
8587d9f
100644
(file)
--- a/
lib/MojoFacets/Data.pm
+++ b/
lib/MojoFacets/Data.pm
@@
-47,11
+47,15
@@
sub index {
sub _load_path {
my ( $self, $path ) = @_;
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;
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;
# 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,
stats => $stats,
full_path => $full_path,
size => -s $full_path,
+ mtime => (stat($full_path))[9],
data => $data,
};
data => $data,
};
@@
-405,7
+410,7
@@
sub _data_sorted_by {
;
warn "sorted: $order numeric: $numeric items: ", $#sorted + 1, "\n";
;
warn "sorted: $order numeric: $numeric items: ", $#sorted + 1, "\n";
- warn "# sorted ",dump( @sorted );
+
#
warn "# sorted ",dump( @sorted );
$loaded->{$path}->{sorted}->{$order} = [ @sorted ];
}
$loaded->{$path}->{sorted}->{$order} = [ @sorted ];
}