Taller Ruby on Rails

14
TALLER RUBY ON RAILS 1. Que es Ruby Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. 2. que es rails Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier Hansson, empleado de la empresa 37signals. Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación orientada a la administración de proyectos llamada Basecamp. Actualmente se unieron más personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en estos principios de desarrollo: 3. Defina la arquitectura MVC, ayúdese con una gráfica y explique sus componentes Modelo/Vista/Controlador Definición de las partes: El Modelo: Es el objeto que representa los datos del programa. Maneja los datos y controla todas sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo.

Transcript of Taller Ruby on Rails

Page 1: Taller Ruby on Rails

TALLER RUBY ON RAILS

1. Que es Ruby

Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el

programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y

lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con

características de programación orientada a objetos similares a Smalltalk. Comparte también

funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un

lenguaje de programación interpretado en una sola pasada y su implementación oficial es

distribuida bajo una licencia de software libre.

2. que es rails

Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está

basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier

Hansson, empleado de la empresa 37signals.

Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación

orientada a la administración de proyectos llamada Basecamp. Actualmente se unieron más

personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en

estos principios de desarrollo:

3. Defina la arquitectura MVC, ayúdese con una gráfica y explique sus componentes

Modelo/Vista/Controlador

Definición de las partes:

El Modelo: Es el objeto que representa los datos del programa. Maneja los datos y controla todas

sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las

Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la

responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando

cambia el Modelo.

Page 2: Taller Ruby on Rails

La Vista: Es el objeto que maneja la presentación visual de los datos representados por el Modelo.

Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el

Modelo a través de una referencia al propio Modelo.

El Controlador: Es el objeto que proporciona significado a las órdenes del usuario, actuando sobre

los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea

por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo

a través de una referencia al propio Modelo.

4. Que es un IDE (programación)

Un IDE es un entorno de programación que ha sido empaquetado como un programa de

aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un

constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser

parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de

las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma

de macros para Microsoft Word.

Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación

tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede

funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de

programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como

es el caso de Smalltalk u Objective-C.

Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el

caso de Eclipse, al que mediante plugins se le puede añadir soporte de lenguajes adicionales.

5. Framework

Un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con

artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede

ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un

lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes

componentes de un proyecto.

Representa una arquitectura de software que modela las relaciones generales de las entidades del

dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las

aplicaciones del dominio.

6. GEM

7. Clase

Una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de

ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase

comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase

que contiene (y se utilizó para crear) esa instancia se puede considerar como del tipo de ese

objeto, por ejemplo, una instancia del objeto de la clase "Personas" sería del tipo "Personas".

Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente

bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora.

Page 3: Taller Ruby on Rails

Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa.

Encapsula el estado a través de marcadores de datos llamados atributos (o variable miembro o

variables de instancia), encapsula el comportamiento a través de secciones de código reutilizables

llamados métodos.

8. Defina la estructura de un proyecto rails (versión 3), construya una imagen

La característica más destacable de un proyecto Rails es la división física de los archivos, para

fortalecer la división de sus funciones siguiendo el patrón Modelo-Vista-Controlador. Veamos los

directorios más empleados de los que componen esta estructura.

App

Esta carpeta contiene los archivos que forman el sitio, repartidos según sus características en los

subdirectorios controllers, helpers, models y views.

Models: la función principal de los modelos es la obtención de datos, almacenados en una base

de datos, un fichero, etc., y de controlar la integridad de estos datos.

Views: en una página web, las vistas son las distintas interfaces del usuario. A su vez, contiene

una carpeta denominada Layout. Aquí, están unos ficheros que incluyen, básicamente, el apartado

head de un archivo html. Después, por medio de bloques Ruby, se añade el cuerpo de las vistas

para conformar el fichero completo.

Controllers: guarda los archivos correspondientes a los controladores del sistema. Su trabajo

consiste en recibir eventos del usuario (envío de formulario, pulsación de un enlace), invocar al

modelo para recuperar los datos que necesita, y trasladarlos a la vista, para que los muestre.

Cuando se definen las acciones de un controlador, se debe crear una vista para cada una de estas

