/
InvIndex.pm
135 lines (80 loc) · 2.41 KB
/
InvIndex.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package SWISH::Prog::Native::InvIndex;
use strict;
use warnings;
use Carp;
use base qw( SWISH::Prog::InvIndex );
__PACKAGE__->mk_accessors(qw( file ));
our $VERSION = '0.69';
=head1 NAME
SWISH::Prog::Native::InvIndex - the native Swish-e index format
=head1 SYNOPSIS
# see SWISH::Prog::InvIndex
=head1 DESCRIPTION
The Native InvIndex represents the index.swish-e files.
=head1 METHODS
=cut
=head2 init
Sets file() to default index file name C<index.swish-e> unless
it is already set. If already set, confirms that file() is a child
of path().
=cut
sub init {
my $self = shift;
$self->SUPER::init(@_);
if ( !$self->file ) {
$self->file( $self->path->file('index.swish-e') );
}
else {
# TODO check that ->file is child of ->path
}
}
=head2 file
Returns a Path::Class::File object representing the main index file.
=head2 open
Creates path() if not already existent.
Since the native swish-e behaviour is to always create a temp index
and then rename it on close(), the clobber() attribute is effectively
ignored (always true).
=cut
sub open {
my $self = shift;
if ( -f $self->path ) {
croak $self->path . " is not a directory.";
}
if ( !-d $self->path ) {
#carp "mkpath $self->{path}";
$self->path->mkpath($self->verbose);
}
1;
}
1;
__END__
=head1 AUTHOR
Peter Karman, E<lt>perl@peknet.comE<gt>
=head1 BUGS
Please report any bugs or feature requests to C<bug-swish-prog at rt.cpan.org>, or through
the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog>.
I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc SWISH::Prog
You can also look for information at:
=over 4
=item * Mailing list
L<http://lists.swish-e.org/listinfo/users>
=item * RT: CPAN's request tracker
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=SWISH-Prog>
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/SWISH-Prog>
=item * CPAN Ratings
L<http://cpanratings.perl.org/d/SWISH-Prog>
=item * Search CPAN
L<http://search.cpan.org/dist/SWISH-Prog/>
=back
=head1 COPYRIGHT AND LICENSE
Copyright 2008-2009 by Peter Karman
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 SEE ALSO
L<http://swish-e.org/>