Up to now if a Koha::Objects based object needs to call DBIx::Class methods, we
have to create a new method for Koha::Objects, something like:
sub method {
my $self = shift;
return $self->_resultset->method
}
To simplify and ease the call to DBIx::Class method, this patch defines an
AUTOLOAD to call the DBIx::Class method on the resultset we are encapsulating.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
return Koha::Database->new->schema->resultset( $class->_type )->result_source->columns;
}
+=head3 AUTOLOAD
+The autoload method is used call DBIx::Class method on a resultset.
+
+Important: If you plan to use one of the DBIx::Class methods you must provide
+relevant tests in t/db_dependent/Koha/Objects.t
+Currently count, pager, reset and update are covered.
+
+=cut
+
+sub AUTOLOAD {
+ my ( $self, @params ) = @_;
+
+ my $method = our $AUTOLOAD;
+ $method =~ s/.*:://;
+
+ my $r = eval { $self->_resultset->$method(@params) };
+ if ( $@ ) {
+ carp "No method $method found for " . ref($self) . " " . $@;
+ return
+ }
+ return $r;
+}
=head3 _type