Tutorial de Ruby – Parte 3 – Primeros Conceptos

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/

 

 

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’)

 

 

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.


Ejemplo

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» }


Iteradores

Un iterador es un método que entrega elementos de alguna clase de colección. Necesita un bloque con las instrucciones a realizar.

animales = %w{ hormiga abeja gato perro ratón }

animales.each { |animal| puts animal }

Muchas formas de bucles pueden hacerse por iteradores.

5.times { puts «¡Gracias por tomar este taller!» }

1.upto(10) { |n| puts «2 x #{n} = #{2*n}» }

(’a’..’z’).each { |letra| print letra }


Clases

Una clase es un conjunto de métodos con propiedades.

class Persona

def initialize(parametro)

@nombre = parametro

end

def cantidad

@nombre.length

end

def al_reves

@nombre.reverse

end

end


Objetos

Creamos objetos o instancias de una clase con new.

per1 = Persona.new(’David’)

per2 = Persona.new(’Ricardo’)

per3 = Persona.new(’Rosa María’)

tot = per1.cantidad + per2.cantidad + per3.cantidad

rev = «#{per1.al_reves}, #{per2.al_reves}, #{per3.al_reves}»

 

puts «La suma de las cantidades de letras es #{tot}.»

puts «Y los nombres al revés son #{rev}.»

Gus Terrera

Apasionado por el agile testing y la ia.

Deja una respuesta