Ademas de Rake, hay dos gemas que estan muy buenas para mejorar los
scripts de Rake.
Una se llama Sake, que te permite compartirlos facilmente entre
distintos equipos.
Y la otra que trae mejoras, se llama Thor. Te permite validar mejor
los argumentos de entrada.
Te dejo un link a Thor.
http://yehudakatz.com/2008/05/12/by-thors-hammer/
Algo copado que vi tambien es como ejectuar un script que esta
guardado en Git directamente desde Thor (sin hacer el checkout). Es
decir, podrias tenerlos guardados en gisthub y usarlo desde diferentes
eqiupos.


2009/3/31 Rodolinux <[email protected]>:
> Una ventaja fundamental con las tareas Rake es que podes tener acceso
> completo al environment de Rails, lo cual te proporciona las ventajas de
> utilizar ActiveRecord, incluyendo los callbacks, associations y validations
> en los modelos. En mi caso me és muy util para sincronizar db's
> distribuidas. Sin las rake me vería obligado a utilizar scripts por fuera de
> la app, complicándolo todo.
> Te sugiero este tutorial de Rake de Rails Envy que traduje el año pasado.
> http://www.rodolinux.com.ar/node/60
>
> Saludos
>
> 2009/3/31 Agustin Nicolas Viñao Laseras <[email protected]>
>>
>> Pedro, en complemento a la respuesta de uno de los otros foreros, te paso
>> un screencast de Ryan Bates que muestra en una forma muy simple la potencia
>> de las tasks:
>>
>> http://railscasts.com/episodes/66-custom-rake-tasks
>>
>> Ademas como compartimos, si es para una tarea muy simple y que se supone
>> jamas se repetira no vale la pena llevarlo a un task, igual cuidado, puede
>> que para este proyecto no tengas que repetir una importacion de CVS pero si
>> puede que para muchos otros proyectos siempre necesites importar antes de
>> levantarlos en un server, en ese caso va mas alla del proyecto que estas
>> trabajando hoy y tal vez invertir una hora en armar una buena Task te
>> simplifique a futuro este paso de traer datos de un CVS.
>>
>> sl2
>>
>> Agustin Viñao
>> www.agustinvinao.com
>>
>> 2009/3/31 Pilaf <[email protected]>
>>>
>>> Muchas gracias por la respuesta Agustín.
>>>
>>> Como si me hubieras leido la mente, justamente el script que me toca
>>> escribir esta vez va a importar datos a la BD desde un CSV.
>>> Lamentablemente no es algo que vaya a hacer una sola vez porque la
>>> aplicación que estoy escribiendo va a requerir carga masiva de datos
>>> de tanto en tanto y me conviene tener el proceso bien armado.
>>>
>>> Según lo que entiendo que recomendás, Rake conviene en casos en que
>>> voy a repetir un proceso manualmente con cierta frecuencia, ¿es así?
>>> En ese caso creo que mi problema cae en esa categoría, pero no estoy
>>> seguro de entender aun la ventaja de hacerlo así contra un script
>>> normal.
>>>
>>> De nuevo gracias,
>>>
>>> -Pedro
>>>
>>> 2009/3/31 Agustin Nicolas Viñao Laseras <[email protected]>:
>>> > Pedro, me parece que un task es mas util armar cuando tenes una tarea a
>>> > repetir varias veces en el tiempo y no cuando tenes por ejemplo que
>>> > acomodar
>>> > un CVS por unica vez para meter datos en la BD.
>>> >
>>> > Los tasks los puntaria para por ejemplo si tenes que mandar un mailing
>>> > muy
>>> > particular cada tanto que no exige que lo agendes como tarea regular y
>>> > que
>>> > pudiendo armar una plantilla para una promocion por ejemplo llames al
>>> > task
>>> > que te lo envia.
>>> >
>>> > Sl2
>>> >
>>> > Agustin Viñao
>>> > www.agustinvinao.com
>>> >
>>> > 2009/3/31 Pilaf <[email protected]>
>>> >>
>>> >> Hola hermanos rubistas,
>>> >>
>>> >> les traigo una pregunta de corte existencial:
>>> >>
>>> >> ¿Qué ventaja obtengo de hacer mis scripts como tasks de Rake en vez de
>>> >> scripts regulares? O, mejor dicho, ¿en qué casos me conviene uno y no
>>> >> otro?
>>> >>
>>> >> Estoy empezando a escribir mis primeros scripts usando Rake y hasta
>>> >> ahora no pude encontrar una buena razón para simplemente tirar unos
>>> >> scripts sueltos más allá de la superficial de "hacer lo que hacen
>>> >> todos". Entiendo que las buenas razones aparecen cuando uno tiene
>>> >> varios tasks interconectados por dependencias, pero esa gracia
>>> >> desaparece cuando solo necesito hacer bien una cosa que no comparte
>>> >> dependencias con otras tareas, y por otro lado se complican
>>> >> innecesariamente algunas otras cosas (como por ejemplo pasar
>>> >> parámetros).
>>> >>
>>> >> De todos modos creo que lo voy a favorecer sobre los scripts a la
>>> >> antigua, más que nada en nombre de la prolijidad y con el afán de
>>> >> descubrir tarde o temprano qué lo hace tan atractivo.
>>> >>
>>> >> Si alguien tiene ganas de iluminarme se lo agradeceré encarecidamente,
>>> >>
>>> >> Saludos,
>>> >>
>>> >> -Pedro
>>> >> _______________________________________________
>>> >> 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
>>> >
>>> >
>>> _______________________________________________
>>> 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
>>
>
>
>
> --
> http://www.rodolinux.com.ar
>
> "I must not fear. Fear is the mind-killer. I will face my fear. I will
> permit it to pass over me and through me. And when it has gone past I will
> turn the inner eye to see its path. Where the fear has gone there will be
> nothing. Only I will remain." - Bene Geserit's Fear Lethany - Dune Trilogy -
> Frank Herbert
>
> _______________________________________________
> 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