Remove Class::Data::Inheritable and use CAG 'inherited' style accessors
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / AttributeAPI.pm
1 package # hide from PAUSE
2     DBIx::Class::CDBICompat::AttributeAPI;
3
4 use strict;
5 use warnings;
6
7 use base 'DBIx::Class';
8
9 sub _attrs {
10   my ($self, @atts) = @_;
11   return @{$self->{_column_data}}{@atts};
12 }
13
14 *_attr = \&_attrs;
15
16 sub _attribute_store {
17   my $self   = shift;
18   my $vals   = @_ == 1 ? shift: {@_};
19   $self->store_column($_, $vals->{$_}) for keys %{$vals};
20 }
21
22 sub _attribute_set {
23   my $self   = shift;
24   my $vals   = @_ == 1 ? shift: {@_};
25   $self->set_column($_, $vals->{$_}) for keys %{$vals};
26 }
27
28 sub _attribute_delete {
29   my ($self, $attr) = @_;
30   delete $self->{_column_data}{$attr};
31 }
32
33 sub _attribute_exists {
34   my ($self, $attr) = @_;
35   $self->has_column_loaded($attr);
36 }
37
38 1;