acciones. Cuando se invocan estos métodos, tras su ejecución, se muestra automáticamente la

vista correspondiente al método ejecutado. A su vez, si es necesario, se puede crear un modelo

para el controlador.

config

En esta carpeta, se almacenan los archivos de configuración del proyecto. Los archivos que

nosotros solemos modificar son routes.rb y database.yml. En el primero, es posible modificar el

controlador y su acción que se ejecutarán al acceder al sitio. En el otro, podemos modificar el

nombre de la base de datos asociada al proyecto.

db

Principalmente, esta carpeta incluye las migraciones, es decir, los archivos de creacion y edición de

la base de datos relacionada con el proyecto.

doc

Aquí se almacena la documentación del proyecto.

Los log

archivos guardados en este directorio son registros de la ejecución del sitio.

Page 4: Taller Ruby on Rails

public

Este directorio tiene las imágenes que se muestran en las distintas vistas del proyecto, así como

las hojas de estilo empleadas.DEFINICION DE CONCEPTOS SOBRE RUBY ON RAIL

9. Defina la arquitectura Cliente Servidor

QUE ES UNA ARQUITECTURA

Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes

estándares, convenciones, reglas y procesos, permite integrar una amplia gama de productos y

servicios informáticos, de manera que pueden ser utilizados eficazmente dentro de la

organización.

Debemos señalar que para seleccionar el modelo de una arquitectura, hay que partir del contexto

tecnológico y organizativo del momento y, que la arquitectura Cliente/Servidor requiere una

determinada especialización de cada uno de los diferentes componentes que la integran.

QUE ES UN CLIENTE

Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en

múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de

las aplicaciones es totalmente transparente para el cliente.

QUE ES UN SERVIDOR

Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los

servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de

Page 5: Taller Ruby on Rails

múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax,

procesamiento de imágenes, etc.

10. Como se llama el archivo de configuración de la base de datos en rails

Para configurar la conexión a la base de datos, rails pone a nuestra disposición el archivo

“database.yml” ubicado en config -> database.yml. Este archivo nos permite configurar la

conexión a tres bases de datos. Tres bases de datos para tres entornos: development (desarrollo),

test (prueba) y production (producción).

11. Haga una conexión de base de datos en sqlite3 y rails

12. Haga una conexión de base de datos en mysql y rails

13. Que es scaffold

La palabra Scaffold está en inglés y en español significa Andamio, pero en programación el

scaffolding es un método para construir aplicaciones basadas en bases de datos, esta técnica está

soportada por algunos frameworks del tipo MVC en el cuál el programador escribe una

especificación que describe cómo debe ser usada la base de datos. Luego el compilador utiliza esa

especificación para generar el código que la aplicación usará para crear, leer, actualizar y eliminar

registros de la base de datos, esto es conocido como CRUD (create, read, update, delete).El

Scaffolding fue popularizado por el framework Ruby on Rails y ahora es utilizado por otros

frameworks también cómo CakePHP, Symfony.

14. Que son las rutas REST en rails

Es un paradigma para definir rutas en aplicaciones web. En base a REST, las aplicaciones de Rails

determinan qué parte de aplicación mostrar y cómo responder a las solicitudes del usuario.

15. Que va en la capa model

16. Que es ORM (object-relational mapping)

El ORM es un componente de software que me permite trabajar con los datos persistidos como si

ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo

standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar

un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto-relacional (ORM).

Uno de los componentes ORM más utilizado (sino el más...) es el Hibernate, surgido del ambiente

Java y llevado al uso del framework .NET con la versión NHibernate

Para poder explicar el porqué de la existencia de esta tecnología, nada mejor que un ppt que

preparé para una clase sobre este tema a los alumnos del último año de TSSI, que les dejo

disponible a continuación.

Page 6: Taller Ruby on Rails

17. Que es Active Record

Definición:

Es un objeto que representa una fila en una tabla de una base de datos, encapsula su acceso a la

base de datos y añade lógica de negocio.

Es la aproximación más obvia, poniendo el acceso a la base datos en el propio objeto de negocio.

De este modo es evidente como manipular la persistencia a través del mismo.

Explicación:

