Biodiverse::Common has become very large and inheriting from it will inherit many unneeded methods, particularly for the GUI.
It should be subdivided into related subunits, as has already been done for caching.
Refactoring can use Devel::TraceMethods as a starting point to find which methods are use, although the build needs patching first: https://rt.cpan.org/Ticket/Display.html?id=123667
BEGIN {
my $log_cb = sub {
my ($method, $caller) = @_;
return if $caller !~ /GUI/; # for checking GUI only
state %logged;
say "inherited $method from $caller" if !$logged{"$method $caller"}++;
};
use Devel::TraceMethods ('Biodiverse::Common');
Devel::TraceMethods->callback ($log_cb);
}
Biodiverse::Common has become very large and inheriting from it will inherit many unneeded methods, particularly for the GUI.
It should be subdivided into related subunits, as has already been done for caching.
Refactoring can use Devel::TraceMethods as a starting point to find which methods are use, although the build needs patching first: https://rt.cpan.org/Ticket/Display.html?id=123667