On 6/5/06, Joao Pedrosa <[EMAIL PROTECTED]> wrote:
[corte]
>
> module Foo
>
> @bar = "alguma coisa"
> def Foo.bar
> @bar
> end
>
> def Foo.bar= v
> @bar = v
> end
>
> end
>
>
> Então, é assim que eu faço em Ruby, usando uma combinação
> de módulos e objetos para quase tudo.
>
Primeiramente, muito obrigado pelas suas respostas Joao <:o)
Vendo o seu exemplo eu fiquei um pouco confunso para implementar o que
eu realmente precisava. Eu gostaria de mapear algumas propriedades de
entradas LDAP para propriedades de objetos, então fiz uma classe
LDAPEntry assim (note que a implementação é utilizando o comportamento
que eu pensava que havia com variáveis de classe):
class LDAPEntry
@@LDAP_map = { }
def map_fields_from_entry(ldap_entry)
for field, mapped in @@LDAP_map
self.send("#{mapped}=", ldap_entry[field])
end
public :map_fields_from_entry
end
end
Aí as classes apenas definiam quais deveriam ter seus valores mapeados
e seus accessors.
class AnyObject < LDAPEntry
@@LDAP_map = {"userPassword" => "password" }
attr_accesor :password
end
Então, com o código acima eu gostaria de saber:
- Como posso ter cada classe tendo um LDAP_map diferente, sem ter que
necessariamente definir em LDAPEntry#initialize e/ou accessors nas
classes "filhas"?
- self.send("#{mapped}=", algumacoisa) ficou muito feio, como eu
poderia fazer isso de maneira mais decente?
Muito obrigado pela atenção!
_______________________________________________
Ruby-l mailing list
[email protected]
http://www.listas.unicamp.br/mailman/listinfo/ruby-l