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