X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FColumnCase.pm;h=eb4b0c022a1434ec9031c85a225086329cfa9d60;hb=d4daee7b54e38e4b3d3d0a77759bddc1a4ede6e5;hp=0e46a5c3456cca68cea442ec061d1141742b0c91;hpb=c0e7b4e55952cd193b6f1866d0c27ece182397eb;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat/ColumnCase.pm b/lib/DBIx/Class/CDBICompat/ColumnCase.pm index 0e46a5c..eb4b0c0 100644 --- a/lib/DBIx/Class/CDBICompat/ColumnCase.pm +++ b/lib/DBIx/Class/CDBICompat/ColumnCase.pm @@ -4,8 +4,6 @@ package # hide from PAUSE use strict; use warnings; -use base qw/DBIx::Class/; - sub _register_column_group { my ($class, $group, @cols) = @_; return $class->next::method($group => map lc, @cols); @@ -13,21 +11,22 @@ sub _register_column_group { sub add_columns { my ($class, @cols) = @_; - $class->mk_group_accessors(column => @cols); - $class->result_source_instance->add_columns(map lc, @cols); + return $class->result_source_instance->add_columns(map lc, @cols); } sub has_a { - my ($class, $col, @rest) = @_; - $class->next::method(lc($col), @rest); - $class->mk_group_accessors('inflated_column' => $col); - return 1; + my($self, $col, @rest) = @_; + + $self->_declare_has_a(lc $col, @rest); + $self->_mk_inflated_column_accessor($col); + + return 1; } sub has_many { my ($class, $rel, $f_class, $f_key, @rest) = @_; - return $class->next::method($rel, $f_class, ( ref($f_key) ? - $f_key : + return $class->next::method($rel, $f_class, ( ref($f_key) ? + $f_key : lc($f_key) ), @rest); } @@ -66,20 +65,29 @@ sub find_column { return $class->next::method(lc($col)); } -sub _mk_group_accessors { - my ($class, $type, $group, @fields) = @_; - #warn join(', ', map { ref $_ ? (@$_) : ($_) } @fields); - my @extra; - foreach (@fields) { - my ($acc, $field) = ref $_ ? @$_ : ($_, $_); - #warn "$acc ".lc($acc)." $field"; - next if defined &{"${class}::${acc}"}; - push(@extra, [ lc $acc => $field ]); - } - return $class->next::method($type, $group, - @fields, @extra); +# _build_query +# +# Build a query hash for find, et al. Overrides Retrieve::_build_query. + +sub _build_query { + my ($self, $query) = @_; + + my %new_query; + $new_query{lc $_} = $query->{$_} for keys %$query; + + return \%new_query; } +sub _deploy_accessor { + my($class, $name, $accessor) = @_; + + return if $class->_has_custom_accessor($name); + + $class->next::method(lc $name => $accessor); + return $class->next::method($name => $accessor); +} + + sub new { my ($class, $attrs, @rest) = @_; my %att;