Gracias Emmanuel intuia que venia por ahi pero no sabia como implementarlo o 
pensaba que ya estaba realizado.
En cuanto a procesar un archivo de texto por una action de  un controller lo 
arme asi ya que se realizan tres procesos diarios solamente de estos archivos 
de texto
dentro de una intranet. Cada archiv de texto tiene entre 1000-2000 que 
representan movimientos de buques que marcan su posicion cada 4 hs, mas o menos.
Como se podria realizar esta tarea en un background sin que el usuario tenga 
que esperar el request de que se grabo todo exitosamente ?
 Como controlaria el proceso si no se realiza de esa manera ?

Gracias nuevamente por tu colaboracion!

  ----- Original Message ----- 
  From: Emmanuel Oga 
  To: Grupo Ruby Argentina 
  Sent: Wednesday, October 17, 2007 9:19 AM
  Subject: Re: [RubyArg] Struct como parametro en el initialize de un objeto


  Lo que necesitas es el metodo "to_hash" en tu struct. Por desgracia, Struct 
no trae tal metodo. Sin embargo, es bastante facil de agregar:

  Struct.new "Hola", :a, :b

  a= Struct::Hola.new 1, 2

  class Struct::Hola
    def to_hash
      members.inject({}) do |hsh, member|
        hsh[member]= self.send(member); hsh
      end
    end
  end

  a                    # => #<struct Struct::Hola a=1, b=2>
  a.to_hash       # => {"a"=>1, "b"=>2}

  Ahora podes hacer:

  DerivadoDeActiveRecord.new a.to_hash

  P.D.: No te recomiendo procesar un archivo de texto en una action de un 
controller.... te imaginas al usuario haciendo click y teniendo que esperar 10 
segundos a que le devuelva el request? Ahora imaginate a 5 o 6 usurios al mismo 
tiempo haciendo lo mismo....

  Fernando Castañeda <[EMAIL PROTECTED]> escribió:
    Hola Lista :

    Como se inicializa un objeto (ActiveRecord) con los elementos de un struct 
    que le pasa como parametro.
    En la definicion de los elementos del struct son los mismos que los 
    atributos de la clase y tabla que mapea, pero se puede mapear cada elemento 
    del
    struct contra los atributos del objeto automaticamente, sin tener que 
    definir un initialize en la clase y mapear a mano cada atributo ?
    Ej. de codigo :
    (Es un tipo encabezado-detalle) (Proceso-Movimiento)

    class ProcesosController < ApplicationController
    def create
    @proceso = Proceso.new(params[:proceso])
    estructura = Struct.new(:buque, :matricula, :fecha, :latitud, 
    :longitud,:rumbo, :vel, :emp, :tipo, :inm, :dnid, :mem,:mmsi, :mdn )
    registros = File.open(@proceso.filename).map {|linea| if linea.length >= 
106 
    then estructura.new(linea[0..30].strip, *linea[31..-1].split) end}
    registros.each{|x| self.armar_movimiento(x) }
    end
    end


    def armar_movimiento(x)
    # X tiene la sig. info => matricula="1200788",buque="San Marcos I", 
    "fecha="051213", latitud="4244.163S", longitud="06501.443W", rumbo="348", 
    vel="00.0", emp="0932", tipo="010", inm="G", dnid="470181355", mem="00804", 
    mmsi="028", mdn="701000925", termid=nil>
    movi=Movimiento.new(params[:x])
    #aca quisiera que la estruct del struct se mapee automaticamente
    #con la estructur del objeto ya que son componetens se llaman iguales


    @proceso.movimientos << movi


    end



    Muchas gracias y espero que se haya entendido



    Fernando Castañeda



    _______________________________________________
    Ruby mailing list
    [email protected]
    http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar





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

  Yahoo! Noticias
  Leé la columna de "El Chavo" Fucks y encontrá una visión distinta de las 
Elecciones Presidenciales 2007.
  http://ar.news.yahoo.com/elecciones2007/opinion/1979/pinginos-empetrolados 


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


  _______________________________________________
  Ruby mailing list
  [email protected]
  http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a