По сути, у меня уже есть экземпляр объекта Ruby, но я хочу обновить все переменные экземпляра, которые я могу, из yaml. Есть функция to_yaml, которая будет выгружать мой объект в yaml. Я ищу что-то наоборот. Например, my_obj.from_yaml (yaml_stuff) и он обновляет переменные экземпляра из переданной yaml.
Нужно ли мне в моей функции from_yaml использовать YAML :: load и копировать каждую переменную экземпляра? Есть ли функция, которую я могу использовать, чтобы быстро скопировать эти переменные без особого ввода, если это так?
Есть ли в библиотеке yaml Ruby что-то, где я могу передать ей объект и yaml, и она просто сделает то, что я хочу?
Редактирование для наглядности
Это простой объект, который будет хранить и загружать очень простые типы, совместимые с yaml, такие как строки и целые числа.
Что я в итоге сделал
Хотя я и ответил на этот вопрос, я хотел добавить то, что в итоге делал, мой патч для Обезьяны объекта
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