Click here to load reader
View
228
Download
1
Embed Size (px)
Ruby on Rails(Introduccion a Ruby, la venganza)
Esteban Manchado Velazquezzoso@foton.es
15 de mayo de 2006
Indice
1 El lenguajeBloques e iteradoresClases basicas de datosModulosSmbolosMixinReflexion y dinamismo
2 ConclusionesAspectos negativosAspectos positivos
Indice
1 El lenguajeBloques e iteradoresClases basicas de datosModulosSmbolosMixinReflexion y dinamismo
2 ConclusionesAspectos negativosAspectos positivos
Bloques
Trozo de codigo, con parametros
Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C
Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos
Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje
Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores)
Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde)
Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica)
Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos
Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse
Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Bloques
Trozo de codigo, con parametros Parecido al lambda de Python y a punteros a funciones en C Se pasan en llamadas a ciertos metodos Son la base del lenguaje Varios usos tpicos:
Bucles (iteradores) Guardar funciones anonimas (para mas tarde) Ejecutar algo con un recurso (gestion automatica) Inicializacion de atributos Despistar a los que vienen de otros lenguajes
Se pueden convertir en objetos Proc para pasarse Dos sintaxis: do/end y llaves (parametros entre barras: |i|)
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
File.open("foo") do |f|# Hacemos algo con f, que se cierra solo al final
end
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
File.open("foo") do |f|# Hacemos algo con f, que se cierra solo al final
end
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
File.open("foo") do |f|# Hacemos algo con f, que se cierra solo al final
end
UnaClase.new do |o|o.attr1 = ""o.attr2 = 30
end
Ejemplo de bloques
[1, 2, 3].each {|i| puts i}
button.onClick do |event, obj, data|puts "Me han pulsado"
end
File.open("foo") do |f|# Hacemos algo con f, que se cierra solo al final
end
UnaClase.new do |o|o.attr1 = ""o.attr2 = 30
end
Bucles (otra vez)
a = 0while a < 10 do a += 1 end
loop doa += 1puts "Bucle manual y aburrido"break if a > 20
end
for i in 35..40 do puts "Mejor, pero no" end
Bucles estilo Ruby (otra vez)
0.upto(9) do puts "Mejor" end
loop doa += 1puts "Bucle manual y aburrido"break if a > 20
end
for i in 35..40 do puts "Mejor, pero no" end
Bucles estilo Ruby (otra vez)
0.upto(9) do puts "Mejor" end
10.times do puts "Bucle rubyano" end
for i in 35..40 do puts "Mejor, pero no" end
Bucles estilo Ruby (otra vez)
0.upto(9) do puts "Mejor" end
10.times do puts "Bucle rubyano" end
(35..40).each do |i| puts "Mucho mejor, #{i}" end
Indice
1 El lenguajeBloques e iteradoresClases basicas de datosModulosSmbolosMixinReflexion y dinamismo
2 ConclusionesAspectos negativosAspectos positivos
Clases basicas de datos
String
Integer Array Hash
Clases basicas de datos
String Integer
Array Hash
Clases basicas de datos
String Integer Array
Hash
Clases basicas de datos
String Integer Array Hash
String
irb(main):001:0> "Curso de Ruby".reverse=> "ybuR ed osruC"irb(main):002:0> "Curso de Ruby".capitalize=> "Curso de ruby"irb(main):003:0> "Curso de Ruby".upcase=> "CURSO DE RUBY"irb(main):004:0> "Curso de Ruby".downcase=> "curso de ruby"irb(main):005:0> "Curso de Ruby".size=> 13irb(main):006:0> "Curso de Ruby".split(" ")=> ["Curso", "de", "Ruby"]
String
irb(main):001:0> "Curso de Ruby".reverse=> "ybuR ed osruC"irb(main):002