Initial commit of DBIx::Class (experimental Class::DBI-inspired ORM)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / ColumnCase.pm
1 package DBIx::Class::CDBICompat::ColumnCase;
2
3 use strict;
4 use warnings;
5 use NEXT;
6
7 sub _register_column_group {
8   my ($class, $group, @cols) = @_;
9   return $class->NEXT::_register_column_group($group => map lc, @cols);
10 }
11
12 sub _register_columns {
13   my ($class, @cols) = @_;
14   return $class->NEXT::_register_columns(map lc, @cols);
15 }
16
17 sub get {
18   my ($class, $get, @rest) = @_;
19   return $class->NEXT::get(lc $get, @rest);
20 }
21
22 sub set {
23   my ($class, $set, @rest) = @_;
24   return $class->NEXT::set(lc $set, @rest);
25 }
26
27 sub find_column {
28   my ($class, $col) = @_;
29   return $class->NEXT::find_column(lc $col);
30 }
31
32 sub _mk_accessors {
33   my ($class, $type, @fields) = @_;
34   my %fields;
35   $fields{$_} = 1 for @fields,
36                     map lc, grep { !defined &{"${class}::${_}"} } @fields;
37   return $class->NEXT::_mk_accessors($type, keys %fields);
38 }
39
40 1;