Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Cristina Espejo Ortiz Modificado hace 6 años
1
Ruby on Rails Rake Tasks Augusto Studer 18/03/2016
2
¿Qué es Rake? Rake es una herramienta para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción, similar a make y ant. Permite utilizar código Ruby para definir tareas o tasks que pueden ser ejecutadas desde la consola de comandos o vía un script bash. Decimos que es una herramienta de construcción de software debido a que Rake trae consigo algunas librerías que facilitan tareas que son comunes en la fase de build y deploy, tales como la manipulación de archivos, ejecución de test, etc.
3
Instalación de Rake Al igual que la mayoría de las cosas en Ruby, Rake está disponible como una gema: gem install rake
4
Creando el Rakefile Lo primero que necesitamos hacer es crear el Rakefile. Este archivo es en donde debemos listar las tareas que queremos ejecutar. El Rakefile utiliza el lenguaje Ruby, por lo que debería resultarnos familiar su sintaxis: task default: %w[hello] task :hello do puts "Hello world!" end
5
Creando el Rakefile (cont.)
En primer lugar aparece una tarea llamada default. Todos los Rakefiles tienen una tarea por defecto. En este caso estamos definiendo que si la tarea default es ejecutada, debería ejecutarse la tarea hello. Luego aparece la tarea hello. Cuando esta tarea es ejecutada, simplemente imprimirá la frase Hello world! en la consola. Demo
6
Tareas con Pre-requisitos (condiciones previas)
Como pueden ver es muy fácil definir un tarea automatizada utilizando Rake porque utiliza la misma sintaxis que Ruby. Sin embargo, el verdadero poder de Rake aparece cuando comenzamos a utilizar tareas que tienen pre-requisitos. Esto hace posible ejecutar una lista de tareas en determinado orden. Por ejemplo, imaginense si quisiéramos automatizar la puesta en producción de un sitio web en su respectivo servidor. Podríamos tener las siguientes tareas:
7
Tareas con Pre-requisitos (condiciones previas) (cont.)
task :ssh_into_server do puts "ssh into server" end task :move_to_directory do puts "cd to the correct directory" task :pull_code do puts "pulling code from Github" task :get_dependencies do puts "getting the dependencies" task :migrate_the_database do puts "migrating the database" end task :set_file_permissions do puts "setting the file permissions" task :symlink_the_new_version do puts "symlinking the new version"
8
Tareas con Pre-requisitos (condiciones previas) (cont.)
Podemos definir que estas tareas se ejecuten en el orden correcto creando una nueva tarea que tenga pre-requisitos: task :deploy => [:ssh_into_server, :move_to_directory, :pull_code, :get_dependencies, :migrate_the_database, :set_file_permissions, :symlink_the_new_version] do puts “deploying the website!” end Demo
9
Namespacing La razón más importante para utilizar namespacing es la de evitar que se generen conflictos entre tareas que tienen el mismo nombre pero se comportan de diferente manera. Es para resolver este tipo de cuestión que utilizamos namespaces. A continuación le configuraremos un namespace a nuestra tarea de puesta en producción: namespace :ship_app do task :ssh_into_server do puts "ssh into server" end # Todas las otras tareas ... Demo
10
Describiendo Tareas Demo
Cuando estamos en presencia de un proyecto en curso y al cual recién nos acabamos de integrar, puede ser útil revisar cuales son las Rake Tasks que ya estan definidas. Para hacer esto, podemos listar las mismas utilizando el siguiente comando: Sin embargo, si lo hacemos ahora con las tareas que definimos previamente no veremos ningún resultado en la consola. Para proveer de ayuda adicional a quien la necesite, podemos agregar una breve descripción de lo que realiza la tarea: rake --tasks desc "SSH into the server." task :ssh_into_server do puts "ssh into server" end Demo
11
Conclusiones · Es posible que se encuentren con Rake en prácticamente todos los proyectos Ruby en los que trabajen. Rails hace un uso extensivo de Rake y siempre que creemos una nueva gema Rake estará incluido. · En esta presentación vimos cómo es posible realizar la puesta en producción de un sitio web utilizando Rake. · Para interés de la audiencia existe una gema llamada Capistrano que hace exactamente este trabajo, obviamente mejor que en el ejemplo. Capistrano básicamente sigue la misma metodología de Rake al permitirnos definir tareas que deben ser ejecutadas cuando nuestro sitio web va a ser puesto en producción. Vale la pena saber que Capistrano tiene su propio ecosistema de add-ons y plugins que pueden ser utilizados en lugar de programar nuestras propias tareas.
12
FIN ¿Preguntas?
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.