#ruby #couchdb
#ruby #couchdb
Вопрос:
Я пытаюсь интегрировать работу с CouchDB в веб-фреймворк Camping. Ранее я использовал выражения S для разбора простых блоков Ruby в JavaScript и просто писал встроенный JavaScript в строках, когда мне нужно было что-то более сложное.
Затем я обнаружил сервер просмотра и хочу перейти к использованию Ruby для отображения и сокращения функций.
На данный момент я могу сделать что-то вроде этого:
view = CouchDB::View.new :myview do
map do |doc|
emit(doc._id, doc.price) if doc.kind == "Product"
end
reduce do |values|
return sum(values)
end
end
Я хотел бы иметь для этого аналогичный синтаксис, но чтобы фактический текст этих блоков (или методов, или чего-то еще) был чем-то, что я могу напрямую прочитать и отправить в базу данных, в которой хранятся представления. Возможно ли это сделать так, чтобы это не было по-настоящему злым, например, просто поместить их в строку или прочитать файл и каким-то образом проанализировать его для текста представлений?
Ответ №1:
Вы могли бы использовать что-то вроде ruby2ruby для анализа содержимого блока.
Это даст вам маркированную версию блока, но не буквальный текст, поскольку разметка отбрасывается, когда исходный код компилируется в байт-код.
Комментарии:
1. Хм, да. Думаю, тогда я мог бы написать свой собственный простой сервер просмотра, который мог бы обрабатывать байт-код. Было бы неплохо сохранить представления, понятные для человека.
2. Генератор
rdoc
документации способен индексировать методы и идентифицировать исходные блоки, поэтому вы можете заглянуть туда, чтобы посмотреть, работает ли это для вас.