Algoritmo ROT 13 en Ruby

Algoritmo de cifrado ROT13 en Ruby

El algoritmo ROT 13 es una variante del cifrado César (cuya implementación en Ruby ya vimos) en donde el número de rotaciones es 13; la mitad de la cantidad de letras que existen en el alfabeto inglés o como se le diga.

Algoritmo ROT 13 en Ruby

Algoritmo ROT 13 en Ruby

Hoy veremos cómo implementar una función que codifique y decodifique una cadena usando el algoritmo ROT 13 en el lenguaje de programación Ruby.

(más…)

Algoritmo de cifrado César en Ruby

Algoritmo de cifrado César en Ruby

Anteriormente vimos el cifrado César en C y el cifrado César en Python. No explicaré detalladamente cómo funciona el algoritmo pues a ello ya le dediqué otro post.

Lo que nos reúne aquí hoy es la implementación del algoritmo de “cifrado” César en el lenguaje de programación Ruby.

Algoritmo de cifrado César en Ruby

Algoritmo de cifrado César en Ruby

Al final vamos a crear una función que cifra y descifra según el cifrado de César, con un número de rotaciones definido por nosotros.

(más…)

Codificar y decodificar JSON en Ruby usando to_json y JSON.parse

Codificar y decodificar JSON con Ruby

JSON es un formato de intercambio de datos que ha ganado popularidad en los últimos años; es legible para los seres humanos y también para las máquinas (no como XML, cof cof).

Muchos lenguajes de programación (incluso los fuertemente tipados como Go) lo han implementado y Ruby no es la excepción.

Codificar y decodificar JSON en Ruby usando to_json y JSON.parse

Codificar y decodificar JSON en Ruby usando to_json y JSON.parse

Por eso es que hoy veremos cómo codificar y decodificar el formato JSON en Ruby; es decir, vamos a leer una cadena JSON y convertirla en variables del lenguaje, y también vamos a convertir algunas variables a JSON.

(más…)

Usar env en Ruby para leer variables del entorno

Leer variables del entorno (archivo .env) con Ruby y dotenv

Hoy veremos cómo usar la gema de Ruby llamada dotenv para leer variables del entorno de un archivo o fichero llamado .env. Este archivo ayuda a movernos entre distintos escenarios en donde cambiamos algunas variables que dependen del entorno.

Por ejemplo, en el modo local, tenemos una contraseña y usuario para la base de datos. En nuestro servidor tenemos otra, y así sucesivamente. No sería bueno “hardcodear” o escribir en el código las credenciales de acceso, pues sería peligroso si compartimos el código, o si lo ponemos en un repositorio, etcétera.

Usar env en Ruby para leer variables del entorno

Usar env en Ruby para leer variables del entorno

Además, cada programador tiene distintas credenciales. Así que los archivos .env son usados para gestionar credenciales o claves de acceso que cambian en cada entorno.

(más…)

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Comprobar si elemento existe en arreglo o buscar índice en Ruby

En este post veremos dos cosas con arreglos y Ruby: cómo saber si un elemento existe en un arreglo, y cómo buscar u obtener el índice de un elemento dentro de un arreglo.

Saber si un elemento existe es útil cuando estamos haciendo una lista de valores que no se repiten, y buscar el índice funciona para cuando necesitamos hacer algo con un elemento en caso de que no exista.

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Veremos dos funciones con Ruby y arreglos: index e include.

(más…)

Agregar y eliminar elementos de un arreglo en Ruby

Eliminar y agregar elementos a arreglo en Ruby

Hoy veremos algunas operaciones básicas con arreglos en Ruby. Se trata de agregar (operación push) elementos a un arreglo existente, así como de eliminar (pop o unshift) elementos de un arreglo a través del índice.

Los arreglos funcionan cuando tenemos que guardar una lista de elementos en memoria y se necesita manipularla.

Agregar y eliminar elementos de un arreglo en Ruby

Agregar y eliminar elementos de un arreglo en Ruby

Con Ruby hay muchas formas de agregar o quitar elementos de arreglos, veremos muchas de ellas.

(más…)

Leer y escribir archivos CSV con Ruby

Leer y escribir archivos CSV con Ruby

