views:

118

answers:

1

Anyone using JRUBY on Rails with FeedTools? I'm getting the following error when I try to run FeedTools: NameError (undefined local variable or method `parser' for YAML:Module):.

I've tracked the code down to monkey_patch.rb. It is bombing on the parser line, but I'm new to Ruby and Rails and couldn't debug it on my own. What's weird is it works fine with plain old Rails and Ruby. I need JRuby because I'm trying to deploy on a Java container.

`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 )**
  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`

+1  A: 

It's very likely this is fixed with the new YAML implementation that we'll ship in JRuby 1.4. Can you try a JRuby nightly build and let us know if it's still an issue?

Charles Oliver Nutter