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