Ответ 1
Или есть ящик от YAML к чему-то вроде Mongo 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)
Я понимаю, что это не отвечает на ваш вопрос напрямую, но, надеюсь, это все еще помогает.
Джон