/[cvs]/nfo/perl/libs/Data/Storage/Handler/File.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Storage/Handler/File.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations)
Tue Feb 18 19:18:50 2003 UTC (21 years, 4 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +36 -7 lines
+ sub constructor
+ sub _stat
+ sub _exists
+- rename key

1 joko 1.3 #!/usr/bin/perl
2    
3     ## ------------------------------------------------------------------------
4 joko 1.5 ## $Id: File.pm,v 1.4 2003/02/11 05:15:45 joko Exp $
5 joko 1.3 ## ------------------------------------------------------------------------
6 joko 1.4 ## $Log: File.pm,v $
7 joko 1.5 ## Revision 1.4 2003/02/11 05:15:45 joko
8     ## - no Exporter any more
9     ##
10 joko 1.4 ## Revision 1.3 2003/02/09 04:54:27 joko
11     ## - refactored lots of code to Data::Storage::Handler::File::Basic
12     ## - sorry!
13     ##
14 joko 1.3 ## ------------------------------------------------------------------------
15    
16    
17 joko 1.1 package Data::Storage::Handler::File;
18    
19     use strict;
20     use warnings;
21    
22 joko 1.3 use base qw( DesignPattern::Object );
23    
24 joko 1.1
25 joko 1.3 use Data::Storage::Handler::File::Basic qw( s2f a2f f2s );
26    
27 joko 1.5 sub constructor {
28     my $self = shift;
29     # patch - backward compatibility
30     if (!$self->{filename} && $self->{path}) {
31     $self->{filename} = $self->{path};
32     }
33     }
34    
35     sub _stat {
36     my $self = shift;
37     if (-e $self->{filename}) {
38     $self->{_meta}->{exists} = 1;
39     } else {
40     $self->{_meta}->{exists} = 0;
41     }
42     }
43    
44 joko 1.3 sub _read {
45     my $self = shift;
46 joko 1.5 $self->_stat();
47     if ($self->exists()) {
48     $self->{_buffer} = f2s($self->{filename});
49     }
50     #$self->{_buffer_orig} = f2s($self->{filename});
51 joko 1.1 }
52    
53 joko 1.3 sub toString {
54     my $self = shift;
55     $self->_read();
56     return $self->{_buffer};
57     }
58 joko 1.1
59 joko 1.3 sub addSuffix {
60     my $self = shift;
61     my $suffix = shift;
62 joko 1.5 $self->{filename} .= ".$suffix";
63 joko 1.1 }
64    
65 joko 1.3 sub save {
66     my $self = shift;
67     if ($self->{_buffer}) {
68 joko 1.5 s2f($self->{filename}, $self->{_buffer});
69 joko 1.3 } else {
70 joko 1.5 print "please load $self->{filename} before saving.", "\n";
71 joko 1.1 }
72     }
73    
74 joko 1.3 sub backup {
75     my $self = shift;
76     my $options = shift;
77 joko 1.5 my $path = $self->{filename};
78 joko 1.3 $path .= '.' . $options->{suffix} if $options->{suffix};
79     s2f($path, $self->{_buffer_orig});
80     }
81 joko 1.1
82 joko 1.3 sub matches {
83     my $self = shift;
84     my $pattern = shift;
85     $self->_read();
86     my $eval = '$self->{_buffer} =~ ' . $pattern . ';';
87     if (eval($eval)) { return 1; }
88 joko 1.5 }
89    
90     sub exists {
91     my $self = shift;
92     $self->_stat();
93     return $self->{_meta}->{exists};
94 joko 1.1 }
95    
96 joko 1.3 1;
97     __END__

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed