/[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

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

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

revision 28 by dpavlin, Mon Feb 19 16:28:00 2007 UTC revision 59 by dpavlin, Wed Feb 21 19:11:06 2007 UTC
# Line 8  Grep::Action::Search Line 8  Grep::Action::Search
8  =cut  =cut
9    
10  package Grep::Action::Search;  package Grep::Action::Search;
11  use base qw/Grep::Action::SearchItem/;  
12    use Grep::Search;
13    
14  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
15  use Time::HiRes qw/time/;  use Time::HiRes qw/time/;
16    
17    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 'Display format',
27                    render as 'select',
28                    available are qw/long short title/;
29    
30            param max =>
31                    label is 'Number or results',
32                    render as 'select',
33                    available are qw/10 20 50 100/;
34                    default is '20';
35    
36    };
37    
38  =head2 take_action  =head2 take_action
39    
40  =cut  =cut
# Line 20  use Time::HiRes qw/time/; Line 42  use Time::HiRes qw/time/;
42  sub take_action {  sub take_action {
43      my $self = shift;      my $self = shift;
44    
45          $self->SUPER::take_action( @_ );          my $q = $self->argument_value('q');
   
         my $coll = $self->result->content('search');  
46    
47          Jifty->log->error('result not collection but ', dump( $coll ))          return $self->result->error("Need search query") unless ($q);
                 unless ( $coll->isa('Jifty::Collection') );  
48    
49          if ($coll->count > 0) {          my $coll = Grep::Search->collection( $q ) ||
50          $self->result->message( 'Found ' . $coll->count . ' results' );                  return $self->result->error("No results");
51    
52                  warn "### about to fork!";          $self->log->fatal('result not collection but ', dump( $coll ))
53                    if ( !$coll || !$coll->isa('Jifty::Collection') );
54    
55                  if (fork) {          my $results = $coll->count;
                         my $t = $coll->count;  
                         warn "### sleeping $t s...";  
                         sleep $t;  
                         Grep::Event::Result->new({ coll => $coll, item_fragment => 'title' })->publish;  
                         exit 0;  
                 }  
56    
57            if ($results > 0) {
58            $self->result->message( "Found $results results for '$q'" );
59          } else {          } else {
60                  $self->result->error('No local results found, wait for remote results to arrive...');                  $self->result->error('No local results, try remote feeds...');
61          }          }
62    
63            $self->result->content( search => $coll );
64    
65          return $coll;          return $coll;
66  }  }
67    

Legend:
Removed from v.28  
changed lines
  Added in v.59

  ViewVC Help
Powered by ViewVC 1.1.26