一些流行的博客站点通常在其 URL 中使用方括号,但 ruby 的内置 URI.parse() 方法会阻塞它们,引发一个令人讨厌的异常,如: http ://redmine.ruby-lang.org/issues/show/ 1466
我正在尝试编写一个简单的猴子补丁,可以优雅地处理带有方括号的 URL。以下是我到目前为止所拥有的:
require 'uri'
module URI
def self.parse_with_safety(uri)
safe_uri = uri.replace('[', '%5B')
safe_uri = safe_uri.replace(']', '%5D')
URI.parse_without_safety(safe_uri)
end
alias_method_chain :parse, :safety
end
但是在运行时,这会产生一个错误:
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/module/aliasing.rb:33:in alias_method: NameError: undefined method 'parse' for module 'URI'
我怎样才能成功地猴子补丁 URI.parse?