Ejercicio 4: Dynamic Struct

Queremos definir una clase DynamicStruct que, a partir de un diccionario (Hash), pueda construir objetos que tengan un accessor para cada entrada:

un_diccionario = {x: 4, z: "foo"}
un_struct = DynamicStruct.new(un_diccionario)

un_struct.x # 4
un_struct.y = "bar"
un_struct.m # nil
un_struct.y # "bar"
#etc

Además tenemos que garantizar que si los valores de las entradas de un_diccionario cambian, o nuevas entradas son añadidas o quitadas, estos cambios también tienen que verse reflejados en un_struct, y viceversa:

un_diccionario.z = 5

un_struct.z #5
#etc

Desarrollá la clase DynamicStruct utilizando las herramientas vistas hasta ahora y el codigo que te dejamos en la biblioteca

¡Dame una pista!

  • Para convertir un string en símbolo, existe el mensaje to_sym
  • Para convertir un objeto en string, existe to_s
  • Cuando se le envía un mensaje de tipo setter a un objeto como ejemplo pepita.energia = 49, el selector de dicho mensaje es el símbolo :energia=.
  • Para definir un constructor, podemos definir un método de instancia initialize. Ejemplo:
class Pepita
  def initialize(energia)
    @energia = energia
  end
end

Tenés que iniciar sesión antes de empezar a enviar tus soluciones