| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 17:54:13
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Desculpa, Fábio, boiei. Decorando o que?
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 17:58:03
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
pcalcado wrote:
Fabio Kung wrote:
pcalcado wrote:você não tem como criar blocos de escopo arbitrários
intance_eval tem resolvido bem a minha vida:
Aind anão adianta. Em outro tópico eu citei uma DSL de testes usando RSpec e Selenium, nessa DSL tivemos que azer os objetos de domínio incluírem módulos do RSpec para que pudéssemos usar pending e outros métodos dentro dos nossos blocos que não são closures.
Ruby precisava ter bindings hierárquicos. Hoje em Ruby você so consegue avaliar algo em dois níveis, o primeiro (como intance_eval) e o Object/Kernel.
Não precisa ter binding hierárquico, basta ter binding extensível.
Com isso é trivial implementar instance_eval module_eval e por ai vai. Para completar permita configurar um bloco padrão de resolução por Modulo/classe/método e adicione a possibilidade de andar na pilha e recuperar um bloco que resolva nomes de acordo com o método em questão. Com essas três coisas basicamente tudo que reclamam sobre meta-programação em Ruby tem solução simples.
This message was edited 1 time. Last update was at 03/03/2008 17:58:32
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 18:01:03
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Exemplo do problema:
This message was edited 1 time. Last update was at 03/03/2008 18:01:26
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 18:03:54
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
louds wrote:Não precisa ter binding hierárquico, basta ter binding extensível.
Eu diria que não precisava ter binding extensível, bastava ter binding hierárquico que é mais limitado, provavelmente mais fácil de implementar e ainda assim eficiente na maioria dos casos.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 19:08:19
|
Fabio Kung
JavaEvangelist
Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline
|
pcalcado wrote:Desculpa, Fábio, boiei. Decorando o que?
Eu acho que eu to boiando. Pensei numas coisas doidas aqui, mas só consigo explicar direito vendo o que vc quer fazer.
Procurei o seu tópico da selenium dsl (e pending) e não achei (link?). Posta um snippet?
|
Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?
http://blog.caelum.com.br
Fabio Kung
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 19:43:49
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Aqui:
http://www.guj.com.br/posts/list/45/83613
O método 'On <pagina> do {stuff}'faz um instance_eval. azendo isso ele perde o contexto do bloco describe do RSpec, perdendo então o acesso ao m'todo pending().Como pending e stateless a coisa foi resolvida fazendo o cara que implementa o método on() incluir o módulo que declara pending. Uma bela gambiarra
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 20:03:04
|
Fabio Kung
JavaEvangelist
Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline
|
louds wrote:Ruby tem duas coisas que melam a vida de quem quer fazer metaprogramação mais hardcode. Não existe como sobrescrever o mecanismo de resolução de nomes e tão pouco como definir escopos no qual alterações a classes acontecem.
louds, vc tá cheio de fans:
http://forum.rubyonbr.org/forums/1/topics/2783
http://forum.rubyonbr.org/forums/1/topics/2766
|
Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?
http://blog.caelum.com.br
Fabio Kung
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 20:05:13
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Oi, gente,
Eu tô discutindo lá no outro fórum e esse menino falou isso. Será que vocês podem me audar a responder ele? Sabe, ele fica me sacaneando e eu quero dar o troco...
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 20:32:48
|
Fabio Kung
JavaEvangelist
Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline
|
pcalcado wrote:Aqui:
http://www.guj.com.br/posts/list/45/83613.java#446292
O método 'On <pagina> do {stuff}'faz um instance_eval. azendo isso ele perde o contexto do bloco describe do RSpec, perdendo então o acesso ao m'todo pending().Como pending e stateless a coisa foi resolvida fazendo o cara que implementa o método on() incluir o módulo que declara pending. Uma bela gambiarra
Tá, agora entendi. Que tal algo do tipo:
Isso não cria o escopo novo e acho que resolveria o seu problema. Só acho que não ataca o problema maior que eu ainda não consegui capturar de você!
This message was edited 1 time. Last update was at 03/03/2008 20:35:42
|
Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?
http://blog.caelum.com.br
Fabio Kung
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2008 20:52:43
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Soluciona o problema porque você etá usando funções apenas, não objetos. Que tal: Eu quero que meu bloco tenha acesso ao escopo de B para poder usar o metodo bwawawawawa() mas ao mesmo tempo tenha acesso ao escopo original, para poder acessar @abc (ou um étodo que retorne abc, tanto faz). Se não fosse por A ter estado eu poderia incluir B em A, o que seria gambiarra mas funcionaria e é o que fizemos com selenium. Este tipo de situação surge o tempo todo com internal DSLs.
This message was edited 1 time. Last update was at 15/03/2008 04:21:53
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2008 08:58:28
|
Marcio Duran
Forum Spammer
![[Avatar]](/images/avatar/df0e19d29493ef2136fc3e2fc029c054.jpg)
Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline
|
thingol wrote:
O Louds está falando em um nível que é umas duas ordens de grandeza maiores que você pode compreender. Se quiser entender melhor o que ele fala, por favor, sr. Duran, aprenda outras linguagens de programação e um bocadinho de matemática, para que você não reduza Ruby a uma mera "linguagem orientada a objetos", com você postou aqui no GUJ
E leia um pouco mais - sitar é um instrumento musical de origem árabe; acredito que você queria dizer "citar".
Presta atenção nas respostas e perguntas aqui sendo feitas, e tenta aprender alguma coisa que não seja uma cegueira de falta do seu conhecimento, que já vem se passando despercebido.Outra coisa use mensagens privadas para falar sobre mim, isso é mais apropriado, é por isso que o GUJ tem esse recurso.Aqui o assunto é Ruby.
Outra coisa as pessoas sabem se representar, não precisam de segunda voz.
"Em relação a citar e sitar, pra um ignorante como você tudo passa ser uma coisa só "
This message was edited 1 time. Last update was at 04/03/2008 09:05:13
|
Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2008 09:04:27
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Marcio Duran wrote:... falta do seu conhecimento que já vem se passando despercebido.Outra coisa use mensagens privadas para falar sobre mim, isso é mais apropriado, e por isso que o GUJ tem esse recurso.Aqui o assunto é Ruby
Ainda bem que a "falta de conhecimento" do thingol "já vem se passando despercebido", porque se alguém percebesse que ele não tem conhecimento em alguma coisa, de certo é algo que estava escondido nos confins do universo
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2008 09:07:05
|
Marcio Duran
Forum Spammer
![[Avatar]](/images/avatar/df0e19d29493ef2136fc3e2fc029c054.jpg)
Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline
|
Maurício Linhares wrote:
confins do universo 
Você bem que podia ficar lá, o assunto aqui é Ruby.
|
Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2008 09:08:30
|
tnaires
Forum Spammer
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1378
Localização: Natal - RN
Offline
|
Ué, onde está essa mensagem que o Marcio Duran se referiu?
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2008 09:19:32
|
Marcio Duran
Forum Spammer
![[Avatar]](/images/avatar/df0e19d29493ef2136fc3e2fc029c054.jpg)
Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline
|
tnaires wrote:Ué, onde está essa mensagem que o Marcio Duran se referiu?
"Acho não caiu a ficha em você"
|
Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven |
|
|
 |
|
|