/[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 151 by dpavlin, Wed Jul 16 23:04:22 2008 UTC revision 224 by dpavlin, Sat Nov 1 00:58:24 2008 UTC
# Line 1  Line 1 
1  package Frey::Storage;  package Frey::Storage;
2  use Moose::Role;  use Moose::Role;
3    
4  use YAML::Syck;  with 'Frey::Path';
5    
6    #use YAML::Syck; # XXX doesn't play nice with Continuity
7    use YAML qw/LoadFile DumpFile/;
8    
9  =head2 store  =head2 store
10    
# Line 19  sub store { Line 22  sub store {
22          my $self = shift;          my $self = shift;
23          my ( $filename, $data ) = @_;          my ( $filename, $data ) = @_;
24          $filename .= '.yml';          $filename .= '.yml';
25            $self->mkbasepath( $filename );
26          DumpFile( $filename, $data );          DumpFile( $filename, $data );
27  }  }
28    
# Line 31  sub store { Line 35  sub store {
35  sub load {  sub load {
36          my ( $self, $filename ) = @_;          my ( $self, $filename ) = @_;
37          $filename .= '.yml';          $filename .= '.yml';
38            return if ! -e $filename;
39          $self->storage_timestamp->{ $filename } = _path_time( $filename );          $self->storage_timestamp->{ $filename } = _path_time( $filename );
40          LoadFile( $filename );          LoadFile( $filename );
41  }  }
# Line 39  sub load { Line 44  sub load {
44    
45  Reload file if on-disk copy have changed  Reload file if on-disk copy have changed
46    
47    $o->reload( 'filename.yml', \$data );    my $new_data = $o->reload( 'filename.yml' );
48    
49  =cut  =cut
50    
# Line 48  sub _path_time { Line 53  sub _path_time {
53  }  }
54    
55  sub reload {  sub reload {
56          my ( $self, $filename, $data ) = @_;          my ( $self, $filename ) = @_;
57          my $path = $filename . '.yml';          my $path = $filename . '.yml';
58          return if ( $self->storage_timestamp->{ $path } == _path_time( $path ) );          return if defined $self->storage_timestamp->{ $path } && $self->storage_timestamp->{ $path } == _path_time( $path );
59          warn "# reload $filename" if $self->debug;          warn "# reload $filename" if $self->debug;
60          $$data = $self->load( $filename );          $self->load( $filename );
         $data;  
61  }  }
62    
63  1;  1;

Legend:
Removed from v.151  
changed lines
  Added in v.224

  ViewVC Help
Powered by ViewVC 1.1.26