X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FColumnGroups.pm;h=4c0b148dd1c0ac82c86cf5ef9ec94dfb1ecdc82b;hb=fef5d100c208d604c7a7b3c33eb6e32946d71848;hp=3bea78de3d225fd78bdad2ca8ac16b2ce65d930f;hpb=ea2e61bf5bb7187dc5e56513cd66c272d71d5074;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/CDBICompat/ColumnGroups.pm b/lib/DBIx/Class/CDBICompat/ColumnGroups.pm index 3bea78d..4c0b148 100644 --- a/lib/DBIx/Class/CDBICompat/ColumnGroups.pm +++ b/lib/DBIx/Class/CDBICompat/ColumnGroups.pm @@ -8,48 +8,49 @@ use base qw/Class::Data::Inheritable/; __PACKAGE__->mk_classdata('_column_groups' => { }); -sub table { - shift->_table_name(@_); -} - sub columns { my $proto = shift; my $class = ref $proto || $proto; my $group = shift || "All"; - $class->_set_column_group($group => @_) if @_; + $class->_add_column_group($group => @_) if @_; return $class->all_columns if $group eq "All"; return $class->primary_column if $group eq "Primary"; return keys %{$class->_column_groups->{$group}}; } -sub _set_column_group { +sub _add_column_group { my ($class, $group, @cols) = @_; $class->_register_column_group($group => @cols); - $class->_register_columns(@cols); - $class->_mk_column_accessors(@cols); + $class->add_columns(@cols); } sub _register_column_group { my ($class, $group, @cols) = @_; - if ($group eq 'Primary') { - my %pri; - $pri{$_} = {} for @cols; - $class->_primaries(\%pri); - } my $groups = { %{$class->_column_groups} }; + if ($group eq 'Primary') { + $class->set_primary_key(@cols); + $groups->{'Essential'}{$_} ||= {} for @cols; + } + if ($group eq 'All') { - unless ($class->_column_groups->{'Primary'}) { + unless (exists $class->_column_groups->{'Primary'}) { $groups->{'Primary'}{$cols[0]} = {}; - $class->_primaries({ $cols[0] => {} }); + $class->set_primary_key($cols[0]); } - unless ($class->_column_groups->{'Essential'}) { + unless (exists $class->_column_groups->{'Essential'}) { + #$class->_register_column_group('Essential' => $cols[0]); $groups->{'Essential'}{$cols[0]} = {}; + #$groups->{'Essential'}{$_} ||= {} for keys %{ $class->_primaries || {} }; } } $groups->{$group}{$_} ||= {} for @cols; + #if ($group eq 'Essential') { + # $groups->{$group}{$_} ||= {} for keys %{ $class->_primaries || {} }; + #} + $class->_column_groups($groups); }