Hi,
Jamis Buck wrote:
> Well, to be fair, it was a private API that changed. The problem was
What is the concept 'private API' here? In general library development,
there are 2 APIs for users and developers. For users it can be called
'public API' as you wrote. Is 'private API' you wrote an API for
developers who extend a class for implementation inheritance?
Unfortunately Ruby has its small weakness about representing the latter
API. Only we can do is writing a document about it. Logger has an
inline document (by gsinclair: Thanks) but there's no mention about it
because it's a 'final' (Java term) class.
As a library developer, I wish if I were able to write some
'protect'-ness and 'final'-ness explicitly (without writing any
document) in Ruby. IIRC Java uses 'final', 'protected' and "This
implementation ..." in Javadoc comments though.
Anyway, at this time, developers should not do both removing constants
for redefinition and overwriting private methods without explicit
permission by documents if they can.
Regards,
// NaHi