En este post explicaré cómo trabajar con CSV desde el lenguaje de programación Ruby. Vamos a leer un archivo CSV (archivo separado por comas u otro delimitador) y también a escribir contenido a un nuevo archivo.

Leer y escribir archivos CSV con Ruby

Leer y escribir archivos CSV con Ruby

Nota: la foto del código fue tomada con Polacode y la marca de agua colocada con WaterPy.

Te invito a leer antes cómo escribir y leer archivos en Ruby, para que no te confundas al leer los ejercicios aquí presentados.

(más…)

Ordenar arreglos en Ruby, arreglos de cadenas y numéricos de forma ascendente y descendente

Ordenar arreglos numéricos y de cadenas con Ruby

Hoy veremos cómo ordenar o sortear los arreglos en Ruby. Vamos a trabajar con arreglos de cadenas (strings) y arreglos numéricos (enteros o flotantes); además de que vamos a ver cómo ordenar a los arreglos de manera ascendente y descendente.

Ruby provee un operador interesante que recientemente fue introducido en PHP, el cual es llamado operador nave espacial (quién sabe por qué, yo no le encuentro mucho parecido) y se representa así:

 <=>

Ordenar arreglos en Ruby, arreglos de cadenas y numéricos de forma ascendente y descendente

Ordenar arreglos en Ruby, arreglos de cadenas y numéricos de forma ascendente y descendente

Por  cierto, la foto del código fue tomada con Polacode y le puse la marca de agua con WaterPy.

La peculiaridad de este operador es que evalúa dos valores y regresa 1, 0 o -1 dependiendo de que si uno es mayor, igual o menor al otro. Ya veremos en los ejemplos, el punto es que con esto podemos ordenar y comparar con pocas líneas de código.

(más…)

3 maneras de redondear números con Ruby

Redondear números en Ruby

Existen tres formas de redondear números decimales. La primera es redondear hacia abajo, la segunda es redondear hacia arriba y la tercera es redondear dependiendo del decimal.

Por ejemplo, si redondeamos hacia abajo, el número 5.9 se convierte en 5, así como el 5.1 se convierte igualmente en 5. Cuando redondeamos hacia arriba, el número 5.9 se convierte en 6 y el 5.1 también.

Finalmente, cuando se redondea dependiendo de los decimales, se toma en cuenta si la parte decimal es menor que la mitad. En caso de que sea menor que 0.5, se va hacia abajo. Y si es mayor o igual, hacia arriba.

3 maneras de redondear números con Ruby

3 maneras de redondear números con Ruby

Hoy veremos esas tres formas de redondear números en Ruby.

(más…)

Leer e imprimir en la terminal con Ruby usando gets, chomp y puts

Leer e imprimir datos en la terminal con Ruby

Hoy veremos un ejercicio básico con Ruby, y es el de trabajar con la terminal. Es decir, imprimir datos sobre la consola y también leer alguna entrada del usuario.

Para imprimir en la consola se utiliza puts, y para leer algo del usuario se utiliza gets. Pero eso no es todo, pues a veces necesitamos convertir los tipos de datos o remover los espacios sobrantes.

Leer e imprimir en la terminal con Ruby usando gets, chomp y puts

Leer e imprimir en la terminal con Ruby usando gets, chomp y puts

Por eso es que hoy veremos una introducción al trabajo con la terminal o consola usando Ruby.

(más…)

Leer archivos en Ruby. Leer determinados bytes a la vez o leer todo el contenido

Leer archivos con Ruby

En este tutorial voy a explicar dos maneras de leer archivos con Ruby. La primera forma es leer un archivo en pedazos; por ejemplo, leer 20 bytes cada vez. Por otro lado, la segunda manera muestra cómo leer todo el contenido de un archivo sin importar su tamaño.

Leer archivos en Ruby. Leer determinados bytes a la vez o leer todo el contenido

Leer archivos en Ruby. Leer determinados bytes a la vez o leer todo el contenido

La diferencia entre estos dos tipos de lectura es que el primero es más eficaz para archivos grandes, sobre todo cuando no hay mucha RAM disponible. La segunda forma de leer pone todo el contenido en la RAM.

Pero bueno, veamos el tutorial y tú sabrás cuál te conviene dependiendo del escenario.

(más…)