Ruby - Ayuda en ejercicios

 
Vista:
sin imagen de perfil

Ayuda en ejercicios

Publicado por Isaac (1 intervención) el 18/01/2018 23:32:12
Hola, buenas tardes.

Necesito ayuda con la solución de los siguientes ejercicios de Ruby. La verdad soy nuevo en esto pero ya llevo mucho tiempo intentando resolverlo sin poder. Ojalá alguien me pueda ayuda a solucionar.

Los ejercicios son los siguientes:

EJERCICIO 1.

Escribe un método llamado save_contacts que reciba un arreglo de hashes con la información de personas y escriba un archivo separado por comas llamado contactos.csv. Por ejemplo:

1
2
3
4
5
6
contacts = [
   { id: 1, name: "Pedro Perez", mobile: "123456" },
   { id: 2, name: "Juan Gomez", mobile: "654321" }
]
 
save_contacts(contacts) # debería crear un archivo contactos.csv

El archivo debería quedar de la siguiente forma:
1,Pedro Perez,123456
2,Juan Gomez,654321

SOLUCIÓN EJERCICO 1

1
2
3
4
5
6
7
8
def save_contacts(contacts)
File.open("contactos.csv", "w") do |file|
   contacts.each do |contacts|
     puts contacts
file.puts("#{contacts[:id]},#{contacts[:name]},#{contacts[:celular]}")
end
end
end

1
2
3
4
5
6
contacts = [
   { id: 1, name: "Isaac Garcia", celular: "12345" },
   { id: 2, name: "Mario Alba", celular: "54321" }
]
 
save_contacts(contacts)


El ejercicio 1. Lo logré resolver, el problema es los de abajo los cuales no he podido.


EJERCICIO 2

Escribe un método llamado load_contacts que cargue la información de personas de un archivo llamado contactos.csv y retorne un arreglo de hashes como el del método anterior.

load_contacts # debería retornar un arreglo de hashes

Hice una parte del ejercico 2, el resto no tengo ni idea como resolverlo, no se hacer que retorne el arreglo de hashes. A continuación lo que hice.

1
2
3
4
5
6
7
8
9
10
def load_contacts
File.open("contactos.csv", "r") do |file|
  while line = file.gets
    puts line
 
end
end
end
 
load_contacts


EJERCICIO 3

Modifica los dos métodos anteriores para que reciban la ruta del archivo que se quiere crear:
1
2
save_contacts("otros_contactos.csv", contacts)
load_contacts("otros_contacts.csv")

De este si no he hecho nada.

¡Ayuda por favor!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Emanuel
Val: 19
Ha mantenido su posición en Ruby (en relación al último mes)
Gráfica de Ruby

Ayuda en ejercicios

Publicado por Emanuel (7 intervenciones) el 10/04/2019 18:34:49
Hola Issac. Disculpá por la respuesta tardía.

Existe una gema, CSV, en la biblioteca estándar de Ruby, que sirve para almacenar datos en ficheros csv.

Si seguís los ejemplos de la documentación deberías poder volcar y cargar datos de este tipo.

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar