如何提取或内省Ruby函数或块的文字文本代码?

时间:2011-10-25 00:50:02

标签: ruby couchdb

我正在尝试将使用CouchDB集成到Camping Web框架中。以前我使用S表达式将简单的Ruby块解析为JavaScript,当我需要更复杂的东西时,只需在字符串中编写内联JavaScript。

然后我发现了View Server,我想转而使用Ruby来实现Map和Reduce功能。

目前,我可以这样做:

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 个答案:

答案 0 :(得分:1)

您可以使用类似ruby2ruby的内容来解析块的内容。

它将为您提供块的标记化版本,但不会提供文字文本,因为当源被编译为字节码时,标记将被丢弃。