r45838 - in /trunk/libwebservice-solr-perl: Changes MANIFEST META.yml Makefile.PL README debian/changelog debian/control lib/WebService/Solr.pm lib/WebService/Solr/Query.pm lib/WebService/Solr/Response.pm t/query.t t/response.t
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Thu Oct 15 15:52:14 UTC 2009
Author: jawnsy-guest
Date: Thu Oct 15 15:52:00 2009
New Revision: 45838
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=45838
Log:
* New upstream release
* Add libdata-pageset-perl to dependencies
* Standards-Version 3.8.3 (drop perl version dependency)
Added:
trunk/libwebservice-solr-perl/t/response.t
- copied unchanged from r45837, branches/upstream/libwebservice-solr-perl/current/t/response.t
Modified:
trunk/libwebservice-solr-perl/Changes
trunk/libwebservice-solr-perl/MANIFEST
trunk/libwebservice-solr-perl/META.yml
trunk/libwebservice-solr-perl/Makefile.PL
trunk/libwebservice-solr-perl/README
trunk/libwebservice-solr-perl/debian/changelog
trunk/libwebservice-solr-perl/debian/control
trunk/libwebservice-solr-perl/lib/WebService/Solr.pm
trunk/libwebservice-solr-perl/lib/WebService/Solr/Query.pm
trunk/libwebservice-solr-perl/lib/WebService/Solr/Response.pm
trunk/libwebservice-solr-perl/t/query.t
Modified: trunk/libwebservice-solr-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/Changes?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/Changes (original)
+++ trunk/libwebservice-solr-perl/Changes Thu Oct 15 15:52:00 2009
@@ -1,4 +1,12 @@
Revision history for Perl extension WebService::Solr.
+
+0.08 Wed Oct 14 2009
+ - Allow scalar ref value in WebService::Solr::Query, which works like
+ SQL::Abstract (literal query)
+ - Fix status_message and status_code in Response
+ - Add Data::Pageset capabilities to Response (Jos Boumans)
+ - Ensure compatibility with older versions of Encode by making sure we
+ pass a string to encode() (Gert Brinkmann)
0.07 Fri Jun 26 2009
- Trap JSON::XS exceptions (Jos Boumans)
Modified: trunk/libwebservice-solr-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/MANIFEST?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/MANIFEST (original)
+++ trunk/libwebservice-solr-perl/MANIFEST Thu Oct 15 15:52:00 2009
@@ -28,4 +28,5 @@
t/request/optimize.t
t/request/ping.t
t/request/search.t
+t/response.t
t/use.t
Modified: trunk/libwebservice-solr-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/META.yml?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/META.yml (original)
+++ trunk/libwebservice-solr-perl/META.yml Thu Oct 15 15:52:00 2009
@@ -22,6 +22,8 @@
- t
requires:
Data::Page: 0
+ Data::Pageset: 0
+ Encode: 0
JSON::XS: 0
LWP::UserAgent: 0
Moose: 0
@@ -31,4 +33,4 @@
resources:
license: http://dev.perl.org/licenses/
repository: http://github.com/bricas/webservice-solr
-version: 0.07
+version: 0.08
Modified: trunk/libwebservice-solr-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/Makefile.PL?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/Makefile.PL (original)
+++ trunk/libwebservice-solr-perl/Makefile.PL Thu Oct 15 15:52:00 2009
@@ -12,9 +12,11 @@
requires 'LWP::UserAgent';
requires 'URI' => '1.28';
requires 'Data::Page';
+requires 'Data::Pageset';
requires 'XML::Generator' => '0.94';
requires 'JSON::XS';
requires 'Moose';
+requires 'Encode';
test_requires 'Test::More';
test_requires 'XML::Simple';
Modified: trunk/libwebservice-solr-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/README?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/README (original)
+++ trunk/libwebservice-solr-perl/README Thu Oct 15 15:52:00 2009
@@ -4,8 +4,8 @@
SYNOPSIS
my $solr = WebService::Solr->new;
$solr->add( @docs );
-
- my $response = $solr->search( $query );
+
+ my $response = $solr->search( $query );
for my $doc ( $response->docs ) {
print $doc->value_for( $id );
}
Modified: trunk/libwebservice-solr-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/debian/changelog?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/debian/changelog (original)
+++ trunk/libwebservice-solr-perl/debian/changelog Thu Oct 15 15:52:00 2009
@@ -1,8 +1,14 @@
-libwebservice-solr-perl (0.07-2) UNRELEASED; urgency=low
+libwebservice-solr-perl (0.08-1) UNRELEASED; urgency=low
+ [ Jonathan Yu ]
+ * New upstream release
+ * Add libdata-pageset-perl to dependencies
+ * Standards-Version 3.8.3 (drop perl version dependency)
+
+ [ Ryan Niebur ]
* Update jawnsy's email address
- -- Ryan Niebur <ryanryan52 at gmail.com> Tue, 01 Sep 2009 21:20:00 -0700
+ -- Jonathan Yu <jawnsy at cpan.org> Thu, 15 Oct 2009 08:08:45 -0400
libwebservice-solr-perl (0.07-1) unstable; urgency=low
Modified: trunk/libwebservice-solr-perl/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/debian/control?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/debian/control (original)
+++ trunk/libwebservice-solr-perl/debian/control Thu Oct 15 15:52:00 2009
@@ -2,15 +2,15 @@
Section: perl
Priority: optional
Build-Depends: debhelper (>= 7)
-Build-Depends-Indep: perl (>= 5.8.0), libxml-generator-perl (>= 0.94),
+Build-Depends-Indep: perl, libxml-generator-perl (>= 0.94),
libxml-simple-perl, libdata-page-perl, liburi-perl (>= 1.28), libwww-perl,
libjson-xs-perl, libmoose-perl, libtest-mock-lwp-perl, libtest-pod-perl,
- libtest-pod-coverage-perl
+ libtest-pod-coverage-perl, libdata-pageset-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
Uploaders: Brian Cassidy <brian.cassidy at gmail.com>,
Jaldhar H. Vyas <jaldhar at debian.org>, Antonio Radici <antonio at dyne.org>,
Jonathan Yu <jawnsy at cpan.org>
-Standards-Version: 3.8.2
+Standards-Version: 3.8.3
Homepage: http://search.cpan.org/dist/WebService-Solr/
Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libwebservice-solr-perl/
Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libwebservice-solr-perl/
@@ -19,7 +19,7 @@
Architecture: all
Depends: perl (>= 5.8.0), ${perl:Depends}, ${misc:Depends}, libdata-page-perl,
libxml-generator-perl (>= 0.94), libwww-perl, libjson-xs-perl, libmoose-perl,
- liburi-perl (>= 1.28)
+ liburi-perl (>= 1.28), libdata-pageset-perl
Suggests: solr-common (>= 1.2.0), solr-tomcat5.5 | solr-jetty
Description: Perl interface for the Solr (Lucene) web service
WebService::Solr provides a convenient way to interact with any Solr instance.
Modified: trunk/libwebservice-solr-perl/lib/WebService/Solr.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/lib/WebService/Solr.pm?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/lib/WebService/Solr.pm (original)
+++ trunk/libwebservice-solr-perl/lib/WebService/Solr.pm Thu Oct 15 15:52:00 2009
@@ -28,7 +28,7 @@
default => sub { { wt => 'json' } }
);
-our $VERSION = '0.07';
+our $VERSION = '0.08';
sub BUILDARGS {
my ( $self, $url, $options ) = @_;
@@ -150,7 +150,7 @@
my $req = HTTP::Request->new(
POST => $url,
HTTP::Headers->new( Content_Type => 'text/xml; charset=utf-8' ),
- '<?xml version="1.0" encoding="UTF-8"?>' . encode('utf8', $xml)
+ '<?xml version="1.0" encoding="UTF-8"?>' . encode('utf8', "$xml")
);
my $http_response = $self->agent->request($req);
Modified: trunk/libwebservice-solr-perl/lib/WebService/Solr/Query.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/lib/WebService/Solr/Query.pm?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/lib/WebService/Solr/Query.pm (original)
+++ trunk/libwebservice-solr-perl/lib/WebService/Solr/Query.pm Thu Oct 15 15:52:00 2009
@@ -134,9 +134,16 @@
}
sub _value_SCALAR {
- my ( $self, $k, $v ) = @_;
- $v = $self->escape( $v );
- my $r = qq($k:"$v");
+ my ( $self, $k, $v ) = @_;
+
+ if( ref $v ) {
+ $v = $$v;
+ }
+ else {
+ $v = '"' . $self->escape( $v ) . '"';
+ }
+
+ my $r = qq($k:$v);
$r =~ s{^:}{};
D && $self->___log("Returning: $r");
@@ -308,14 +315,14 @@
complex queries. The C<-and> and C<-or> prefixes have been provided for this
need.
- my $q = WebService::Solr::Query->new( foo => [
+ my $q = WebService::Solr::Query->new( { foo => [
-and => { -prohibit => 'bar' }, { -require => 'baz' }
- ] );
+ ] } );
# RESULT: (((-foo:"bar") AND (+foo:"baz")))
- my $q = WebService::Solr::Query->new( foo => [
+ my $q = WebService::Solr::Query->new( { foo => [
-or => { -require => 'bar' }, { -prohibit => 'baz' }
- ] );
+ ] } );
# RESULT: (((+foo:"bar") OR (-foo:"baz")))
=head2 Default Field
@@ -327,10 +334,10 @@
=head2 Require/Prohibit
- my $q = WebService::Solr::Query->new( foo => { -require => 'bar' } );
+ my $q = WebService::Solr::Query->new( { foo => { -require => 'bar' } } );
# RESULT: (+foo:"bar")
- my $q = WebService::Solr::Query->new( foo => { -prohibit => 'bar' } );
+ my $q = WebService::Solr::Query->new( { foo => { -prohibit => 'bar' } } );
# RESULT: (-foo:"bar")
=head2 Range
@@ -339,31 +346,41 @@
exclusive (C<-range_exc>). The C<-range> prefix can be used in place of
C<-range_inc>.
- my $q = WebService::Solr::Query->new( foo => { -range => ['a', 'z'] } );
+ my $q = WebService::Solr::Query->new( { foo => { -range => ['a', 'z'] } } );
# RESULT: (+foo:[a TO z])
- my $q = WebService::Solr::Query->new( foo => { -range_exc => ['a', 'z'] } );
+ my $q = WebService::Solr::Query->new( { foo => { -range_exc => ['a', 'z'] } } );
# RESULT: (+foo:{a TO z})
=head2 Boost
- my $q = WebService::Solr::Query->new( foo => { -boost => [ 'bar', '2.0' ] } );
+ my $q = WebService::Solr::Query->new( { foo => { -boost => [ 'bar', '2.0' ] } } );
# RESULT: (foo:"bar"^2.0)
=head2 Proximity
- my $q = WebService::Solr::Query->new( foo => { -proximity => [ 'bar baz', 10 ] } );
+ my $q = WebService::Solr::Query->new( { foo => { -proximity => [ 'bar baz', 10 ] } } );
# RESULT: (foo:"bar baz"~10)
=head2 Fuzzy
- my $q = WebService::Solr::Query->new( foo => { -fuzzy => [ 'bar', '0.8' ] } );
+ my $q = WebService::Solr::Query->new( { foo => { -fuzzy => [ 'bar', '0.8' ] } } );
# RESULT: (foo:bar~0.8)
=head2 Boost
- my $q = WebService::Solr::Query->new( foo => { -boost => [ 'bar', '2.0' ] } );
+ my $q = WebService::Solr::Query->new( { foo => { -boost => [ 'bar', '2.0' ] } } );
# RESULT: (foo:"bar"^2.0)
+
+=head2 Literal Queries
+
+Specifying a scalar ref as a value in a key-value pair will allow arbitrary
+queries to be sent across the line. B<NB:> This will bypass any data
+massaging done on regular strings, thus the onus of properly escaping the
+data is left to the user.
+
+ my $q = WebService::Solr::Query->new( { '*' => \'*' } )
+ # RESULT (*:*)
=head1 ACCESSORS
Modified: trunk/libwebservice-solr-perl/lib/WebService/Solr/Response.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/lib/WebService/Solr/Response.pm?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/lib/WebService/Solr/Response.pm (original)
+++ trunk/libwebservice-solr-perl/lib/WebService/Solr/Response.pm Thu Oct 15 15:52:00 2009
@@ -4,12 +4,18 @@
use WebService::Solr::Document;
use Data::Page;
+use Data::Pageset;
use JSON::XS ();
has 'raw_response' => (
is => 'ro',
isa => 'Object',
- handles => [ qw( status_code status_message is_success is_error ) ]
+ handles => {
+ status_code => 'code',
+ status_message => 'message',
+ is_success => 'is_success',
+ is_error => 'is_error'
+ },
);
has 'content' => ( is => 'rw', isa => 'HashRef', lazy_build => 1 );
@@ -18,6 +24,9 @@
( is => 'rw', isa => 'ArrayRef', auto_deref => 1, lazy_build => 1 );
has 'pager' => ( is => 'rw', isa => 'Data::Page', lazy_build => 1 );
+
+has '_pageset_slide' => ( is => 'rw', isa => 'Data::Pageset', lazy_build => 1 );
+has '_pageset_fixed' => ( is => 'rw', isa => 'Data::Pageset', lazy_build => 1 );
sub BUILDARGS {
my ( $self, $res ) = @_;
@@ -63,6 +72,42 @@
return $pager;
}
+sub pageset {
+ my $self = shift;
+ my %args = @_;
+
+ my $mode = $args{'mode'} || 'fixed';
+ my $meth = "_pageset_". $mode;
+ my $pred = "_has".$meth;
+
+ ### use a cached version if possilbe
+ return $self->$meth if $self->$pred;
+
+ my $pager = $self->___build_pageset( @_ );
+
+ ### store the result
+ return $self->$meth( $pager );
+}
+
+sub ___build_pageset {
+ my $self = shift;
+ my $struct = $self->content;
+
+ return unless exists $struct->{ response }->{ numFound };
+
+ my $rows = $struct->{ responseHeader }->{ params }->{ rows };
+ my $pager = Data::Pageset->new({
+ total_entries => $struct->{ response }->{ numFound },
+ entries_per_page => $rows || 10,
+ current_page => do { $struct->{ response }->{ start } / $rows + 1 },
+ pages_per_set => 10,
+ mode => 'fixed', # default, or 'slide'
+ @_,
+ });
+
+ return $pager;
+}
+
sub facet_counts {
return shift->content->{ facet_counts };
}
@@ -114,6 +159,8 @@
=item * pager - a L<Data::Page> object for the search results.
+=item * pageset - a L<Data::Pageset> object for the search results. Takes the same arguments as C<< Data::Pageset->new >> does. All arguments optional.
+
=back
=head1 METHODS
Modified: trunk/libwebservice-solr-perl/t/query.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libwebservice-solr-perl/t/query.t?rev=45838&op=diff
==============================================================================
--- trunk/libwebservice-solr-perl/t/query.t (original)
+++ trunk/libwebservice-solr-perl/t/query.t Thu Oct 15 15:52:00 2009
@@ -22,6 +22,9 @@
expect => '(("star trek" OR "star wars"))'
);
+ # scalarref pass-through
+ _check( query => { '*' => \'*' }, expect => '(*:*)' );
+
# field
_check(
query => { title => 'Spaceballs' },
More information about the Pkg-perl-cvs-commits
mailing list