Palestra apresentada durante o evento Ruby + Rails no Mundo Real 2010.
Entendendo, de verdade, como funciona metaprogramação em ruby e desmistificando o que normalmente chamam de magia negra.
1. Voodoo é pra jacu!
metaprogramação em ruby
Leonardo Bessa David Paniz
leobessa@gmail.com davidpaniz@gmail.com
@leobessa @davidpaniz
www.davidpaniz.com
2. O que é metaprogramação?
Metaprogramação é a programação de programas
que escrevem ou manipulam outros programas (ou a
si próprios) assim como seus dados
3. O que é metaprogramação?
Metaprogramming is writing code
that writes code
Metaprogramming is writing code
that manipulates language
constructs at runtime
15. Criação de métodos
• Eu realmente posso adicionar um
método a um único objeto?
• Onde o método está?
• Que tipo de objeto pode definir um
método?
16. Singleton Class
• Também conhecidas como Metaclass,
Eigenclass, etc
• É uma classe como outra qualquer,
mas escondida
• Existe uma para cada objeto (lazy)