Ot : añadir nuevos valores a un objet o en un each

Hola amigos, yo molestando por aquí nuevamente

tengo un metodo al cual le envio un xml, new_from_xml(xml) , al
llamarlo le
envio un xml con 20 nodos user, pero al parsearlo solo me muestra el
ultimo
nodo del xml, mi idea es ir sumando los valores anteriores al mismo
objeto u
obtener nuevo objetos
¿como se puede hacer eso?

def new_from_xml(xml)

    Friend.new do |u|

#aqui itero sobre los nodos user

      xml.search("user").each do  |user|

      u.id                         = user[:id]
      u.name                       = user[:name]
      u.lastname                   = user[:lastname]
      u.nickname                   = user[:nickname]
      u.pictureurl                = user[:pictureurl]
      u.displayname                 = user[:displayname]
    end

la llamada la estoy haciendo asi

def users(doc)
User.new_from_xml(doc)
end

Gracias

On Sun, Jul 6, 2008 at 5:36 PM, Miguel M.
[email protected] wrote:

      u.pictureurl                = user[:pictureurl]
      u.displayname                 = user[:displayname]
    end

la llamada la estoy haciendo asi

def users(doc)
User.new_from_xml(doc)
end

Estas creando un solo Friend, y dentro del bloque iterando por todos
los users asignando una y otra vez al mismo u.

asi es Xavier, con un poco de ayuda logré hacer lo que necesitaba

por si a alguien le interesa:

def new_from_xml(xml)

    result = []

    xml.search("user").each do  |user|
      Friend.new do |u|
            u.id                =        user[:id]
            u.name              =         user[:name]
            u.lastname          =         user[:lastname]
            u.nickname          =         user[:nickname]
            u.pictureurl        =         user[:pictureurl]
            u.displayname       =         user[:displayname]
       result << u
       end
    end
    return result
  end

Saludos y gracias

Atte.
Miguel Michelson Martinez

2008/7/7 Xavier N. [email protected]: