Important BrowseEverything::Driver::Base methods should raise NotImplementedError
BrowseEverything::Driver::Base has stub methods returning defaults. Some of those are fine, like maybe validate_config() doesn't need to be implemented in each concrete child class.
But contents() and connect() must be implemented. So it is more appropriate to raise NotImplementedError in case a call falls through to the base.
Not sure NotImplementedError is the best choice, but an error should be raised. http://chrisstump.online/2016/03/23/stop-abusing-notimplementederror/
He could be right, but why should I care? I'd say the 95% of uses that he regards as "abuse" are the actual predominant meaning of the error in reality.
I not stuck on NotImplementedError, though. As long as we raise something, that will be enough. But I find NotImplementedError as good as anything else. Explicitly raising a NoMethodError would be factually incorrect, since the method does actually exist, but exists in the base class.