Menu
Coddy logo textTech

Descripción general del proyecto

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 28 de 56.

Vas a construir un pequeño gestor de biblioteca: un programa basado en menús que realiza un seguimiento de los libros y permite al usuario añadir, buscar, filtrar y marcarlos como leídos.

Cada libro es un hash con estas claves:

{
  title:  "The Great Gatsby",
  author: "F. Scott Fitzgerald",
  genre:  "Fiction",
  read:   false
}

Los mantendrás todos en un array llamado library y manejarás todo desde un loop do que imprime un menú y lee una opción. Cada lección añade una opción al menú:

  • 1. Añadir un libro
  • 2. Buscar por título
  • 3. Filtrar por género
  • 4. Marcar un libro como leído
  • 5. Salir

Esta primera lección configura la biblioteca vacía, el bucle del menú y la opción de salida. Las otras opciones comenzarán como ramas vacías que completarás más adelante.

challenge icon

Desafío

Principiante

Inicializa un array library vacío, luego inicia un loop do que:

  1. Imprime el menú (formato exacto a continuación)
  2. Lee la elección del usuario con gets.chomp
  3. Si la elección es "5", imprime Goodbye! y sale del bucle

El menú debe verse exactamente así:

--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: 

Usa print para el mensaje Choose an option: para que el cursor permanezca en la misma línea.

Para la entrada 5, la salida es:

--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!

Hoja de referencia

Cada libro es un hash almacenado en un arreglo library:

library = []

book = {
  title:  "The Great Gatsby",
  author: "F. Scott Fitzgerald",
  genre:  "Fiction",
  read:   false
}

Utiliza loop do con break para construir un programa basado en menús. Utiliza print (no puts) para mantener el cursor en la misma línea que el prompt:

loop do
  puts "--- Library Manager ---"
  puts "1. Add Book"
  puts "5. Exit"
  print "Choose an option: "
  choice = gets.chomp

  if choice == "5"
    puts "Goodbye!"
    break
  end
end

Pruébalo tú mismo

# TODO: inicializar un arreglo library vacío

# TODO: bucle do, imprimir el menú, leer la opción, salir con "5"
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo