[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