/[Search-Estraier]/trunk/lib/Search/Estraier.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/lib/Search/Estraier.pm

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

revision 5 by dpavlin, Wed Jan 4 14:38:35 2006 UTC revision 8 by dpavlin, Wed Jan 4 15:04:58 2006 UTC
# Line 43  implementation. It also includes methods Line 43  implementation. It also includes methods
43    
44  package Search::Estraier::Document;  package Search::Estraier::Document;
45    
46    use Carp qw/confess/;
47    
48  =head1 Search::Estraier::Document  =head1 Search::Estraier::Document
49    
50  Document for HyperEstraier  Document for HyperEstraier
# Line 58  sub new { Line 60  sub new {
60          my $self = {@_};          my $self = {@_};
61          bless($self, $class);          bless($self, $class);
62    
63            $self->{id} = -1;
64    
65          $self ? return $self : return undef;          $self ? return $self : return undef;
66  }  }
67    
68    
69  =head2 add_attr  =head2 add_attr
70    
71    Add an attribute.
72    
73    $doc->add_attr( name => 'value' );    $doc->add_attr( name => 'value' );
74    
75  B<FIXME>: delete attribute using  B<FIXME>: delete attribute using
# Line 77  sub add_attr { Line 83  sub add_attr {
83          my $attrs = {@_};          my $attrs = {@_};
84    
85          while (my ($name, $value) = each %{ $attrs }) {          while (my ($name, $value) = each %{ $attrs }) {
86                  push @{ $self->{attrs}->{_s($name)} }, _s($value);                  $self->{attrs}->{_s($name)} = _s($value);
87          }          }
88    
89            return 1;
90  }  }
91    
92    
93  =head2 add_text  =head2 add_text
94    
95    Add a sentence of text.
96    
97    $doc->add_text('this is example text to display');    $doc->add_text('this is example text to display');
98    
99  =cut  =cut
# Line 99  sub add_text { Line 109  sub add_text {
109    
110  =head2 add_hidden_text  =head2 add_hidden_text
111    
112    Add a hidden sentence.
113    
114    $doc->add_hidden_text('this is example text just for search');    $doc->add_hidden_text('this is example text just for search');
115    
116  =cut  =cut
# Line 111  sub add_hidden_text { Line 123  sub add_hidden_text {
123          push @{ $self->{htexts} }, _s($text);          push @{ $self->{htexts} }, _s($text);
124  }  }
125    
126    =head2 id
127    
128    Get the ID number of document. If the object has never been registred, C<-1> is returned.
129    
130      print $doc->id;
131    
132    =cut
133    
134    sub id {
135            my $self = shift;
136            return $self->{id};
137    }
138    
139    =head2 attr_names
140    
141    Get a list of attribute names of a document object.
142    
143      my @attrs = $doc->attr_names;
144    
145    =cut
146    
147    sub attr_names {
148            my $self = shift;
149            confess "attr_names return array, not scalar" if (! wantarray);
150            return sort keys %{ $self->{attrs} };
151    }
152    
153    
154    =head2 attr
155    
156    Get the value of an attribute.
157    
158      my $value = $doc->attr( 'attribute' );
159    
160    =cut
161    
162    sub attr {
163            my $self = shift;
164            my $name = shift;
165    
166            return $self->{'attrs'}->{ $name };
167    }
168    
169  =head2 dump_draft  =head2 dump_draft
170    
171    print $doc->dump_draft;    print $doc->dump_draft;

Legend:
Removed from v.5  
changed lines
  Added in v.8

  ViewVC Help
Powered by ViewVC 1.1.26