Чистая рубиновая реализация YAML или пошаговые инструкции по настройке собственного расширения YAML в Rhomobile - PullRequest
1 голос
/ 03 апреля 2011

Есть ли чистая рубиновая реализация 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("=>", ":") )
...