Imported nextalyzer.pl
[dbsrgits/DBIx-Class-Historic.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) = @_;
12bbb339 9 return $class->NEXT::ACTUAL::_register_column_group($group => map lc, @cols);
ea2e61bf 10}
11
12sub _register_columns {
13 my ($class, @cols) = @_;
12bbb339 14 return $class->NEXT::ACTUAL::_register_columns(map lc, @cols);
15}
16
17sub has_a {
18 my ($class, $col, @rest) = @_;
19 $class->NEXT::ACTUAL::has_a(lc($col), @rest);
12bbb339 20 $class->mk_group_accessors('has_a' => $col);
21 return 1;
22}
23
b8e1e21f 24sub has_many {
25 my ($class, $rel, $f_class, $f_key, @rest) = @_;
26 return $class->NEXT::ACTUAL::has_many($rel, $f_class, lc($f_key), @rest);
27}
28
12bbb339 29sub get_has_a {
30 my ($class, $get, @rest) = @_;
31 return $class->NEXT::ACTUAL::get_has_a(lc($get), @rest);
32}
33
34sub store_has_a {
35 my ($class, $set, @rest) = @_;
36 return $class->NEXT::ACTUAL::store_has_a(lc($set), @rest);
37}
38
39sub set_has_a {
40 my ($class, $set, @rest) = @_;
41 return $class->NEXT::ACTUAL::set_has_a(lc($set), @rest);
ea2e61bf 42}
43
510ca912 44sub get_column {
ea2e61bf 45 my ($class, $get, @rest) = @_;
12bbb339 46 return $class->NEXT::ACTUAL::get_column(lc($get), @rest);
ea2e61bf 47}
48
510ca912 49sub set_column {
ea2e61bf 50 my ($class, $set, @rest) = @_;
12bbb339 51 return $class->NEXT::ACTUAL::set_column(lc($set), @rest);
510ca912 52}
53
54sub store_column {
55 my ($class, $set, @rest) = @_;
12bbb339 56 return $class->NEXT::ACTUAL::store_column(lc($set), @rest);
ea2e61bf 57}
58
59sub find_column {
60 my ($class, $col) = @_;
12bbb339 61 return $class->NEXT::ACTUAL::find_column(lc($col));
ea2e61bf 62}
63
510ca912 64sub _mk_group_accessors {
65 my ($class, $type, $group, @fields) = @_;
b8e1e21f 66 #warn join(', ', map { ref $_ ? (@$_) : ($_) } @fields);
67 my @extra;
68 foreach (@fields) {
69 my ($acc, $field) = ref $_ ? @$_ : ($_, $_);
c687b87e 70 #warn "$acc ".lc($acc)." $field";
b8e1e21f 71 next if defined &{"${class}::${acc}"};
72 push(@extra, [ lc $acc => $field ]);
73 }
74 return $class->NEXT::ACTUAL::_mk_group_accessors($type, $group,
75 @fields, @extra);
12bbb339 76}
77
78sub _cond_key {
79 my ($class, $attrs, $key, @rest) = @_;
80 return $class->NEXT::ACTUAL::_cond_key($attrs, lc($key), @rest);
81}
82
83sub _cond_value {
84 my ($class, $attrs, $key, @rest) = @_;
85 return $class->NEXT::ACTUAL::_cond_value($attrs, lc($key), @rest);
86}
87
88sub new {
89 my ($class, $attrs, @rest) = @_;
90 my %att;
91 $att{lc $_} = $attrs->{$_} for keys %$attrs;
92 return $class->NEXT::ACTUAL::new(\%att, @rest);
ea2e61bf 93}
94
951;