0

有人使用 JRUBY on Rails 和 FeedTools 吗?当我尝试运行 FeedTools 时出现以下错误:

NameError (undefined local variable or method `parser' for YAML:Module):. 

我已将代码跟踪到monkey_patch.rb. 它在解析器线上轰炸,但我是 Ruby 和 Rails 的新手,无法自行调试。奇怪的是它在普通的旧 Rails 和 Ruby 上运行良好。我需要 JRuby,因为我试图在 Java 容器上进行部署。

require 'rexml/document'
require 'yaml'

module YAML
def YAML.dump( obj, io = nil )
  if obj.kind_of?(FeedTools::Feed) || obj.kind_of?(FeedTools::FeedItem)
    # Dangit, you WILL NOT serialize these things.
    obj.instance_variable_set("@xml_document", nil)
    obj.instance_variable_set("@root_node", nil)
    obj.instance_variable_set("@channel_node", nil)
  end
obj.to_yaml( io || io2 = StringIO.new )
io || ( io2.rewind; io2.read )
end

def YAML.load( io )
      yp = parser.load( io ) # <- Error here
  if yp.kind_of?(FeedTools::Feed) || yp.kind_of?(FeedTools::FeedItem)
    # No really, I'm serious, you WILL NOT deserialize these things.
    yp.instance_variable_set("@xml_document", nil)
    yp.instance_variable_set("@root_node", nil)
    yp.instance_variable_set("@channel_node", nil)
  end
  yp
end
end
4

1 回答 1

1

我们将在 JRuby 1.4 中发布的新 YAML 实现很可能解决了这个问题。您能否尝试 JRuby 每晚构建并让我们知道它是否仍然是一个问题?

于 2009-08-19T01:43:37.873 回答