AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 68 / 68

[Aplicado] Un pequeño gestor de inventario

En esta lección juntarás lo aprendido en un programa completo que gestiona existencias.

La clase guarda las cantidades en un hash y ofrece métodos para añadir, retirar y mostrar el estado. Hash.new(0) es la pieza clave: crea un hash cuyo valor por defecto es 0, así que @items[nombre] += qty funciona incluso la primera vez que aparece un artículo, sin comprobar antes si la clave existe.

El código de ejemplo da de alta unos artículos, retira unidades y muestra el inventario con su estado.

Fíjate en dónde está la validación: el método que retira comprueba que haya existencias suficientes antes de restar. Sin esa comprobación acabarías con cantidades negativas, que es un estado que no significa nada y que se propaga a todos los informes. La regla general es que quien modifica el dato es quien debe protegerlo, no quien lo lee después.

El estado —agotado, pocas unidades, disponible— se calcula al mostrar, no se guarda. Es una decisión deliberada: guardar un dato que se puede deducir de otro abre la puerta a que los dos dejen de coincidir.

Un inventario real añadiría persistencia en base de datos, un histórico de movimientos para saber quién cambió qué, y control de acceso simultáneo para que dos personas no retiren la última unidad a la vez. La estructura, sin embargo, sigue siendo esta.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)