[Koha-bugs] [Bug 18862] Allow relations in Koha::Object's AUTOLOAD

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Wed Jun 28 14:15:06 CEST 2017


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=18862

--- Comment #3 from Marcel de Rooy <m.de.rooy at rijksmuseum.nl> ---
Well, this would probably work in AUTOLOAD:

    my @relations = $self->_result->relationships;
    if( grep { /^$method$/ } @relations ) {
        return _new_from_dbic( _guess_koha_class($method),
$self->_result->$method );
    }

together with something like (maybe add check_install on the module):

sub _guess_koha_class {
    my ( $self, $relation ) = @_;
    my $rel_startcase = uc(substr($relation,0,1)) . substr($relation,1);
    my $class_dbix = "Koha::Schema::Result::" . $rel_startcase;
    my $koha_class;
    if( $class_dbix->can('koha_objects_class') ) {
        $koha_class = $class_dbix->koha_objects_class;
        $koha_class =~ s/s$//;   # singular
        $koha_class =~ s/ie$/y/; # Librarie => Library etc.
    } else {
        $koha_class = "Koha::" . $rel_startcase;
    }
    return $koha_class;
}

But I am afraid that it is not that optimal performance-wise..

-- 
You are receiving this mail because:
You are watching all bug changes.
You are the assignee for the bug.


More information about the Koha-bugs mailing list