По сути, у меня уже есть экземпляр объекта Ruby, но я хочу обновить любые переменные экземпляра, которые могу, из yaml. Есть функция to_yaml, которая выгружает мой объект в yaml. Я ищу что-то в обратном направлении. Например, my_obj.from_yaml(yaml_stuff) и обновить переменные экземпляра из переданного yaml.
Нужно ли мне в моей функции from_yaml использовать YAML::load и копировать каждую переменную экземпляра? Есть ли функция, которую я могу использовать для быстрого копирования этих переменных без особого ввода, если это так?
Есть ли в библиотеке Ruby yaml уже что-то, куда я могу передать ему объект и yaml, и он просто будет делать то, что я хочу?
Редактирование для ясности
Это простой объект, который будет хранить и загружать очень простые совместимые с yaml типы, такие как строки и целые числа.
Что я в итоге сделал
Хотя я ответил на этот вопрос, я хотел добавить то, что я в итоге сделал, мой патч Object monkey
class Object
def from_yaml(yml)
if (yml.nil?)
return
end
yml.instance_variables.each do |iv|
if (self.instance_variable_defined?(iv))
self.instance_variable_set(iv, yml.instance_variable_get(iv))
end
end
end
end