Gran parte de este patrón viene de un Domain Model y esto significa que las clases están muy

cercanas a la representación en la base de datos. Cada Active Record es responsable de sí mismo,

tanto en lo relacionado con persistencia como en su lógica de negocio.

Generalmente proveerá métodos como:

• Construir una instancia de la clase desde una fila de un resultado de una consulta.

• Construir una nueva instancia para insertarlo posteriormente en la tabla.

• Un método estático para buscar.

• Actualización e inserción en la tabla.

• Getter y Setters o bien Propiedades.

• Implementará algunas piezas de la lógica de negocio.

Aunque no todos son totalmente necesarios, ni mucho menos. Sirva el caso del método estático

de búsqueda que los puedes extraer a otra clase, si así es necesario y te aclaras mejor, esto viene

dado por su acoplamiento a la base de datos relacional que habrá por detrás.

18. que es CSS y en que capa del modelo mvc se usa

CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a

las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas

cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra,

fondos, colores...

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. En este

reportaje vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de

conocer la tecnología entera.

EL Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos

de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El

patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el

código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de

Datos y la Lógica de negocio y el controlador es el responsable de recibir los eventos de entrada

desde la vista.

Page 7: Taller Ruby on Rails

19. que es jquery y para qué sirve

jQuery es un framework Javascript, pero quizás muchos de los lectores se preguntarán qué es un

framework. Pues es un producto que sirve como base para la programación avanzada de

aplicaciones, que aporta una serie de funciones o códigos para realizar tareas habituales. Por

decirlo de otra manera, framework son unas librerías de código que contienen procesos o rutinas

ya listos para usar. Los programadores utilizan los frameworks para no tener que desarrollar ellos

mismos las tareas más básicas, puesto que en el propio framework ya hay implementaciones que

están probadas, funcionan y no se necesitan volver a programar.

20. Defina los 3 entornos rails y para que se usa cada uno.

� El entorno de desarrollo: (development) optimiza la productividad del desarrollador. Las

caches apenas operan, así que los cambios en el código de la aplicación se aprecian

rápidamente, sin tener que recompilar o volver a desplegar nada. Sólo hay que recargar la

página del navegador. Por esta razón Ruby on Rails es más rápido en el desarrollo que, por

ejemplo, la plataforma Java 2.

� El entorno de pruebas: (test) está optimizado para ejecutar pruebas unitarias, de

integración y funcionales. Cada vez que se ejecuta una prueba, la base de datos se limpia de

todos sus datos. Ruby on Rails se encarga de poblar la base de datos con datos de prueba

antes de cada test, a través de las fixtures.

� El entorno de producción: (production) es donde se despliega la aplicación final. Este

entorno está optmizado para rendimiento, lo que significa, por ejemplo, que las clases están

en cache.

Hay muchas alternativas para trabajar con Ruby on Rails, tanto libres y gratuitas como de pago. A

continuación se listan las principales:

Aptana: Multiplataforma. Nació como plugins de eclipse para la edición y desarrollo web.

Actualmente puedes instalarlo como plugins o autónomo de forma independiente. Las últimas

versiones están muy bien integradas con Ruby on Rails. En este momento Aptana 3 está en una

versión BETA

Netbeans: Uno de los más usados, libre y totalmente gratuito. Viene muy bien integrado con

JRuby (lo cual es algo lógico pues es un programa de Sun).

TextMate: Sólo para Mac. Es el entorno más usado entre la comunidad Rails. Es pago pero su

potencia y forma de trabajo favorece la producción y desarrollo con Ruby on Rails.

Gmate: Un proyecto libre y gratuito para convertir Gedit -el editor de texto de escritorio Gnome

de linux- en un clon muy aproximado de Textmate. Esto se consigue instalando diferentes plugins,

temas y retocando algunas opciones. Al ser gratuito es una opción que está cogiendo muchos

adeptos hoy en día.

Page 8: Taller Ruby on Rails

21. Como se llama el archivo donde se visualizan los errores

22. que es Migracion y en que carpeta van dentro de un proyecto rails

Para los no iniciados en Ruby on rails, las migraciones permiten establecer el esqueleto de una

