ActiveRecord-Simple
view release on metacpan or search on metacpan
lib/ActiveRecord/Simple.pm view on Meta::CPAN
sub belongs_to {
my ($class, $rel_name, $rel_class, $params) = @_;
my $new_relation = {
class => $rel_class,
type => 'one',
};
my $primary_key = $params->{pk} ||
$params->{primary_key} ||
_guess(primary_key => $class);
my $foreign_key = $params->{fk} ||
$params->{foreign_key} ||
_guess(foreign_key => $rel_class);
$new_relation->{params} = {
pk => $primary_key,
fk => $foreign_key,
};
$class->_append_relation($rel_name => $new_relation);
#$class->_mk_relations_accessors;
}
lib/ActiveRecord/Simple.pm view on Meta::CPAN
my ($class, $rel_name, $rel_class, $params) = @_;
my $new_relation = {
class => $rel_class,
type => 'many',
};
$params ||= {};
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,
};
$new_relation->{via_table} = $params->{via} if $params->{via};
$class->_append_relation($rel_name => $new_relation);
#$class->_mk_relations_accessors;
lib/ActiveRecord/Simple.pm view on Meta::CPAN
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;
}
lib/ActiveRecord/Simple.pm view on Meta::CPAN
}
$code_string .= "return \$_[0]->{$method_name};\n }\n";
}
eval "package $class;\n $code_string" if $code_string;
say $@ if $@;
}
sub _guess {
my ($what_key, $class) = @_;
return 'id' if $what_key eq 'primary_key';
#eval { load $class }; ### TODO: check class has been loaded
#load $class unless is_loaded $class;
#mark_as_loaded $class;
load_module $class;
( run in 0.275 second using v1.01-cache-2.11-cpan-748bfb374f4 )