JRuby, Rails и FeedTool - PullRequest
       12

JRuby, Rails и FeedTool

0 голосов
/ 16 июля 2009

Кто-нибудь использует JRUBY на 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

1 Ответ

1 голос
/ 19 августа 2009

Скорее всего, это исправлено в новой реализации YAML, которую мы выпустим в JRuby 1.4. Можете ли вы попробовать ночную сборку JRuby и сообщить нам, если это все еще проблема?

...