Charla introductoria a Ruby y Ruby on Rails impartida durante las III Jornadas de Informática de la Universidad Europea de Madrid, en la primavera de 2008
1. CHARLA/TALLER
Introducción a Ruby on Rails
III Jornadas de Informática de la UEM
Raúl Murciano – raul.murciano.net
Borja Martín – dagi3d.net
GLUEM - gluem.net
2. Qué es Ruby
Lenguaje de script interpretado de código
abierto
Desarrollado por Yukihiro Matsumoto('Matz') y
liberado en 1995
Puramente orientado a objetos
Código abierto
3. Características de Ruby
TODO es un objeto
Tipado dinámico
Herencia
Altamente portable
Recolector automático de basura
Sobrecarga de operadores
Introspección / Reflexión / Metaprogramación
4. Todo es un objeto
1.next #2
5.3.floor #5
”hola mundo”.upcase # ”HOLA MUNDO”
[3, 4, 1, 2].sort # [1, 2, 3, 4]
nil.class # NilClass
5. Estructuras condicionales
if a == 1 puts ”a = 1” if a == 1
#a=1
elsif a == 2
unless correcto
#a=2
else puts "¡incorrecto!"
# cualquier otro valor end
end
6. Bucles
for i in 1..10 while a < 10
puts i a+= 10
end end
for letra in ['a', 'b', 'c', 'd']
puts letra
end
14. Las clases no se cierran
class Integer
def al_cubo
self ** 3
end
end
4.al_cubo # 64
15. ”Duck typing”
”Si habla como un pato y camina como un pato, entonces es un pato”
def duplica(obj)
obj * 2
end
puts duplica(5) # 10
puts duplica("hola") # ”holahola”
16. Metaprogramación
class Persona
def method_missing(name, *params, &block)
puts "El método '#{name}' no existe"
end
end
persona = Persona.new
persona.metodo_inventado
# Ruby On Rails
Cliente.find_by_nombre(”nombre_cliente”)
17. Demo
• Comprobar que tenemos todo instalado
• Creación del proyecto
• Ejemplo básico para ver cómo funciona Rails
• Vistas
• Controladores
• Modelos
• Aspectos avanzados: plugins, Ajax, REST...
18. Paso a producción
• Hay trabajo más allá del desarrollo
• Muchas posibilidades. Como todo, depende de
las necesidades del proyecto
• webserver + FastCGI + DB
• webserver + Mongrel + DB
• webserver + mongrel cluster + DB
• Con jRuby se abren aún más posibilidades
19. Entornos de Desarrollo
• Aptana RadRails (incluye plugin para Eclipse)
• NetBeans
• IDEA
• Visual Studio
• CodeGear (ex Borland)
• Textmate
• Old school (vi, emacs...)
• ...todos incluyen soporte para Ruby y Rails