ActiveRecord-Simple
view release on metacpan or search on metacpan
lib/ActiveRecord/Simple.pm view on Meta::CPAN
fk => $foreign_key,
};
$new_relation->{via_table} = $params->{via} if $params->{via};
$class->_append_relation($rel_name => $new_relation);
#$class->_mk_relations_accessors;
}
sub has_one {
my ($class, $rel_name, $rel_class, $params) = @_;
my $new_relation = {
class => $rel_class,
type => 'only',
};
$params ||= {};
#my ($primary_key, $foreign_key);
my $primary_key = $params->{pk} ||
$params->{primary_key} ||
_guess(primary_key => $class);
my $foreign_key = $params->{fk} ||
$params->{foreign_key} ||
_guess(foreign_key => $class);
$new_relation->{params} = {
pk => $primary_key,
fk => $foreign_key,
};
$class->_append_relation($rel_name => $new_relation);
#$class->_mk_relations_accessors;
}
sub generic {
my ($class, $rel_name, $rel_class, $key) = @_;
my $new_relation = {
class => $rel_class,
type => 'generic',
key => $key
};
return $class->_append_relation($rel_name => $new_relation);
$class->_mk_relations_accessors;
}
sub columns {
my ($class, @columns_list) = @_;
croak "Error: array-ref no longer supported for 'columns' method, sorry"
if scalar @columns_list == 1 && ref $columns_list[0] eq 'ARRAY';
$class->_mk_attribute_getter('_get_columns', \@columns_list);
$class->_mk_rw_accessors(\@columns_list) unless $class->can('_make_columns_accessors') && $class->_make_columns_accessors == 0;
}
sub make_columns_accessors {
my ($class, $flag) = @_;
$flag //= 1; # default value
$class->_mk_attribute_getter('_make_columns_accessors', $flag);
}
sub mixins {
my ($class, %mixins) = @_;
$class->_mk_attribute_getter('_get_mixins', \%mixins);
$class->_mk_ro_accessors([keys %mixins]);
}
sub primary_key {
my ($class, $primary_key) = @_;
$class->_mk_attribute_getter('_get_primary_key', $primary_key);
}
sub secondary_key {
my ($class, $key) = @_;
$class->_mk_attribute_getter('_get_secondary_key', $key);
}
sub table_name {
my ($class, $table_name) = @_;
$class->_mk_attribute_getter('_get_table_name', $table_name);
}
sub relations {
my ($class, $relations) = @_;
$class->_mk_attribute_getter('_get_relations', $relations);
}
sub dbh {
my ($self, $dbh) = @_;
if ($dbh) {
if ($connector) {
$connector->dbh($dbh);
}
else {
$connector = ActiveRecord::Simple::Connect->new();
$connector->dbh($dbh);
}
}
return $connector->dbh;
}
sub objects {
$qm->{caller} = shift;
return $qm;
}
sub save {
my ($self) = @_;
#return unless $self->dbh;
croak "Undefined database handler" unless $self->dbh;
( run in 1.858 second using v1.01-cache-2.11-cpan-140bd7fdf52 )