base de datos, tablas y campos, al igual que hacemos con sentencias de SQL, sin utilizar

directamente SQL. Además Ruby on rails, nos permite tener un control de las versiones de

migraciones a ejecutar.

Una vez que hemos hecho rails proyecto (siendo proyecto el nombre del proyecto rails) y cd

proyecto (para colocarnos dentro del proyecto de rails recién creado) creamos nuestras

migraciones.

Comentar para recordar, un proyecto rails tiene tres tipos de entornos: desarrollo, pruebas y

producción. El entorno Rails llamado “desarrollo” vuelve a cargar las clases cada vez que llame a

una nueva acción, por lo que siempre tiene una copia actualizada de las clases incluyendo los

cambios más recientes. Mientras que en el entorno de producción carga las clases una vez.

Cuando se crea un nuevo proyecto rails, se crea un archivo database.yml, con los tres entornos

desarrollo, pruebas y producción, dicho archivo se encuentra dentro de la carpeta config.

development:

adapter: mysql

encoding: utf8

database: proyecto_development

username: root

password:

socket: /var/run/mysqld/mysqld.sock

Por defecto el nombre de la base de datos en cada uno de los entornos, es el del

proyecto_entorno, en este caso proyecto_development para el proyecto en desarrollo.

Para la realización, de la migración escribimos por consola Ruby script/generate migration nombre

migración, también se genera migraciones al crear los modelos de rails con Ruby script/generate

model nombre modelo.

Cada migración tiene un número ejemplo 001_create_nombremigracion.rb, dicho archivo

aparece en la carpeta “db”, que cuelga del proyecto principal.

Toda migración tiene un método “up” donde se hace un cambio, y un método “down”, donde se

deshace ese cambio. Si creo una tabla en “up”, la destruyo en el “down”, si añado un campo a la

tabla en el “up”, lo elimino en el “down”.

Para ejecutar una migración, es necesario escribir rake db:migrate, si tenemos cinco migraciones y

hacemos rake db:migrate se ejecutan las cinco. Si queremos volver a un estando anterior, a la

segunda migración eliminando las tres siguientes, solo tenemos que poner, rake db:migrate

VERSION = 2, si queremos eliminar todo lo realizado, bastaría con poner rake db:migrate

VERSION=0.

Versión 1

1

2

Page 9: Taller Ruby on Rails

3

4

5

6

7

8

9

10

11

12

13

class CreateProjects < ActiveRecord::Migration

def self.up

create_table :projects do |t|

t.column :name, :string

end

end

def self.down

drop_table :projects

end

end

Versión 2.0

1

2

3

4

5

6

7

8

9

10

11

12

13

class CreateUsers < ActiveRecord::Migration

def self.up

create_table :users do |t|

t.string :nombre, :apellidos, :login, :email, :nombreblog, :fotografia

t.boolean :inactiva, :default => false

t.timestamps

end

end

def self.down

drop_table :users

end

end

En la versión dos, se pueden declarar varios campos de las tablas al mismo tiempo siempre que

sean del mismo tipo, con el ahorro de líneas de código que supone. Cambia la definición del tipo

de dato t.tipo : lista de campos.

23. En que capa se acostumbra hacer las validaciones en rails (validates)

24. Que es el layout

Para los que recién comienzan en el mundo del diseño, el layout es un esquema de distribución de

los elementos dentro de nuestro diseño, el cual presentaremos al cliente para vender la idea y, a

partir de su aceptación, realizar el trabajo final en base a éste. En otras palabras, vendría a ser el

boceto que ofrecemos inicialmente.

Page 10: Taller Ruby on Rails

Pero el tema pasa por como presentarlo. Para hacerlo de manera profesional, en el mismo

deberemos indicar imágenes y sus significados, textos, tipografías utilizadas, paleta cromática

(colores) y todos los elementos que creemos relevantes para la información hacia nuestro cliente.

Debemos venderle nuestro trabajo y explicar qué y cómo comunicará la idea.

25. Que son los partials

26. En que capa se mapean las relaciones entre las tablas

27. Explique los tipos de relaciones entre modelos rails

28. defina los términos Front-end y back-end

