Или есть картостроитель от YAML к чему-то, как Монго DB, что позволяет мне прозрачно использовать его как YAML магазин?
Не знаю насколько я знаю.
Основная проблема заключается в том, что интерфейс Mongo DB основан на хеше (например, пары ключ-значение). Поэтому, по сути, вы спрашиваете, есть ли с YAML сопоставление с хешем. Ответ не просто потому, что YAML может хранить произвольные структуры, в то время как хэши не могут.
Но если вы готовы, чтобы упростить ваши объекты, вы могли бы быть в состоянии сделать это частично:
class SomeObject
def initialize
@bob = 'abc'
@fred = 'cde'
end
def to_hash
h = {}
instance_variables.sort.each do |v|
h[v] = instance_variable_get(v)
end
return h
end
Если вы посмотрите на код to_yaml вы увидите, что это очень похоже на метод to_hash (потому что именно там у меня появилась идея).
Обратите внимание, что вам также понадобится метод from_hash. И вы, вероятно, хотите, чтобы приступить к разработке схемы для классов с переменными экземпляра, которые являются объектами (т.е. не только строки, символы и т.д.)
Теперь код Монго, чтобы вставить деталь:
include Mongo
db = MongoClient.new.db('test')
stuff = db.collection('stuff')
item = SomeClass.new()
... other code ...
stuff.insert(item.to_hash)
I понимаете, это не отвечает на ваш вопрос напрямую, но, надеюсь, это все еще помогает.
John
Я точно не знаю, что вы ищете ...? Существует множество библиотек для конвертирования из YAML в конкретные модели платформы (многие из них перечислены на [WikiPedia] (http://en.wikipedia.org/wiki/YAML)). Из этих моделей вы можете использовать один из многих драйверов платформы для MongoDB для хранения и запросов/и т. Д. – WiredPrairie
Я не так сильно заинтересован в импорте файлов YAML, но имею в виду базу данных с моделью данных, подобной YAML. Я уточнил вопрос, чтобы прояснить это. – mb21
В чем разница между любыми из множества десятков баз данных на базе «NoSQL» и базы данных «ЯМЛ», которую вы предлагаете? – WiredPrairie