Broke everything (C3 branch)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / ColumnCase.pm
CommitLineData
ea2e61bf 1package DBIx::Class::CDBICompat::ColumnCase;
2
3use strict;
4use warnings;
5use NEXT;
6
7sub _register_column_group {
8 my ($class, $group, @cols) = @_;
147dd158 9 return $class->next::method($group => map lc, @cols);
ea2e61bf 10}
11
12sub _register_columns {
13 my ($class, @cols) = @_;
147dd158 14 return $class->next::method(map lc, @cols);
12bbb339 15}
16
17sub has_a {
18 my ($class, $col, @rest) = @_;
147dd158 19 $class->next::method(lc($col), @rest);
9f300b1b 20 $class->mk_group_accessors('inflated_column' => $col);
12bbb339 21 return 1;
22}
23
b8e1e21f 24sub has_many {
25 my ($class, $rel, $f_class, $f_key, @rest) = @_;
147dd158 26 return $class->next::method($rel, $f_class, ( ref($f_key) ?
be7fff92 27 $f_key :
28 lc($f_key) ), @rest);
b8e1e21f 29}
30
9f300b1b 31sub get_inflated_column {
12bbb339 32 my ($class, $get, @rest) = @_;
147dd158 33 return $class->next::method(lc($get), @rest);
12bbb339 34}
35
9f300b1b 36sub store_inflated_column {
12bbb339 37 my ($class, $set, @rest) = @_;
147dd158 38 return $class->next::method(lc($set), @rest);
12bbb339 39}
40
9f300b1b 41sub set_inflated_column {
12bbb339 42 my ($class, $set, @rest) = @_;
147dd158 43 return $class->next::method(lc($set), @rest);
ea2e61bf 44}
45
510ca912 46sub get_column {
ea2e61bf 47 my ($class, $get, @rest) = @_;
147dd158 48 return $class->next::method(lc($get), @rest);
ea2e61bf 49}
50
510ca912 51sub set_column {
ea2e61bf 52 my ($class, $set, @rest) = @_;
147dd158 53 return $class->next::method(lc($set), @rest);
510ca912 54}
55
56sub store_column {
57 my ($class, $set, @rest) = @_;
147dd158 58 return $class->next::method(lc($set), @rest);
ea2e61bf 59}
60
61sub find_column {
62 my ($class, $col) = @_;
147dd158 63 return $class->next::method(lc($col));
ea2e61bf 64}
65
510ca912 66sub _mk_group_accessors {
67 my ($class, $type, $group, @fields) = @_;
b8e1e21f 68 #warn join(', ', map { ref $_ ? (@$_) : ($_) } @fields);
69 my @extra;
70 foreach (@fields) {
71 my ($acc, $field) = ref $_ ? @$_ : ($_, $_);
c687b87e 72 #warn "$acc ".lc($acc)." $field";
b8e1e21f 73 next if defined &{"${class}::${acc}"};
74 push(@extra, [ lc $acc => $field ]);
75 }
147dd158 76 return $class->next::method($type, $group,
b8e1e21f 77 @fields, @extra);
12bbb339 78}
79
80sub _cond_key {
81 my ($class, $attrs, $key, @rest) = @_;
147dd158 82 return $class->next::method($attrs, lc($key), @rest);
12bbb339 83}
84
85sub _cond_value {
86 my ($class, $attrs, $key, @rest) = @_;
147dd158 87 return $class->next::method($attrs, lc($key), @rest);
12bbb339 88}
89
90sub new {
91 my ($class, $attrs, @rest) = @_;
92 my %att;
93 $att{lc $_} = $attrs->{$_} for keys %$attrs;
147dd158 94 return $class->next::method(\%att, @rest);
ea2e61bf 95}
96
971;