[Catalyst-commits] r10528 - in CatalystX-CRUD/CatalystX-CRUD/trunk: . lib/CatalystX lib/CatalystX/CRUD lib/CatalystX/CRUD/Iterator lib/CatalystX/CRUD/Model lib/CatalystX/CRUD/ModelAdapter lib/CatalystX/CRUD/Object lib/CatalystX/CRUD/Test t

karpet at dev.catalyst.perl.org karpet at dev.catalyst.perl.org
Sat Jun 13 18:29:27 GMT 2009


Author: karpet
Date: 2009-06-13 18:29:27 +0000 (Sat, 13 Jun 2009)
New Revision: 10528

Modified:
   CatalystX-CRUD/CatalystX-CRUD/trunk/Changes
   CatalystX-CRUD/CatalystX-CRUD/trunk/Makefile.PL
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Controller.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator/File.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/File.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/Utils.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/ModelAdapter/File.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object/File.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/REST.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Results.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Controller.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Form.pm
   CatalystX-CRUD/CatalystX-CRUD/trunk/t/04-query.t
Log:
release 0.45

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/Changes
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/Changes	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/Changes	2009-06-13 18:29:27 UTC (rev 10528)
@@ -218,5 +218,6 @@
           if not supported. Fixes spurious test breakage on Win32.
           See https://rt.cpan.org/Ticket/Display.html?id=46314
 
-
-        
+0.45    13 June 2009
+        * fix multi-column sort via cxc-order param (requires Sort::SQL 0.04)
+ 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/Makefile.PL
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/Makefile.PL	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/Makefile.PL	2009-06-13 18:29:27 UTC (rev 10528)
@@ -20,7 +20,7 @@
         'Moose'                 => 0,  
         'MooseX::Emulate::Class::Accessor::Fast' => 0,
         'Data::Dump'            => 0,  # for testing
-        'Sort::SQL'             => 0.03,
+        'Sort::SQL'             => 0.04,
         'Search::QueryParser::SQL' => 0.005,
 
     },

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Controller.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Controller.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Controller.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -37,7 +37,7 @@
     naked_results         => 0,
 );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator/File.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator/File.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator/File.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -3,7 +3,7 @@
 use warnings;
 use Carp;
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Iterator.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -4,7 +4,7 @@
 use Carp;
 use base qw( CatalystX::CRUD );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/File.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/File.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/File.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -10,7 +10,7 @@
 
 __PACKAGE__->mk_accessors(qw( inc_path ));
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 # test whether symlink() works at compile time
 my $SYMLINK_SUPPORTED = eval { symlink("",""); 1 };

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/Utils.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/Utils.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model/Utils.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -9,7 +9,7 @@
 
 __PACKAGE__->mk_accessors(qw( use_ilike ne_sign ));
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 
@@ -171,7 +171,7 @@
     my $p2q    = $self->params_to_sql_query($field_names);
     my $params = $c->req->params;
     my $sp     = Sort::SQL->string2array( $self->_which_sort($c) );
-    my $s      = join( ' ', map {%$_} @$sp );
+    my $s      = join( ', ', map { join( ' ', %$_ ) } @$sp );
     my $offset = $params->{'cxc-offset'} || $params->{'_offset'};
     my $page_size 
         = $params->{'cxc-page_size'}

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Model.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -9,7 +9,7 @@
     Catalyst::Model
 );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 __PACKAGE__->mk_accessors(qw( object_class page_size ));
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/ModelAdapter/File.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/ModelAdapter/File.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/ModelAdapter/File.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -3,7 +3,7 @@
 use warnings;
 use base qw( CatalystX::CRUD::ModelAdapter );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object/File.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object/File.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object/File.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -13,7 +13,7 @@
 __PACKAGE__->mk_accessors(qw( content file ));
 __PACKAGE__->delegate_class('Path::Class::File');
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Object.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -12,7 +12,7 @@
 __PACKAGE__->mk_ro_accessors(qw( delegate ));
 __PACKAGE__->mk_classdata('delegate_class');
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/REST.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/REST.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/REST.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -10,7 +10,7 @@
 __PACKAGE__->mk_accessors(qw( enable_rpc_compat ));
 __PACKAGE__->config( enable_rpc_compat => 0 );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 #warn "REST VERSION = $VERSION";
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Results.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Results.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Results.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -8,7 +8,7 @@
 
 __PACKAGE__->mk_ro_accessors(qw( count pager query results ));
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Controller.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Controller.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Controller.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -8,7 +8,7 @@
 
 __PACKAGE__->mk_accessors( qw( form_fields ) );
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Form.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Form.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD/Test/Form.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -7,7 +7,7 @@
 
 __PACKAGE__->mk_accessors(qw( params fields ));
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD.pm	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/lib/CatalystX/CRUD.pm	2009-06-13 18:29:27 UTC (rev 10528)
@@ -4,7 +4,7 @@
 use strict;
 use Carp;
 
