Digamos que estoy escribiendo un módulo de mezcla que agrega funcionalidad a una clase de terceros. Obviamente, algunos de los métodos y variables de instancia que quiero hacer accesibles para la clase de terceros y sus clientes. Estos constituyen la interfaz pública del módulo mixin.¿Cómo escribo una mezcla de Ruby higiénica?
Pero quiero que se encapsulen ciertos otros métodos y variables de instancia. No quiero que sean accesibles para la clase con la que me estoy mezclando, y en particular, no quiero que anulen accidentalmente, sombreen, entren en conflicto o interfieran con los métodos o las variables de instancia de la clase mixee, ya sea que puede existir actualmente, o los que pueden crearse en el futuro si el tercero modifica la clase en la que me estoy mezclando.
¿Qué precauciones debo tomar, si es que las hay, para asegurarme de que mi mixin sea "higiénica" de esta manera?