f44079b64cbed5282c387e65e29732dcfabf24f2
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / Constructor.pm
1 package # hide from PAUSE
2     DBIx::Class::CDBICompat::Constructor;
3
4 use strict;
5 use warnings;
6
7 sub add_constructor {
8   my ($class, $meth, $sql) = @_;
9   $class = ref $class if ref $class;
10   no strict 'refs';
11   
12   my %attrs;
13   $attrs{rows}     = $1 if $sql =~ s/LIMIT\s+(.*)\s+$//i;
14   $attrs{order_by} = $1 if $sql =~ s/ORDER BY\s+(.*)//i;
15   
16   *{"${class}::${meth}"} =
17     sub {
18       my ($class, @args) = @_;
19       return $class->search_literal($sql, @args, \%attrs);
20     };
21 }
22
23 1;