R
Raj Singh
class Person
end
p = Person.new
def p.something
def speaks
puts 'i speak'
end
end
p.something
Person.new.speaks
I am trying to understand why the last line is working.
When p.something is executed then the self is 'p object'. Now method
speaks is being defined while the self is p. Since speaks is an instance
method a method should be defined in p's metaclass. But p's meta class
is not Person.
Any one cares to explain how method speaks get defined as an instance
method for Person class.
end
p = Person.new
def p.something
def speaks
puts 'i speak'
end
end
p.something
Person.new.speaks
I am trying to understand why the last line is working.
When p.something is executed then the self is 'p object'. Now method
speaks is being defined while the self is p. Since speaks is an instance
method a method should be defined in p's metaclass. But p's meta class
is not Person.
Any one cares to explain how method speaks get defined as an instance
method for Person class.