/[suikacvs]/webroot/swe/lib/SWE/DB/HashedProps.pm
Suika

Contents of /webroot/swe/lib/SWE/DB/HashedProps.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Sun Nov 9 14:08:58 2008 UTC (16 years, 5 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +3 -6 lines
++ swe/lib/SWE/DB/ChangeLog	9 Nov 2008 14:08:47 -0000
	* VersionControl.pm: New module.

	* HashedProps.pm, IDText.pm: Support for |version_control|
	property is added.

	* SuikaWiki3PageList.pm (_save_data): Renamed as |save_data|.  Do
	nothing if the data has not been loaded from the file.
	(delete_data): New method.

2008-11-09  Wakaba  <wakaba@suika.fam.cx>

1 package SWE::DB::HashedProps;
2 use strict;
3
4 require SWE::DB::IDProps;
5 push our @ISA, 'SWE::DB::IDProps';
6
7 require Digest::MD5;
8 require Encode;
9
10 sub _get_file_name ($$$) {
11 my $self = shift;
12 my $hash = Digest::MD5::md5_hex (Encode::encode ('utf8', $_[0]));
13 my $mkdir = $_[1];
14
15 my $dir1 = $self->{root_directory_name} . substr ($hash, 0, 2);
16 my $dir2 = $dir1 . '/' . substr ($hash, 2, 2);
17 substr ($hash, 0, 4) = '';
18
19 my $file_name = $dir2 . '/' . $hash . $self->{leaf_suffix};
20
21 unless ($mkdir) {
22 return $file_name;
23 }
24
25 unless (-d $dir1) {
26 mkdir $dir1 or die "$0: $dir1: $!";
27 }
28
29 unless (-d $dir2) {
30 mkdir $dir2 or die "$0: $dir2: $!";
31 }
32
33 if ($self->{version_control}) {
34 $self->{version_control}->add_directory ($dir1);
35 $self->{version_control}->add_directory ($dir2);
36 }
37
38 return $file_name;
39 } # _get_file_name
40
41 1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24