/[Frey]/trunk/lib/Frey/Storage.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Storage.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 300 by dpavlin, Wed Nov 5 08:21:05 2008 UTC revision 301 by dpavlin, Wed Nov 5 09:50:14 2008 UTC
# Line 5  with 'Frey::Path'; Line 5  with 'Frey::Path';
5    
6  #use YAML::Syck; # XXX doesn't play nice with Continuity  #use YAML::Syck; # XXX doesn't play nice with Continuity
7  use YAML qw/LoadFile DumpFile/;  use YAML qw/LoadFile DumpFile/;
8    use File::Slurp;
9    use Carp qw/croak carp/;
10    
11  =head2 store  =head2 store
12    
# Line 21  has 'storage_timestamp' => ( Line 23  has 'storage_timestamp' => (
23  sub store {  sub store {
24          my $self = shift;          my $self = shift;
25          my ( $filename, $data ) = @_;          my ( $filename, $data ) = @_;
26          $filename .= '.yml' unless $filename =~ m{\.ya?ml$}i;          if ( $filename =~ m{\.ya?ml$}i ) {
27          $self->mkbasepath( $filename );                  $self->mkbasepath( $filename );
28          DumpFile( $filename, $data );                  DumpFile( $filename, $data );
29          warn "created $filename ", -s $filename;          } else {
30                    croak "without extension we can save only scalar data" if ref($data);
31                    write_file( $filename, $data );
32            }
33            carp "created $filename ", -s $filename;
34  }  }
35    
36  =head2 load  =head2 load
# Line 35  sub store { Line 41  sub store {
41    
42  sub load {  sub load {
43          my ( $self, $filename ) = @_;          my ( $self, $filename ) = @_;
         $filename .= '.yml';  
44          return if ! -e $filename;          return if ! -e $filename;
45            my $data;
46            if ( $filename =~ m{\.ya?ml}i ) {
47                    $data = LoadFile( $filename );
48            } else {
49                    $data = read_file( $filename );
50            }
51          $self->storage_timestamp->{ $filename } = _path_time( $filename );          $self->storage_timestamp->{ $filename } = _path_time( $filename );
52          LoadFile( $filename );          return $data;
53  }  }
54    
55  =head2 reload  =head2 reload
# Line 55  sub _path_time { Line 66  sub _path_time {
66    
67  sub reload {  sub reload {
68          my ( $self, $filename ) = @_;          my ( $self, $filename ) = @_;
69          my $path = $filename . '.yml';          return if defined $self->storage_timestamp->{ $filename } && $self->storage_timestamp->{ $filename } == _path_time( $filename );
         return if defined $self->storage_timestamp->{ $path } && $self->storage_timestamp->{ $path } == _path_time( $path );  
70          warn "# reload $filename" if $self->debug;          warn "# reload $filename" if $self->debug;
71          $self->load( $filename );          $self->load( $filename );
72  }  }

Legend:
Removed from v.300  
changed lines
  Added in v.301

  ViewVC Help
Powered by ViewVC 1.1.26