Voodoo é pra jacu!
              metaprogramação em ruby



       Leonardo Bessa                  David Paniz
leonardo.be...
Que horas são?
## horario.java [java]
System.currentTimeMillis();
      new Date();

    ## horario.rb [ruby]
        Time.now
        Da...
Quero voltar ao dia 12/11/1955...
Time.now
           12/11/1955
"Eu inventei o capacitor de fluxo"
          Doc (Brown)
"I invented the term Object-
Oriented, and I can tell you I
did not have C++ in mind." -
          Alan Kay
class
class
Criação de métodos


• Que tipo de objeto pode definir um
  método?

• Eu realmente posso adicionar um
  método a um único...
Singleton Class


• Também conhecidas como Metaclass,
  Eigenclass, etc

• É uma classe como outra qualquer,
  mas escondi...
Qual é a
Singleton Class

    class << self
       self
    end
Qual é a
Singleton Class

   class Object
    def singleton_class
      class << self
         self
      end
    end
   e...
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
Upcoming SlideShare
Loading in...5
×

Voodoo é pra Jacu - Entendendo metaprogramação em ruby

2,093

Published on

Entendendo, de verdade, como funciona metaprogramação em ruby e desmistificando o que normalmente chamam de magia negra.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,093
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Voodoo é pra Jacu - Entendendo metaprogramação em ruby

    1. 1. Voodoo é pra jacu! metaprogramação em ruby Leonardo Bessa David Paniz leonardo.bessa@caelum.com.br david.paniz@caelum.com.br www.davidpaniz.com
    2. 2. Que horas são?
    3. 3. ## horario.java [java] System.currentTimeMillis(); new Date(); ## horario.rb [ruby] Time.now Date.today
    4. 4. Quero voltar ao dia 12/11/1955...
    5. 5. Time.now 12/11/1955 "Eu inventei o capacitor de fluxo" Doc (Brown)
    6. 6. "I invented the term Object- Oriented, and I can tell you I did not have C++ in mind." - Alan Kay
    7. 7. class
    8. 8. class
    9. 9. Criação de métodos • Que tipo de objeto pode definir um método? • Eu realmente posso adicionar um método a um único objeto? • Onde o método está? • Como eu faria em java?
    10. 10. Singleton Class • Também conhecidas como Metaclass, Eigenclass, etc • É uma classe como outra qualquer, mas escondida • Existe uma para cada objeto (lazy)
    11. 11. Qual é a Singleton Class class << self self end
    12. 12. Qual é a Singleton Class class Object def singleton_class class << self self end end end
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×