Ruby on Rails Rake Tasks Augusto Studer 18/03/2016.

Slides:



Advertisements
Presentaciones similares
6.1 Estructuras de repetición Kermit Gonzalez PROG 2270L Profesora R. Acevedo.
Advertisements

Clase 3: primeros programas (1ª parte) iic1102 – introducción a la programación.
CICLOS CONDICIONALES DINÁMICOS Y CICLOS CONDICIONALES FIJOS Aixa Sosa Colón NE: Programación 2250 – 3240 ONL Profesora. Rebecca Acevedo Rivera.
Port knocking Antonio Mario Molina Saorín 13 de Julio de 2011 TC Caldum.
Entorno SCM Analisis y Diseño 2 - USAC Segundo Semestre 2009 Victor Leonel Orozco
Principios, teoría y práctica sobre los conceptos de HTML básicos.
Curso de Programación PHP Nivel Básico Profesor: Sebastián Ocaño (Lic. en Sistemas) Horarios: Sábados de 11:30 a 13:30 Sitio web para encuestas y asistencias:
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
¿Qué es un Diagrama de Flujo? UN DIAGRAMA DE FLUJO, TAMBIÉN LLAMADO FLUJOGRAMA DE PROCESOS O DIAGRAMA DE PROCESOS, REPRESENTA LA SECUENCIA O LOS PASOS.
Museo Tecnológico. Bienvenidos al Museo Tecnológico BIENVENIDOS Información.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Opciones del Package Manager. - Create new package: Me permite crear un nuevo paquete - Write new specification files for all installed, locally generated.
TDD ( Test Driven Development ) JULIAN ANDRES GUTIERREZ GIL JORGE ISLEN LOPEZ GONZALEZ JAIME ENRIQUE RUIZ GARCIA 1.
Gestor de paquetes Instalar y eliminar software (GUI y consola)
Iniciación a Android Cándido Caballero Gil.
MSDE - ValeSoftware Objetivo MSDE-Instalación Vale Software
Clases y Objetos.
Paul Leger Casos de Usos Paul Leger
Artículos Unidades de medida
Pruebas de software Msc. Ing. Ernesto Soto Roca.
Capítulo 13 Leer archivos JSON con AJAX
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
“POLIMORFISMO PARAMETRICO”
NOCIONES BÁSICAS QUÉ ES UNA PDI
Programación Orientada a Eventos
Diagramas de Flujo Algoritmos.
ECLIPSE.
Configuración de un Microsoft Windows Server 2003 con el servicio DHCP para asignación de dinámica de direcciones IP. Requerimientos: Al menos dos Computadoras.
La Receta para Buscar… GOOGLE.
GNU LINUX APRENDIENDO A USAR LA TERMINAL ISC. HIRAM GUERRERO CASTILLO
TEMA: ESTUDIOS DE CONSTRUCCION
Introducción a programación web Martin Esses
FORMAS DE TRABAJAR E INSTALAR LINUX UBUNTU
Visual Basic CESAR RIAÑO.
Act 3. Herramienta tareas Glosario TIC - Herramienta Tareas
ADMINISTRACIÓN DE USUARIOS
COMO CREAR UN BLOG EN BLOGGER
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
HerraMienta: TAREAS 5 Conceptos
Parte 4 HTML.
Búsquedas en Internet ¿Qué es un buscador?
Excel.
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
EXPLORADOR DE WINDOWS 7. Explorador de Windows El Explorador es una herramienta indispensable en un Sistema Operativo ya que con ella podemos organizar.
HIPERVINCUL0 EVELYN ANAHI ESTRADA MENDOZA 1F T/M.
¿Qué es un hipervínculo? . Un hipervínculo es un enlace, normalmente entre dos páginas web de un mismo sitio, pero un enlace también puede apuntar a.
Excel Macros Macros Automáticas.
PROYECTO DE GRADUACIÓN
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Bases para una Tienda Online  En internet hay muchas posibilidades de negocios, desde ofrecer servicios hasta la venta de productos.  Usando el sistema.
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
“Conceptos Básicos de Java”
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Lenguajes del lado del cliente
Informática Ingeniería en Electrónica y Automática Industrial
Tema 2 Estructura de un programa en C. IWI Tema 2 Programa en C U n programa en C es una serie de instrucciones en un lenguaje muy especifico (similar.
Instalación y configuración de un servidor ftp Accede a tu archivos desde cualquier parte del mundo.
DESARROLLO DE APLICACIONES WEB INSTRUCTOR: HEMERSON VILLACORTA MANIHUARI.
MANEJO DE UBUNTU COMANDOS SHELL / TERMINAL.
CRUD.
Google Classroom. Bienvenidos a Google Classroom.
Conceptos básicos II. – Game Maker. –.
PROYECTO DE GRADUACIÓN
ADMINISTRACIÓN DE SOFTWARE DE UN SISTEMA INFORMÁTICO LINUX SBACKUP.
1. CONEXIÓN DE JAVA CON MYSQL ING. JOSÉ VÉLIZ. PASO NO. 1 Después de creada la base de datos debemos ingresar a la aplicación Java y crear un nuevo proyecto,
PROYECTO DE GRADUACIÓN
EXCEL INTERMEDIO FILTROS AVANZADOS – TABLA DINAMICA – AUDITORIA DE FORMULAS JORGE LUIS AGUILAR ALCALDE.
Transcripción de la presentación:

Ruby on Rails Rake Tasks Augusto Studer 18/03/2016

¿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.

Instalación de Rake Al igual que la mayoría de las cosas en Ruby, Rake está disponible como una gema: gem install rake

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

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

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:

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"

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

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

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

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.

FIN ¿Preguntas?