| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/04/2008 09:57:32
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Tou tentando criar umas classes programaticamente pra embonitar uma DSL que eu quero fazer:
Isso imprime:
Quando na verdade eu esperava:
Onde eu vacilei?
This message was edited 2 times. Last update was at 29/04/2008 12:01:03
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/04/2008 10:48:21
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Exatamente do jeito que você quer não vai aparecer não, tem que ter o Products:: na frente. Esse chega perto:
Saída:
Se você cortar os :: vai chegar no que você quer.
O Jay Fields tem mais a falar sobre definir métodos em instâncias -> http://blog.jayfields.com/2008/02/ruby-dynamically-define-method.html
This message was edited 2 times. Last update was at 29/04/2008 10:49:53
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/04/2008 11:16:02
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Outra opção:
Imprime:
Realmente ou é um ou é outro, não tem como ser os dois
This message was edited 1 time. Last update was at 29/04/2008 11:16:28
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/04/2008 11:42:08
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Valeu, Mauricio!
Achei outro jeito, tambem:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/04/2008 11:20:12
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Ainda sobre o WTF, o problema não é que naquela primeira definição o método está sendo definido na instância de Class não?
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/04/2008 14:26:46
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Nao... na verdade, a versao inicial tem dois problemas:
1) o bloco tava sendo passado pro const_set ao inves do Class.new (o que eh um problema bem sutil, foi foda diagnosticar)
2) codigo dentro de def, class e module nao pode usar variaveis que estao fora dele, caso a coisa esteja acontecendo num bloco. O Ola me explicou, e eu juro que entendi na hora, mas nao consigo explicar direito (e tambem nao sei nem se eu entendi tao bem assim). Se alguem souber de um be-a-bá sobre isso, ia ser bem-vindo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/04/2008 15:32:12
|
Emerson Macedo
Virtual Machine Man
![[Avatar]](/images/avatar/360c19682e81f21d55846685c1701179.jpg)
Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline
|
Cara, quanto ao item "1)" do que você falou, juro que tinha pensado nisso assim que li a thread mas como tava sem tempo não fuxiquei pra ter certeza. Realmente é ruim de diagnosticar pois a tendência é achar que está sendo passado para o Class.new mesmo.
Quanto ao item "2)" eu não tenho a mínima ideia
|
Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com
"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27 |
|
|
 |
|
|