Есть ли чистая рубиновая реализация YAML? Мне нужно сделать следующее (в Rhomobile):
YAML.load( hash_string.to_yaml )
где hash_string
- строковое представление хеша. Я не могу использовать ни стандартную библиотеку Ruby YAML (в фреймворке Rhomobile), ни функцию eval
(так как она до сих пор не реализована).
Я сталкивался с некоторыми неполными реализациями YAML в чистом Ruby (например, ya2yaml). Однако load
и to_yaml
вместе или их варианты, вероятно, не поддерживаются в одной библиотеке.
Почему я спрашиваю это:
В базе данных Rhom поддерживается только строковый тип данных. Атрибут хеша объекта ruby преобразуется в строку при сохранении в базе данных. Я хотел бы получить исходный хеш (т.е. преобразовать его из строки), когда получу объект из базы данных. Я открыт для любых других предложений. Буду признателен, если вы предоставите мне пошаговые инструкции по добавлению стандартной реализации Ruby YAML в качестве расширения фреймворка Rhomobile. Я прочитал инструкции, приведенные здесь . Однако я не знаю точку входа библиотеки SYCK, которую мне нужно поместить в ext.yml.
Я думаю, что регулярное выражение также может быть использовано для этой цели. Я не уверен, насколько надежным это будет.
Моя искренняя благодарность всем вам.
EDIT:
Следующее сработало для меня.
Rho::JSON.parse( hash_string.gsub("=>", ":") )