1package # hide from PAUSE
2    DBIx::Class::CDBICompat::ColumnCase;
3
4use strict;
5use warnings;
6
7sub _register_column_group {
8  my ($class, $group, @cols) = @_;
9  return $class->next::method($group => map lc, @cols);
10}
11
12sub add_columns {
13  my ($class, @cols) = @_;
14  return $class->result_source_instance->add_columns(map lc, @cols);
15}
16
17sub has_a {
18    my($self, $col, @rest) = @_;
19
20    $self->_declare_has_a(lc $col, @rest);
21    $self->_mk_inflated_column_accessor($col);
22
23    return 1;
24}
25
26sub has_many {
27  my ($class, $rel, $f_class, $f_key, @rest) = @_;
28  return $class->next::method($rel, $f_class, ( ref($f_key) ?
29                                                          $f_key :
30                                                          lc($f_key) ), @rest);
31}
32
33sub get_inflated_column {
34  my ($class, $get, @rest) = @_;
35  return $class->next::method(lc($get), @rest);
36}
37
38sub store_inflated_column {
39  my ($class, $set, @rest) = @_;
40  return $class->next::method(lc($set), @rest);
41}
42
43sub set_inflated_column {
44  my ($class, $set, @rest) = @_;
45  return $class->next::method(lc($set), @rest);
46}
47
48sub get_column {
49  my ($class, $get, @rest) = @_;
50  return $class->next::method(lc($get), @rest);
51}
52
53sub set_column {
54  my ($class, $set, @rest) = @_;
55  return $class->next::method(lc($set), @rest);
56}
57
58sub store_column {
59  my ($class, $set, @rest) = @_;
60  return $class->next::method(lc($set), @rest);
61}
62
63sub find_column {
64  my ($class, $col) = @_;
65  return $class->next::method(lc($col));
66}
67
68# _build_query
69#
70# Build a query hash for find, et al. Overrides Retrieve::_build_query.
71
72sub _build_query {
73  my ($self, $query) = @_;
74
75  my %new_query;
76  $new_query{lc $_} = $query->{$_} for keys %$query;
77
78  return \%new_query;
79}
80
81sub _deploy_accessor {
82  my($class, $name, $accessor) = @_;
83
84  return if $class->_has_custom_accessor($name);
85
86         $class->next::method(lc $name   => $accessor);
87  return $class->next::method($name      => $accessor);
88}
89
90
91sub new {
92  my ($class, $attrs, @rest) = @_;
93  my %att;
94  $att{lc $_} = $attrs->{$_} for keys %$attrs;
95  return $class->next::method(\%att, @rest);
96}
97
981;
99