Я хочу загрузить структуру данных в скрипт Ruby, который отображает строку в тройку, которая содержит некоторую комбинацию регулярных выражений, скриптов и атомов. Файл, из которого он загружается, должен быть доступен для записи человеком.
В настоящее время я пишу файл, содержащий хэш Ruby, загружаю его как строку и вызываю eval. Т.е..
Файл данных
{ "key1" => [ /pattern/, "text", "text" ],
"key2" => [ "text2", :nil, "text3" ],
"key3" => [ "text4", /pattern2/, /pattern3/ ] }
Сценарий
def get_mapping
f = File.new path
return eval(f.read())
end
Это нормально и работает, но чувствует себя (i) как что-то вроде взлома, (ii) небезопасно. Так что мне любопытно узнать: есть ли лучший способ сделать это?
Это почти JSON, но я не думаю, что он может легко обрабатывать атомы или регулярные выражения. Формат файла может быть изменен так, чтобы он оставался приемлемым для чтения и записи человеком.