Front-end y back-end son términos que se relacionan con el principio y el final de un proceso.

Estos términos adquieren una relevancia mayor en ciertas áreas particulares

29. Enuncie y explique brevemente metodologías de desarrollo una ágil y otra tradicional

Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la

planificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el

apelativo de Metodologías Tradicionales o Pesadas. [27]

Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo

del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la

planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo

de desarrollo del producto software. Se centran especialmente en el control del proceso,

mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para

el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se

adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja

en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

Entre las metodologías tradicionales o pesadas podemos citar:

• RUP (Rational Unified Process)

• MSF (Microsoft Solution Framework)

• Win-Win Spiral Model

• Iconix

Pero sin dudas adaptarse a la agitada sociedad actual implica ser “ágil”, es decir, tener la

capacidad de proveer respuestas rápidas y ser adaptables al cambio. Ambas cualidades siempre

han sido deseables, pero en el entorno de negocio actual resultan indispensables. Este

requerimiento de agilidad en las empresas, gobiernos y cualquier otra organización provoca que el

software también deba ser desarrollado de manera ágil.

Page 11: Taller Ruby on Rails

Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación de

un software al momento de su entrega; y es mucho más importante satisfacer estas últimas que

las primeras. Esto requiere procesos de software diferentes que en lugar de rechazar los cambios

sean capaces de incorporarlos.

Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o

variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño

estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en

dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso

predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación

rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente.

Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas

que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y

más satisfactoria tanto para los clientes como para los equipos de entrega.

Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:

• XP (Extreme Programming)

• Scrum

• Crystal Clear

• DSDM (Dynamic Systems Development Method)

• FDD (Feature Driven Development)

• ASD (Adaptive Software Development)

• XBreed

• Extreme Modeling

30. Que metodología de desarrollo de software emplearía para rails? Justifíquelo

31. Que es un plugins Rails

(Plug-in) Programa que puede anexarse a otro para aumentar sus funcionalidades (generalmente

sin afectar otras funciones ni afectar la aplicación principal). No se trata de un parche ni de una

actualización, es un módulo aparte que se incluye opcionalmente en una aplicación.

El plugin crea una lista de tareas, notas, ideas, etc. desde el código de nuestra aplicación.

Page 12: Taller Ruby on Rails

Lee todos los archivos .rb de nuestro proyecto buscando por las etiquetas aceptadas por el plugin

y crea las listas correspondientes.

Para esto se basa en un formato en los comentarios del código.

Formato soportado

#TODO: es una tarea

#IDEA: es una idea

#NOTE: es una nota

#REMOVE: código pendiente de eliminar

#DEBUG: código para revisar

#TEST: código para probar

#DEF: descripción de un método

#CHANGE: código que se debe cambiar

#QUESTION: preguntas pendientes

#FIXME: código con errores conocidos

Instalación

./script/plugin install http://todo-list-rails-plugin.googlecode.com/svn/trunk/todo_list/

Como se utiliza

En la vista que quiero insertar el menú que me lleva a las listas coloco: <%= todo_list %>

El plugin necesita Rails 1.2.0 o posterior para funcionar, si no lo tenemos instalado vamos a

necesitar el plugin engines.

32. Investigue las convenciones rails sobre sus objetos y construyan una entre todo el grupo

ADSI.

33. Cree el esqueleto de un proyecto rails con sqlite3

34. Arranque el servidor de aplicaciones webrick

35. Ingrese por un browser a la aplicación que acaba de crear y poner a correr, copie el

pantallazo e insértelo en este documento

Page 13: Taller Ruby on Rails

36. Explique los fundamentos de la web

El éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje HTML. El

primero permite una implementación sencilla de un sistema de comunicaciones que permite

enviar cualquier fichero de forma fácil, simplificando el funcionamiento del servidor y

posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de

este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo

sencillo y muy eficiente de creación de páginas enlazadas.

El protocolo HTTP

El protocolo HTTP (Hypertext Tranfer Protocol) es el protocolo principal de la World Wide Web. Es

un protocolo simple, orientado a conexión y sin estado. Está orientado a conexión porque emplea

para su funcionamiento un protocolo de comunicaciones (TCP, o Transport Control Protocol) de

