29. self
É o centro do seu código Ruby
• Onde as variáveis de instância são encontradas
Ex: @var
• O receiver padrão para as chamadas de métodos
Ex: eat(‘hot dog’)
30. self
Apenas duas coisas podem mudar self
• Uma chamada de método
• A definição de uma classe/módulo
31. dog = "rex"
puts dog.upcase
puts dog.object_id
def dog.speak
"Auau"
end
puts dog.speak
32. self String
dog @value: “rex” downcase
upcase
class
33. Object
dup
object_id
parent
self String
dog @value: “rex” downcase
upcase
class
parent
34. Object
dup
object_id
parent
String
downcase
upcase
parent
self
????
dog @value: “rex”
speak
class
parent
35. Object
Singleton Class
dup
object_id
• Eigenclass, Metaclass,
Ghost Class, Virtual Class, ... parent
• Uma classe comum, mas String
escondida downcase
upcase
• Apenas uma por objeto
parent
self
????
dog @value: “rex”
speak
class
parent
36. self
Apenas duas coisas podem mudar self
Uma chamada de método
• A definição de uma classe/módulo