¿Por qué Ruby no me permite especificarme como receptor dentro de un método privado?
Ruby como un lenguaje orientado a objetos. Lo que eso significa es que cualquier mensaje que envíe, lo envío estrictamente en algún objeto / instancia de clase.
Ejemplo:
class Test
def test1
puts "I am in test1. A public method"
self.test2
end
def test2
puts "I am in test2. A public Method"
end
end
tiene sentido lo que llamo métodotest2
enself
objeto
Pero no puedo hacer esto
class Test
def test1
puts "I am in test1. A public method"
self.test2 # Don't work
test2 # works. (where is the object that I am calling this method on?)
end
private
def test2
puts "I am in test2. A private Method"
end
end
Cuandotest2
espublic method
Puedo llamarloself
(Bastante justo, un método enviado a uno mismo objeto). Pero cuandotest2
esprivate method
No puedo llamarlo a mí mismo. Entonces, ¿dónde está el objeto que estoy enviando método?