/[SWISH-PlusPlus]/trunk/PlusPlus.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/PlusPlus.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 9 by dpavlin, Sun Dec 5 00:59:50 2004 UTC revision 10 by dpavlin, Sun Dec 5 12:48:00 2004 UTC
# Line 4  use 5.008004; Line 4  use 5.008004;
4  use strict;  use strict;
5  use warnings;  use warnings;
6    
7  our $VERSION = '0.03';  our $VERSION = '0.04';
8    
9  use Carp;  use Carp;
10  use File::Temp qw/ tempdir /;  use File::Temp qw/ tempdir /;
# Line 31  performance. However, this module is not Line 31  performance. However, this module is not
31    
32  =head1 METHODS  =head1 METHODS
33    
34  =head2 open  =head2 new
35    
36  Create new indexing object.  Create new indexing object.
37    
38    my $i = SWISH::PlusPlus->open(    my $i = SWISH::PlusPlus->new(
39          index_dir => '/path/to/index',          index_dir => '/path/to/index',
40          index => 'index++',          index => 'index++',
41          search => 'search++',          search => 'search++',
# Line 44  Create new indexing object. Line 44  Create new indexing object.
44          use_stopwords => 1,          use_stopwords => 1,
45    );    );
46    
47  Options to open are following:  Options to new are following:
48    
49  =over 5  =over 5
50    
# Line 81  Use built-in SWISH++ stop words. By defa Line 81  Use built-in SWISH++ stop words. By defa
81    
82  =cut  =cut
83    
84  sub open {  sub new {
85          my $class = shift;          my $class = shift;
86          my $self = {@_};          my $self = {@_};
87          bless($self, $class);          bless($self, $class);
# Line 98  sub open { Line 98  sub open {
98          $self->{'index'} ||= 'index';          $self->{'index'} ||= 'index';
99          $self->{'search'} ||= 'search';          $self->{'search'} ||= 'search';
100    
101          print STDERR "## open index_dir: ",$self->{'index_dir'}," index: ",$self->{'index'}, " search: ",$self->{'search'},"\n" if ($self->{'debug'});          print STDERR "## new index_dir: ",$self->{'index_dir'}," index: ",$self->{'index'}, " search: ",$self->{'search'},"\n" if ($self->{'debug'});
102    
103          $self ? return $self : return undef;          $self ? return $self : return undef;
104  }  }
# Line 106  sub open { Line 106  sub open {
106    
107  =head2 check_bin  =head2 check_bin
108    
109  Check if swish++ binaries specified in L<open> are available and verify  Check if swish++ binaries specified in L<new> are available and verify
110  version signature.  version signature.
111    
112    if ($i->check_bin) {    if ($i->check_bin) {
# Line 218  sub search { Line 218  sub search {
218          my $open_cmd = $self->{'search'}." -i ".$self->{'index_dir'}.'/index "'.$query.'" |';          my $open_cmd = $self->{'search'}." -i ".$self->{'index_dir'}.'/index "'.$query.'" |';
219          print STDERR "## search $open_cmd\n" if ($self->{'debug'});          print STDERR "## search $open_cmd\n" if ($self->{'debug'});
220    
221          CORE::open(SEARCH, $open_cmd) || confess "can't start $open_cmd: $!";          open(SEARCH, $open_cmd) || confess "can't start $open_cmd: $!";
222          while(<SEARCH>) {          while(<SEARCH>) {
223                  next if (/^#/);                  next if (/^#/);
224                  chomp;                  chomp;
# Line 266  sub _init_indexer { Line 266  sub _init_indexer {
266          my $opt = "-v 4";          my $opt = "-v 4";
267    
268          unless ($self->{'use_stopwrods'}) {          unless ($self->{'use_stopwrods'}) {
269                  CORE::open(STOP, '>', "_stopwords_") || carp "can't create empty stopword file, skipping\n";                  open(STOP, '>', "_stopwords_") || carp "can't create empty stopword file, skipping\n";
270                  print STOP "  ";                  print STOP "  ";
271                  close(STOP);                  close(STOP);
272                  $opt .= " -s _stopwords_";                  $opt .= " -s _stopwords_";
# Line 275  sub _init_indexer { Line 275  sub _init_indexer {
275          my $open_cmd = '| '.$self->{'index'}.' '.$opt.' -e "html:*" -i '.$self->{'index_dir'}.'/index -';          my $open_cmd = '| '.$self->{'index'}.' '.$opt.' -e "html:*" -i '.$self->{'index_dir'}.'/index -';
276    
277    
278          CORE::open($self->{'index_fh'}, $open_cmd) || confess "can't start index with $open_cmd: $!";          open($self->{'index_fh'}, $open_cmd) || confess "can't start index with $open_cmd: $!";
279    
280    
281          return $self->{'index_fh'};          return $self->{'index_fh'};
# Line 309  sub _create_doc { Line 309  sub _create_doc {
309    
310          my $path = $self->{'tmp_dir'} || confess "no tmp_dir?";          my $path = $self->{'tmp_dir'} || confess "no tmp_dir?";
311    
312          CORE::open(TMP, '>', $arg->{'path'}) || die "can't create temp file ".$arg->{'path'}.": $!";          open(TMP, '>', $arg->{'path'}) || die "can't create temp file ".$arg->{'path'}.": $!";
313    
314          print TMP '<html><head>';          print TMP '<html><head>';
315    
# Line 366  None by default. Line 366  None by default.
366  Debian version of swish++ is often old (version 5 at moment of this writing  Debian version of swish++ is often old (version 5 at moment of this writing
367  while version 6 is available in source code), so this module by default  while version 6 is available in source code), so this module by default
368  uses executable names B<index> and B<search> for self-compiled version  uses executable names B<index> and B<search> for self-compiled version
369  instead of one from Debian package. See L<open> how to specify Debian  instead of one from Debian package. See L<new> how to specify Debian
370  default binaries B<index++> and B<search++>.  default binaries B<index++> and B<search++>.
371    
372  =head2 SWISH++  =head2 SWISH++

Legend:
Removed from v.9  
changed lines
  Added in v.10

  ViewVC Help
Powered by ViewVC 1.1.26