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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show 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 #!/usr/bin/perl
2
3 ## ------------------------------------------------------------------------
4 ## $Id: File.pm,v 1.4 2003/02/11 05:15:45 joko Exp $
5 ## ------------------------------------------------------------------------
6 ## $Log: File.pm,v $
7 ## Revision 1.4 2003/02/11 05:15:45 joko
8 ## - no Exporter any more
9 ##
10 ## 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 ## ------------------------------------------------------------------------
15
16
17 package Data::Storage::Handler::File;
18
19 use strict;
20 use warnings;
21
22 use base qw( DesignPattern::Object );
23
24
25 use Data::Storage::Handler::File::Basic qw( s2f a2f f2s );
26
27 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 sub _read {
45 my $self = shift;
46 $self->_stat();
47 if ($self->exists()) {
48 $self->{_buffer} = f2s($self->{filename});
49 }
50 #$self->{_buffer_orig} = f2s($self->{filename});
51 }
52
53 sub toString {
54 my $self = shift;
55 $self->_read();
56 return $self->{_buffer};
57 }
58
59 sub addSuffix {
60 my $self = shift;
61 my $suffix = shift;
62 $self->{filename} .= ".$suffix";
63 }
64
65 sub save {
66 my $self = shift;
67 if ($self->{_buffer}) {
68 s2f($self->{filename}, $self->{_buffer});
69 } else {
70 print "please load $self->{filename} before saving.", "\n";
71 }
72 }
73
74 sub backup {
75 my $self = shift;
76 my $options = shift;
77 my $path = $self->{filename};
78 $path .= '.' . $options->{suffix} if $options->{suffix};
79 s2f($path, $self->{_buffer_orig});
80 }
81
82 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 }
89
90 sub exists {
91 my $self = shift;
92 $self->_stat();
93 return $self->{_meta}->{exists};
94 }
95
96 1;
97 __END__

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