-our $VERSION = '0.44';
+our $VERSION = '0.45';
 
 =head1 NAME
 

Modified: CatalystX-CRUD/CatalystX-CRUD/trunk/t/04-query.t
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD/trunk/t/04-query.t	2009-06-13 18:00:12 UTC (rev 10527)
+++ CatalystX-CRUD/CatalystX-CRUD/trunk/t/04-query.t	2009-06-13 18:29:27 UTC (rev 10528)
@@ -1,4 +1,4 @@
-use Test::More tests => 14;
+use Test::More tests => 16;
 use strict;
 use lib qw( lib t/lib );
 use_ok('CatalystX::CRUD::Model::File');
@@ -18,15 +18,17 @@
 
 #warn $res->content;
 
-is( $res->content, qq/{
-  limit           => 50,
-  offset          => 0,
-  plain_query     => { file => ["bar"] },
-  plain_query_str => "(file='bar')",
-  query           => ["file", "bar"],
-  sort_by         => "file DESC",
-  sort_order      => [{ file => "DESC" }],
-}/, "?file=bar"
+is_deeply(
+    eval $res->content,
+    {   limit           => 50,
+        offset          => 0,
+        plain_query     => { file => ["bar"] },
+        plain_query_str => "(file='bar')",
+        query           => [ "file", "bar" ],
+        sort_by         => "file DESC",
+        sort_order      => [ { file => "DESC" } ],
+    },
+    "?file=bar"
 );
 
 ok( $res = request('/search/search?file=bar&content=foo'),
@@ -34,15 +36,17 @@
 
 #warn $res->content;
 
-is( $res->content, qq/{
-  limit           => 50,
-  offset          => 0,
-  plain_query     => { content => ["foo"], file => ["bar"] },
-  plain_query_str => "(file='bar') AND (content='foo')",
-  query           => ["AND", ["file", "bar", "content", "foo"]],
-  sort_by         => "file DESC",
-  sort_order      => [{ file => "DESC" }],
-}/, "?file=bar&content=foo"
+is_deeply(
+    eval $res->content,
+    {   limit           => 50,
+        offset          => 0,
+        plain_query     => { content => ["foo"], file => ["bar"] },
+        plain_query_str => "(file='bar') AND (content='foo')",
+        query           => [ "AND", [ "file", "bar", "content", "foo" ] ],
+        sort_by         => "file DESC",
+        sort_order => [ { file => "DESC" } ],
+    },
+    "?file=bar&content=foo"
 );
 
 ok( $res
@@ -53,23 +57,24 @@
 
 #warn $res->content;
 
-is( $res->content, qq/{
-  limit           => 50,
-  offset          => 0,
-  plain_query     => { content => ["green", "red"], file => ["bar", "foo"] },
-  plain_query_str => "(file='bar' OR file='foo') AND (content='green' OR content='red')",
-  query           => [
-                       "AND",
-                       [
-                         "OR",
-                         ["file", "bar", "file", "foo"],
-                         "OR",
-                         ["content", "green", "content", "red"],
-                       ],
-                     ],
-  sort_by         => "file DESC",
-  sort_order      => [{ file => "DESC" }],
-}/, '?file=bar&file=foo&content=green&content=red'
+is_deeply(
+    eval $res->content,
+    {   limit  => 50,
+        offset => 0,
+        plain_query =>
+            { content => [ "green", "red" ], file => [ "bar", "foo" ] },
+        plain_query_str =>
+            "(file='bar' OR file='foo') AND (content='green' OR content='red')",
+        query => [
+            "AND",
+            [   "OR", [ "file",    "bar",   "file",    "foo" ],
+                "OR", [ "content", "green", "content", "red" ],
+            ],
+        ],
+        sort_by    => "file DESC",
+        sort_order => [ { file => "DESC" } ],
+    },
+    '?file=bar&file=foo&content=green&content=red'
 );
 
 ok( $res = request(
@@ -80,23 +85,24 @@
 
 #warn $res->content;
 
-is( $res->content, qq/{
-  limit           => 50,
-  offset          => 0,
-  plain_query     => { content => ["green", "red"], file => ["bar", "foo"] },
-  plain_query_str => "(file='bar' OR file='foo') OR (content='green' OR content='red')",
-  query           => [
-                       "OR",
-                       [
-                         "OR",
-                         ["file", "bar", "file", "foo"],
-                         "OR",
-                         ["content", "green", "content", "red"],
-                       ],
-                     ],
-  sort_by         => "file DESC",
-  sort_order      => [{ file => "DESC" }],
-}/, '?file=bar&file=foo&content=green&content=red&cxc-op=OR'
+is_deeply(
+    eval $res->content,
+    {   limit  => 50,
+        offset => 0,
+        plain_query =>
+            { content => [ "green", "red" ], file => [ "bar", "foo" ] },
+        plain_query_str =>
+            "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+        query => [
+            "OR",
+            [   "OR", [ "file",    "bar",   "file",    "foo" ],
+                "OR", [ "content", "green", "content", "red" ],
+            ],
+        ],
+        sort_by    => "file DESC",
+        sort_order => [ { file => "DESC" } ],
+    },
+    '?file=bar&file=foo&content=green&content=red&cxc-op=OR'
 );
 
 ok( $res = request(
@@ -112,26 +118,63 @@
 
 #warn $res->content;
 
-is( $res->content, qq/{
-  limit           => 50,
-  offset          => 0,
-  plain_query     => {
-                       "cxc-query" => [
-                             "(file='bar' OR file='foo') OR (content='green' OR content='red')",
-                           ],
-                     },
-  plain_query_str => "(file='bar' OR file='foo') OR (content='green' OR content='red')",
-  query           => [
-                       "OR",
-                       [
-                         "OR",
-                         ["file", "bar", "file", "foo"],
-                         "OR",
-                         ["content", "green", "content", "red"],
-                       ],
-                     ],
-  sort_by         => "file DESC",
-  sort_order      => [{ file => "DESC" }],
-}/, '?cxc-query=content = green OR red OR file = bar OR foo'
+is_deeply(
+    eval $res->content,
+    {   limit       => 50,
+        offset      => 0,
+        plain_query => {
+            "cxc-query" => [
+                "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+            ],
+        },
+        plain_query_str =>
+            "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+        query => [
+            "OR",
+            [   "OR", [ "file",    "bar",   "file",    "foo" ],
+                "OR", [ "content", "green", "content", "red" ],
+            ],
+        ],
+        sort_by    => "file DESC",
+        sort_order => [ { file => "DESC" } ],
+    },
+    '?cxc-query=content = green OR red OR file = bar OR foo'
 );
 
+# multiple column search
+ok( $res = request(
+        POST(
+            '/search/search',
+            [   'cxc-query' =>
+                    "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+                'cxc-order' => 'file ASC file desc',
+            ]
+        )
+    ),
+    'multi-column sort POST'
+);
+
+#warn $res->content;
+
+is_deeply(
+    eval $res->content,
+    {   limit       => 50,
+        offset      => 0,
+        plain_query => {
+            "cxc-query" => [
+                "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+            ],
+        },
+        plain_query_str =>
+            "(file='bar' OR file='foo') OR (content='green' OR content='red')",
+        query => [
+            "OR",
+            [   "OR", [ "file",    "bar",   "file",    "foo" ],
+                "OR", [ "content", "green", "content", "red" ],
+            ],
+        ],
+        sort_by    => "file ASC, file DESC",
+        sort_order => [ { file => 'ASC' }, { file => "DESC" } ],
+    },
+    'multi-column sort'
+);




More information about the Catalyst-commits mailing list