一些受歡迎的博客網站通常在其URL中使用方括號,但ruby的內置URI.parse()方法扼流圈會引發一個令人討厭的異常,如下所示: http://redmine.ruby-lang.org/issues/show/1466我如何monkey-patch ruby的URI.parse方法
我想寫一個簡單的猴子補丁,優雅地處理方括號的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:在alias_method:NameError:未定義模塊'URI'的方法'parse'
我該如何成功地修改URI-parse?
紅寶石> = 1.9請參閱http://stackoverflow.com/questions/7637138/how-to-prevent-the-character-from-causing-a-bad-uri-error-in-ruby – 2015-02-10 09:15:58