modo conectado, que establece un canal de comunicaciones entre el cliente y el servidor, por el

cual pasan los bytes que constituyen los datos de la transferencia, en contraposición a los

protocolos denominados de datagrama (o no orientados a conexión) que dividen la serie de datos

en pequeños paquetes (o datagramas) antes de enviarlos, pudiendo llegar por diversas vías del

servidor al cliente. Este protocolo no mantiene estado o, dicho de otro modo, cada transferencia

de datos es una conexión diferente a la anterior, sin relación entre ellas. Por ejemplo, para

transferir una página web debemos enviar el código HTML del texto, por un lado, y las imágenes

que la componen por otro, pues en la especificación inicial 1.0 del protocolo HTTP se abrían y

utilizaban tantas conexiones como componentes tenía la página, trasfiriendo cada componente

por conexiones diferentes .

Existe una variante de HTTP denominada HTTPS (S significa "secure", o "seguro") que utiliza el

protocolo de seguridad SSL (o "Secure Socket Layer") para cifrar y autenticar el tráfico de datos,

muy utilizada por los servidores web orientados al comercio electrónico o por aquellos que

albergan información de tipo personal o confidencial. De forma esquemática, el funcionamiento

de HTTP es como sigue: el cliente establece una conexión TCP con el servidor, hacia el puerto por

defecto para el protocolo HTTP (o el indicado expresamente en la conexión), envía una orden

HTTP de solicitud de un recurso (añadiendo algunas cabeceras con información) y, utilizando la

misma conexión, el servidor responde enviando los datos solicitados y, además, añadiendo

algunas cabeceras con información.

El protocolo también define la forma de codificar el paso de parámetros entre dos páginas, la

tunelización de las conexiones (para sistemas de firewall), define la posible existencia de

servidores intermedios de caché, etc. Las directivas que se utilizan para la petición de información

según se definen en HTTP 1.1 (la versión considerada estable y ampliamente utilizada) son:

GET: Petición de un recurso.

POST: Petición de un recurso enviando parámetros.

HEAD: Petición de algunos datos sobre un recurso.

PUT: Creación o envío de un recurso.

DELETE: Borrado de un recurso.

TRACE: Devolución de la petición a su origen tal como la había recibido el receptor, para la

depuración de errores.

OPTIONS: Comprueba la capacidad del servidor.

Page 14: Taller Ruby on Rails

CONNECT: Se reserva para su uso en servidores intermedios con capacidad para funcionar como

túneles entre otros servidores.

El lenguaje HTML

El otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext Mark-

up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se insertan

marcas o etiquetas en el texto) que permite representar de forma rica el contenido y referenciar

otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es, precisamente, la

característica más destacada de la web), mostrar formularios para su posterior procesamiento,

etc.

El lenguaje HTML se encuentra en la actualidad en la versión 4.01 y empieza a proporcionar

algunas funcionalidades más avanzadas. Se ha definido una especificación compatible con HTML,

llamada XHTML ("Extensible Hypertext Markup Language" o "Lenguaje Extensible de Marcado de

Hipertexto") que se define a menudo como una versión XML validable de HTML, que proporciona

un "XML Schema" contra el cual es posible validar el documento con el objeto de comprobar si

está bien formado.

37. Defina la estructura de un documento HTML

Un documento HTML está definido por una etiqueta de apertura <HTML> y una etiqueta de

cierre </HTML>. Dentro de este se dividen dos partes fundamentales la cabecera, delimitada por

la etiqueta<HEAD> y el cuerpo, delimitado por la etiqueta <BODY>. Por tanto la estructura de un

documento HTML será:

<HTML>

<HEAD>

Definiciones de la cabecera

</HEAD>

<BODY>

Instrucciones HTML

</BODY>

</HTML>

Ninguno de estos elementos es obligatorio, pudiendo componer documentos HTML que se

muestren sin ningún problema sin incluir estas etiquetas de identificación. Si se utilizan elementos

que forzosamente deban ser incluidos en la cabecera (como la etiqueta de título), no serán

reconocidos correctamente si no se incluyen entre las etiquetas de <HEAD>.