Introducción a Ruby on Rails

1,670 views

Published on

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

  • Be the first to comment

  • Be the first to like this

Introducción a Ruby on Rails

  1. 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. 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. 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. 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. 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. 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
  7. 7. Arrays letras = ['a', 'b', 'c', 'd'] # ['a', 'b', 'c', 'd'] letras << 'e' # ['a', 'b', 'c', 'd', 'e'] letras[0] # 'a' letras.first # 'a' letras.length #5
  8. 8. Símbolos  Objeto más básico en ruby  ”Literales de cadenas de texto constantes” "foo".object_id # -605211038 "foo".object_id # -605211058 :foo.object_id # 105218 :foo.object_id # 105218
  9. 9. Hashes colores = { :rojo => "FF0000", :verde => "00FF00", :azul => "0000FF" } colores[:rojo] # ”FF0000”
  10. 10. Iteradores y bloques numeros = [1, 3, 5, 2, 7, 9] #2 numeros.each do |n| #6 puts n * 2 # 10 end #4 # 14 # 18
  11. 11. Métodos def suma(a, b, c) a+b+c end suma(1, 2, 3) #6
  12. 12. Clases # clase MiFigura. 100% GPL! class MiFigura MAX_LADOS = 100 @@colores = {:blanco => ”ffffff”,:negro => ”000000”} attr_accessor :color attr_reader :lados def initialize(lados, color) @color, @lados = color, lados end end
  13. 13. Herencia class Triangulo < MiFigura def initialize(color) @lados = 3 @color = color end end
  14. 14. Las clases no se cierran class Integer def al_cubo self ** 3 end end 4.al_cubo # 64
  15. 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. 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. 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. 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. 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
  20. 20. Recursos: Libros
  21. 21. Recursos: Libros
  22. 22. Recursos: Libros
  23. 23. Recursos: Referencia • Info oficial:  ruby-lang.org  rubyonrails.org • API:  rubybrain.com  railsbrain.com
  24. 24. Recursos: vídeos y material extra San Diego Ruby Users Group: podcast.sdruby.com
  25. 25. Recursos: comunidad • [ror-es] Lista de Ruby y Rails en castellano • [ruby-talk] • [rubyonrails-talk] • Blogs, blogs, blogs...  rubycorner.com  planetrubyonrails.com  planetrubyonrails.org conferenciarails.org

×