Changeset 2543
- Timestamp:
- 02/24/10 08:27:57 (2 years ago)
- Location:
- Search-Query/trunk
- Files:
-
- 3 edited
-
Changes (modified) (1 diff)
-
lib/Search/Query/Dialect/SWISH.pm (modified) (1 diff)
-
t/05-swish.t (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Search-Query/trunk/Changes
r2537 r2543 38 38 * clarify NOT regex comments to include ! 39 39 * new KSx dialect 40 * both KSx and SWISH dialects do not (as SQL dialect does) 41 expand to all defined if fields if 'default_field' is not 42 specified. 43 -
Search-Query/trunk/lib/Search/Query/Dialect/SWISH.pm
r2536 r2543 67 67 #carp dump $self; 68 68 $self->{wildcard} = '*'; 69 if ( $self->parser->fields ) { 70 $self->{default_field} ||= $self->parser->default_field 71 || [ sort keys %{ $self->parser->fields } ]; 72 } 73 else { 74 $self->{default_field} ||= $self->parser->default_field 75 || 'swishdefault'; 76 } 69 70 $self->{default_field} ||= $self->parser->default_field 71 || 'swishdefault'; 72 73 my $swishdefault_field; 74 eval { $swishdefault_field = $self->parser->get_field('swishdefault'); }; 75 if ( !$swishdefault_field ) { 76 $self->parser->{fields}->{swishdefault} 77 = Search::Query::Field::SWISH->new( name => 'swishdefault' ); 78 } 79 77 80 if ( $self->{default_field} and !ref( $self->{default_field} ) ) { 78 81 $self->{default_field} = [ $self->{default_field} ]; -
Search-Query/trunk/t/05-swish.t
r2508 r2543 50 50 ok( my $query5 = $parser2->parse("joe smith"), "query5" ); 51 51 52 is( $query5, 53 qq/(email=joe OR first_name=joe OR last_name=joe) OR (email=smith OR first_name=smith OR last_name=smith)/, 54 "query5 string" 55 ); 52 is( $query5, qq/swishdefault=joe OR swishdefault=smith/, "query5 string" ); 56 53 57 54 ok( my $query6 = $parser2->parse(qq/"joe smith"/), "query6" ); 58 55 59 is( $query6, 60 qq/(email="joe smith" OR first_name="joe smith" OR last_name="joe smith")/, 61 "query6 string" 62 ); 56 is( $query6, qq/swishdefault="joe smith"/, "query6 string" ); 63 57 64 58 ok( my $parser3 = Search::Query::Parser->new( 65 fields => [qw( foo bar )],66 dialect => 'SWISH',67 croak_on_error => 1,59 fields => [qw( foo bar )], 60 dialect => 'SWISH', 61 croak_on_error => 1, 68 62 ), 69 63 "parser3" … … 72 66 ok( my $query7 = $parser3->parse('green'), "query7" ); 73 67 74 is( $query7, qq/ (bar=green OR foo=green)/, "query7 string" );68 is( $query7, qq/swishdefault=green/, "query7 string" ); 75 69 76 70 ok( my $parser4 = Search::Query::Parser->new( 77 fields => [qw( foo )],78 dialect => 'SWISH',79 croak_on_error => 1,71 fields => [qw( foo )], 72 dialect => 'SWISH', 73 croak_on_error => 1, 80 74 ), 81 75 "strict parser4" … … 93 87 }, 94 88 dialect => 'SWISH', 95 query_class_opts => { 96 fuzzify => 1, 97 }, 98 croak_on_error => 1, 89 query_class_opts => { fuzzify => 1, }, 90 croak_on_error => 1, 99 91 ), 100 92 "parser5" … … 116 108 fields => [qw( foo )], 117 109 dialect => 'SWISH', 118 query_class_opts => { 119 fuzzify => 1, 120 }, 121 croak_on_error => 1, 110 query_class_opts => { fuzzify => 1, }, 111 croak_on_error => 1, 122 112 ), 123 113 "parser6"
Note: See TracChangeset
for help on using the changeset viewer.