/[Grep]/lib/Grep/Action/Search.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

Annotation of /lib/Grep/Action/Search.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 47 - (hide annotations)
Wed Feb 21 03:04:48 2007 UTC (17 years, 3 months ago) by dpavlin
File size: 971 byte(s)
use real full-text search engine (Lucene in this case) for Search action,
added Grep::Search helper object
1 dpavlin 28 use strict;
2     use warnings;
3    
4     =head1 NAME
5    
6     Grep::Action::Search
7    
8     =cut
9    
10     package Grep::Action::Search;
11    
12 dpavlin 47 use Grep::Search;
13    
14 dpavlin 28 use Data::Dump qw/dump/;
15     use Time::HiRes qw/time/;
16    
17 dpavlin 47 use Jifty::Param::Schema;
18     use Jifty::Action schema {
19    
20     param q =>
21     type is 'text',
22     label is 'Search for',
23     hint is 'enter few words to search for';
24    
25     param item_fragment =>
26     label is 'Show',
27     render as 'select',
28     available are qw/long short title/;
29    
30     };
31    
32 dpavlin 28 =head2 take_action
33    
34     =cut
35    
36     sub take_action {
37     my $self = shift;
38    
39 dpavlin 47 my $q = $self->argument_value('q') || warn "no q?";
40 dpavlin 29
41 dpavlin 47 my $coll = Grep::Search->collection( $q );
42 dpavlin 28
43     Jifty->log->error('result not collection but ', dump( $coll ))
44     unless ( $coll->isa('Jifty::Collection') );
45    
46 dpavlin 29 my $results = $coll->count;
47 dpavlin 28
48 dpavlin 29 if ($results > 0) {
49 dpavlin 43 $self->result->message( "Found $results results for '$q'" );
50 dpavlin 28 } else {
51 dpavlin 38 $self->result->error('No local results, try remote feeds...');
52 dpavlin 28 }
53    
54 dpavlin 47 $self->result->content( search => $coll );
55    
56 dpavlin 28 return $coll;
57     }
58    
59     1;
60    

  ViewVC Help
Powered by ViewVC 1.1.26