En Ruby, entiendo que self
es el receptor implícito para cualquier llamada al método bare. Sin embargo:Si `self` es siempre el receptor implícito en Ruby, ¿por qué` `self.puts` no funciona?
~: irb
>> puts "foo"
foo
=> nil
>> self.puts "foo"
NoMethodError: private method `puts' called for main:Object
¿Qué explica esto?
En caso de que alguna ayuda:
>> method(:puts).owner
=> Kernel
try 'self.send: puts," foo "'. Puedes moverte por métodos privados con send. – DGM