Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Diciembre del 2017)
1.063 visualizaciones desde el 8 de Diciembre del 2017
353,7 KB
28 paginas
Creado hace 15a (22/11/2009)
Taller de Ruby Básico
Guillermo Valdés Lozano
20 de noviembre de 2009
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
1 / 28
Documento protegido por GFDL
Copyright (c) 2009 Guillermo Valdés Lozano.
e-mail: guillermo(en)movimientolibre.com
http://www.movimientolibre.com/
Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la
Licencia de Documentación Libre de GNU, Versión 1.2 o cualquier otra versión posterior
publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta
Delantera ni Textos de Cubierta Trasera.
Una copia de la licencia está en http://www.movimientolibre.com/licencias/gfdl.html
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
2 / 28
A cerca de Ruby
Introducción
A cerca de Ruby
Es un lenguaje de programación interpretado y orientado a objetos.
En ruby todo es un objeto.
Creado por el programador japonés Yukihiro “Matz” Matsumoto,
quien comenzó a trabajar en Ruby en 1993, y lo presentó
públicamente en 1995.
La última versión estable es la 1.8.6, publicada en diciembre de 2007.
Es Software Libre.
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
3 / 28
Reflexión de Yukihiro “Matz” Matsumoto
Introducción
Reflexión de Yukihiro “Matz” Matsumoto
A menudo la gente, especialmente los ingenieros en informática, se centran
en las máquinas. Ellos piensan, “Haciendo esto, la máquina funcionará más
rápido. Haciendo esto, la máquina funcionará de manera más eficiente.
Haciendo esto...” Están centrados en las máquinas, pero en realidad
necesitamos centrarnos en las personas, en cómo hacen programas o cómo
manejan las aplicaciones en los ordenadores. Nosotros somos los jefes.
Ellos son los esclavos.
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
4 / 28
Comezando
Introducción
Comezando
Averigua la versión de Ruby instalada.
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
Podríamos usarlo intectivamente, pero no lo recomendamos.
$ ruby
puts "Hola Mundo !"
^D
Hola Mundo !
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
5 / 28
irb, la terminal de Ruby
Introducción
irb, la terminal de Ruby
Ingrese escribiendo el comando...
$ irb
Y tenga la libertad de ingresar instrucciones...
def suma(n1, n2)
n1 + n2
end
suma(3, 4)
suma(’cat’, ’dog’) -> ’catdog’
Para salir escriba...
-> 7
exit
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
6 / 28
Programas de Ruby en archivos rb
Introducción
Programas de Ruby en archivos rb
Se puede ejecutar un archivo de Ruby .rb pasándole como parámetro el
nombre del mismo.
$ ruby mi_programa.rb
O bien, que la primera línea declare el intérprete.
#!/usr/bin/env ruby
Y cambie el modo a ejecutable.
$ chmod a+x mi_programa.rb
Así podrá ejecutarlo directamente.
$ ./mi_programa.rb
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
7 / 28
La sintaxis de Ruby es simple
Introducción
La sintaxis de Ruby es simple
No necesitas ; después de cada instrucción.
Puedes poner comentarios con #
El espaciado no afecta al programa.
No hay que declarar variables antes de usarlas.
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
8 / 28
Objetos, instancias y métodos Métodos de un objeto
Métodos de un objeto
Practiquemos algunos métodos sobre un texto, que es un objeto.
-> 9
"Guillermo".length
-> 6
"Guillermo".index(’r’)
"Guillermo".reverse
-> "omrelliuG"
"Guillermo".reverse.upcase -> "OMRELLIUG"
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
9 / 28
Objetos, instancias y métodos Método simple
Método simple
Con def y end indicamos el inicio y término de un método creado por
nosotros.
def buenas_noches(nombre)
entregar = "Buenas Noches " + nombre
return entregar
end
puts buenas_noches(’memo’) -> Buenas Noches memo
puts buenas_noches(’rosy’) -> Buenas Noches rosy
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
10 / 28
Objetos, instancias y métodos
Sustitución de variables con comillas dobles
Sustitución de variables con comillas dobles
Los textos con comillas dobles pueden sustituir variables por sus valores.
def buenas_noches(nombre)
entregar = "Buenas Noches #{nombre}"
return entregar
end
puts buenas_noches(’memo’) -> Buenas Noches memo
puts buenas_noches(’rosy’) -> Buenas Noches rosy
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
11 / 28
Objetos, instancias y métodos
Expresiones complejas
Expresiones complejas
Dentro de las llaves podrán llamarse a métodos o efectuarse operaciones.
Además, como el resultado de la última instrucción del método es lo que
entrega, nos ahorramos el return.
def buenas_noches(nombre)
"Buenas Noches #{nombre.capitalize}"
end
puts buenas_noches(’memo’) -> Buenas Noches Memo
puts buenas_noches(’rosy’) -> Buenas Noches Rosy
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
12 / 28
Arreglos
Arreglos y Hashses
Arreglos
Un arreglo es un conjunto ordenado de objetos. El primer elemento tiene
como índice el 0.
a = [1, ’cat’, 3.4]
a[0] -> 1
a[2] -> 3.4
a[2] = nil
a -> [ 1, ’cat’, nil]
Para declarar un arreglo vacío, puede usar:
a = Array.new
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
13 / 28
Arreglos de textos
Arreglos y Hashses
Arreglos de textos
Hay dos formas de definir un arreglo que contiene palabras, la tradicional.
a = [’hormiga’, ’abeja’, ’gato’, ’perro’]
Y la simplificada
a = %w{hormiga abeja gato perro}
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
14 / 28
Hash
Arreglos y Hashses
Hash
En un hash, cada elemento se accede por una clave única.
instrumentos_musicales = {
=> ’cuerda’,
=> ’percución’,
’violin’
’tambor’
’trompeta’ => ’viento’
}
instrumentos_musicales[’violin’]
instrumentos_musicales[’director’] -> nil
Para declarar un hash vacío, use:
-> "cuerda"
directorio = Hash.new
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
15 / 28
Estructuras de control
Estructura de control if
Estructura de control if
Si el resultado de la expresión lógica es verdadera se ejecutan las
instrucciones.
if nombre.length > 10
puts "¡Tiene #{nombre.length} caracteres tu nombre!"
end
Use elsif para efectuar otra prueba si la anterior resultó falsa. Y else por si
todo lo anterior dio falso.
if nombre.length > 10
puts "¡Tiene #{nombre.length} caracteres tu nombre!"
elsif nombre.length > 0
puts "Creo que #{nombre} es corto."
else
end
puts "El nombre está vacío."
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
16 / 28
Estructuras de control
Una sola instrucción bajo una condición
Una sola instrucción bajo una condición
Una estructura if con una sola instrucción como la siguiente...
if radiacion > 3000
puts "¡Peligro! ¡Peligro!"
end
Puede simplificarse de esta forma...
puts "¡Peligro! ¡Peligro!" if radiacion > 3000
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
17 / 28
Estructuras de control
Estructura de control while
Estructura de control while
Por medio de while se hace un bucle que continúa mientras la prueba
lógica sea verdadera.
puts "Tabla de multiplicar del 2"
contador = 0
while contador < 20
contador += 1
puts "2 x #{contador} = #{2*contador}"
end
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
18 / 28
Estructuras de control
Una sola instrucción bajo una while
Una sola instrucción bajo una while
Si una sola instrucción va estar dentro de un while...
cuadrado = 2
while cuadrado < 1000
cuadrado = cuadrado * cuadrado
end
puts cuadrado
Entonces puede simplifcarse de esta forma.
cuadrado = 2
cuadrado = cuadrado * cuadrado while cuadrado < 1000
puts cuadrado
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
19 / 28
Expresiones regulares
Expresiones regulares
Expresiones regulares
Las expresiones regulares son patrones que buscan algo en un texto.
if lenguaje ~= /Perl|Python/
puts "¡Qué gusto que usa #{lenguaje}!"
end
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
20 / 28
Caracteres especiales
Expresiones regulares
Caracteres especiales
Dentro de una expresión regular pueden usarse estos códigos:
+ para indicar uno o más caracteres.
* para indicar ninguno o más caracteres
\s un caracter de espaciado (espacio, tabulador, avance de línea).
\d un caracter dígito.
\w un caracter alfabético.
. (punto) para cualquier caracter.
Ejemplos:
puts "La hora es correcta" if hora ~= /\d\d:\d\d/
puts "Es un archivo AVI" if archivo ~= /.+\.avi/
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
21 / 28
Reemplazo de texto
Expresiones regulares
Reemplazo de texto
Para sustituir la primer aparición de Perl por Ruby.
linea.sub(/Perl/, ’Ruby’)
Para sustituir todos los Perl.
linea.gsub(/Perl/, ’Ruby’)
Para sustituir todos los Perl y Phyton
linea.gsub(/Perl|Phyton/, ’Ruby’)
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
22 / 28
Bloques, Iteradores y Clases
Bloques
Bloques
Un bloque es un conjunto de intrucciones entre llaves...
{ puts "Gracias por asistir al taller." }
O entre un do y un end...
do
contador += 1
puts "Van #{contador} ciclos."
end
Un bloque puede será ejecutado por una invocación.
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
23 / 28
Bloques, Iteradores y Clases
Bloques
Bloques
En este ejemplo, el bloque es ejecutado en cada yeild.
def hacer_documento
puts "Incio del documento"
yeild
yeild
puts "Fin del documento"
end
hacer_documento { puts "contenido" }
Guillermo Valdés Lozano ()
Taller de Ruby Básico
20 de noviembre de 2009
24 / 28
Bloques, Iteradores y Clases
Iteradores
Iteradores
Un iterador es un método
Comentarios de: Taller de Ruby Básico (0)
No hay comentarios