From 14895e103071f824750dbd124d6412d5452f2b32 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 29 Apr 2020 09:28:04 -0300 Subject: [PATCH] Bug 25296: Make ->empty work for uninstantiated calls In OO we would usually instantiate the class and then interact with it like in: my $rs = Koha::Patrons->new; $rs->empty; Koha's practice is to call things like Koha::Patrons->search without instantiating the Koha::Patrons class. To keep consistency, this patch instantiates the resultset object on behalf of the caller if required. To test: 1. Apply the tests patch 2. Run: $ kshell $k prove t/db_dependent/Koha/Objects.t => FAIL: Tests fail because it is expected to have the class instantiated 3. Apply this patch 4. Repeat 2. => SUCCESS: Tests pass, instantiation happens implicitly. 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi --- Koha/Objects.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Koha/Objects.pm b/Koha/Objects.pm index bc82ee4e15..91869ec9a3 100644 --- a/Koha/Objects.pm +++ b/Koha/Objects.pm @@ -250,6 +250,10 @@ an iterator). sub empty { my ($self) = @_; + unless (ref($self)) { + $self = $self->new; + } + $self->_resultset()->set_cache([]); return $self; -- 2.26.2