Classes dinâmicas

0 views
Skip to first unread message

Wesley Oliveira

unread,
Jul 3, 2009, 12:35:14 PM7/3/09
to rail...@googlegroups.com
Olá Pessoal,

Dei uma googlada e não achei nada conclusivo, todos os exemplos que achei não me ajudou muito.

Com faço pra criar uma classe dinâmica?

Tipo:

module MeuModulo
  def MeuModulo.criar_classe nomes_das_classes
      for classe in nomes_das_classes
         codigo pra criar a classes
      end
  end
end


obrigado.

--
Nenhum de nós é tão bom quanto TODOS NÓS JUNTOS!

Rafael Rosa

unread,
Jul 3, 2009, 12:49:33 PM7/3/09
to rail...@googlegroups.com
Salve,

Sem pensar muito, pode apelar para o velho e bom eval:



module MeuModulo
  def MeuModulo.criar_classe nomes_das_classes
      nomes_das_classes.each do |classe|
         codigo = "class #{classe}; def metodo; puts 'metodo'; end; end"
         Kernel.eval(codigo)
         x = classe.constantize.new
         x.metodo
      end
  end

Snippet escrito em 2 minutos, então tem que dar uma boa melhorada. Espero que ajude.

Atenciosamente,
Rafael Rosa
www.rafaelrosafu.com
www.rubyinside.com.br

Vinicius Luiz

unread,
Jul 3, 2009, 12:50:05 PM7/3/09
to rail...@googlegroups.com
da so uma olhada nesses exemplos da documentação do ruby

http://www.ruby-doc.org/core/classes/Struct.html
http://www.ruby-doc.org/stdlib/libdoc/ostruct/rdoc/classes/OpenStruct.html

att,

2009/7/3 Wesley Oliveira <waeol...@gmail.com>



--
att,

Vinicius Luiz
Skype/Yahoo: vinicius.luiz
MSN: vinic...@hotmail.com
Gtalk: mcp.vi...@gmail.com
Twitter: http://twitter.com/vinicius_luiz

----------------------------------------------

           Analista Desenvolvedor - TI                
CETAM Ltda. - Centro de Tecnologia da Amazônia

when there is no place in hell, the dead walked the earth!

Wesley Oliveira

unread,
Jul 3, 2009, 2:01:57 PM7/3/09
to rail...@googlegroups.com
Brigadão pessoal, Vossas Excelências foram altamente eficazes e efecientes...


Tanks duplo....

2009/7/3 Vinicius Luiz <mcp.vi...@gmail.com>
Reply all
Reply to author
Forward
0 new messages