我目前正在尝试遵循网页抓取教程,并一直收到一个ruby错误消息"Errno::ENOMEM: Not enough space"。我从http://bugs.ruby-lang.org/issues/show/1063找到了一个变通办法,但我想知道是否有一个更永久的解决方案。我正在使用ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32],我无法更新到一个我怀疑会解决这个问题的新版本。这个问题只有在我尝试获得更大的页面时才会出现。
当前解决方案:
class String
def to_2d_array(value)
unpack("a#{value}"*((size/value)+((size%value>0)?1:0)))
end
end
class << $stdout
alias old_write write
def write(a)
a.to_s.to_2d_array(1024).each{|little| old_write little}
end
end
为了解决我的问题,我添加了:
class String
def to_2d_array(value)
unpack("a#{value}"*((size/value)+((size%value>0)?1:0)))
end
end
class << $stdout
alias old_write write
def write(a)
a.to_s.to_2d_array(1024).each{|little| old_write little}
end
end
To my irb。