У меня возникла проблема десериализации класса ruby, который я написал YAML.Ruby custom class to и от YAML;
Где я хочу быть
Я хочу, чтобы иметь возможность пройти один объект вокруг как полный «вопрос», который включает в себя текст вопроса, некоторые возможные варианты ответов (для нескольких. Выбор) и правильный ответ , Один модуль (Кодер) принимает входные данные, выстраивает из него класс вопросов и добавляет его в пул вопросов. Другой модуль читает пул вопросов и строит массив объектов «вопрос».
Где я в настоящее время
Пример вопроса Бассейн
--- |
--- !ruby/object:MultiQ
a: "no"
answer: "no"
b: "no"
c: "no"
d: "no"
text: "yes?"
кодировщика дамп YAML файл. Объект MultiQ заполняется вводом. (См. Ниже) определение
def dump(file, object)
File.open(file, 'a') do |out|
YAML.dump(object.to_yaml, out)
end
object = nil
end
MultiQ Класс
class MultiQ
attr_accessor :text, :answer, :a, :b, :c, :d
def initialize(text, answer, a, b, c, d)
@text = text
@answer = answer
@a = a
@b = b
@c = c
@d = d
end
end
Декодер (Я пытался разные вещи, так что здесь не было моим первым или догадка. Но я в потери и документация не объясняют вещи достаточно тщательно.)
File.open("test_set.yaml") do |yf|
YAML.load_documents(yf) { |item|
new = YAML.object_maker(MultiQ, item)
puts new
}
end
Вопросов вы можете ответить
- Как достичь своей цели? Какие методы следует использовать, между парсингами, загрузкой файлов или документов, чтобы успешно десериализовать класс Ruby? Я уже просмотрел YAML Rdoc, и я не очень сильно впитывался, поэтому, пожалуйста, не связывайте меня с этим.
- Какие другие методы вы бы предложили использовать? Есть ли лучший способ хранить такие вопросы? Должен ли я использовать документ db, реляционный db, xml? Какой-то другой формат?