WTF? [resolvido, mas ainda assim...WTF!?]  XML
Índice dos Fóruns » Ruby & Ruby on Rails
Autor Mensagem
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7839
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

[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

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
[WWW]
Mauricio Linhares
Moderador
[Avatar]

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
[WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7839
Localização: São Paulo, SP
Offline

Valeu, Mauricio!

Achei outro jeito, tambem:

[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

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
[WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7839
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
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 688
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
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Ruby & Ruby on Rails
Ir para:   
Powered by JForum 2.1.8 © JForum Team